记住上一次的访问时间 需求: 1.访问一个servlet,如果第一次访问,则提示:您好,欢迎首次访问 2.如果不是第一次访问,则提示:欢迎回来,您上一次访问时间为:显示时间 分析: 1.可以采用Cookie来完成 2.在服务器中的Servlet判断是否有一个名为lastTime的Cookie ——有:不是比一次访问 ————欢迎回来,您上一次访问时间为:显示时间 ————写回Cookie:lastTime=时间 ——没有:是第一次访问 ————响应数据:您好欢迎首次访问 ————写回Cookie:lastTime=时间 package com.qiku.web; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; @WebServlet(name="zy",urlPatterns = "/hello6") public class ZY extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); //设置响应的消息体的数据格式以及编码 resp.setContentType("text/html;charset=utf-8"); //创建lastname对象 并添加cookie Cookie lastname = new Cookie("lastname", "2022"); resp.addCookie(lastname); //获取所有Cookie对象 Cookie[] cookies = req.getCookies(); //创建开关 boolean flag=false; // 遍历cookie对象 if (cookies != null && cookies.length > 0) { for (Cookie c : cookies) { c.setMaxAge(60*60*24); // 判断是否有名字为 lastname的cookie if (c.getName().equals("lastname")) { flag=true; //创建时间对象 Date date = new Date(); //转换格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String time = sdf.format(date); c.setValue(time); String lsvalue = c.getValue(); System.out.println("您上一次的访问时间是"+lsvalue); // 返回给浏览器的响应信息 resp.getWriter().write("欢迎回来,您上次访问时间为:"+lsvalue+""); break; } } } if((cookies == null || cookies.length == 0 || flag) == false){ Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String time = sdf.format(date); Cookie cookie = new Cookie("lastTime","第一次"); //设置cookie的存活时间 cookie.setMaxAge(60 * 60 * 24); resp.addCookie(cookie); //修改cookie的value值 cookie.setValue(time); String value = cookie.getValue(); resp.getWriter().write("您好,欢迎您首次访问,本次访问时间为+"+value+""); } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)