zoukankan      html  css  js  c++  java
  • 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;
        }

  • 相关阅读:
    微信redirect_uri域名与后台配置不一致,错误代码10003
    windows安装centos7子系统
    c++中的var_dump
    egret3.x升级5.2
    PHP更改自动加载的顺序
    重定向如何携带cookie
    elasticsearch和mysql排序问题
    npm错误:Error: listen EADDRNOTAVAIL
    Spring Boot WebFlux 集成 Mongodb 数据源操作
    泥瓦匠:程序猿为啥要坚持写原创技术博客?
  • 原文地址:https://www.cnblogs.com/gepuginy/p/10035154.html
Copyright © 2011-2022 走看看