原理:
當我們第一次訪問時:
(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;
}

