Cookies 记录和保存用户上次访问的时间

原理:

当我们第一次访问时:

(1)第一次访问时,获取当前时间显示到浏览器中,

(2)创建Cookie对象,时间作为Cookie的值,名为:lastTime

(3)把Cookie发送到浏览器保存

第n次访问时:

(1)获取Cookie的数据,取出上次保存的Cookie,得到上次访问的时间

(2)显示上次的访问时间到浏览器,更新lastTime的值,时间为当前的时间

(3)把更新后的Cookie发送到浏览器保存

 @RequestMapping("/getTime")
    @ResponseBody
    public ResponseView doget(HttpServletRequest request, HttpServletResponse response,HttpSession session)throws IOException {

        logger.info("获取登录时间。。。");
        ResponseView vo = new ResponseView();
        //获取当前时间
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String curTime = format.format(new Date());

        Users user = (Users)session.getAttribute("users");

        //取得cookie
        Cookie[] cookies = request.getCookies();
        String lastTime = null;
        if(cookies!=null){
            for (Cookie cookie : cookies) {
                if(cookie.getName().equals("lastTime")){
                    //有lastTime的cookie,已经是第n次访问
                    lastTime = cookie.getValue();//上次访问的时间
                    System.out.println(lastTime);
                    //第n次访问
                    //1.把上次显示时间显示到浏览器
                    vo.setData("欢迎你回来,"+user.getUserName()+",你上次访问的时间为:"+lastTime+",当前时间为:"+curTime+"");
                    //response.getWriter().write("欢迎回来,你上次访问的时间为:"+lastTime+",当前时间为:"+curTime);
                    //2.更新cookie
                    cookie.setValue(curTime);
                    cookie.setMaxAge(1*30*24*60*60);
                    //3.把更新后的cookie发送到浏览器
                    response.addCookie(cookie);
                    break;
                }
            }
        }
        /**
         * 第一次访问(没有cookie 或 有cookie,但没有名为lastTime的cookie)
         */
        if(cookies==null || lastTime==null){
            //1.显示当前时间到浏览器
            //response.getWriter().write("你是首次访问本网站,当前时间为:"+curTime);
            vo.setData("你是首次访问本网站,当前时间为:"+curTime);
            //2.创建Cookie对象
            Cookie cookie = new Cookie("lastTime",curTime);
            //保存一个月
            cookie.setMaxAge(1*30*24*60*60);
            //3.把cookie发送到浏览器保存
            response.addCookie(cookie);
        }

        return vo;
    }

原文地址:https://www.cnblogs.com/gepuginy/p/10035154.html