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;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM