Cookie实例:显示用户上次访问的时间
生活随笔
收集整理的這篇文章主要介紹了
Cookie实例:显示用户上次访问的时间
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 效果
用戶第一次訪問HistServlet的時候,頁面顯示你是首次訪問本網站,當前時間為:xxx。第n次訪問:歡迎回來,
你上次訪問的時間為xxx,當前時間為xxx。
2. 分析
要保證第二次訪問能夠顯示上次訪問的時間,也就意味著第一次訪問的時候,這個時間被保存下來,所以可以把
上次訪問的時間的數據保存在cookie中,可以分為第一次和第N次,第一次和第N次的邏輯是不同的。首先要區
分什么情況下是第一次訪問?什么情況下是第n次訪問?第一次訪問:沒有cookie或者沒有lastTime名的cookie
(1) 第一次訪問:
① 獲取當前時間,顯示到瀏覽器中;
② 創建Cookie對象,時間作為cookie的值,比如名字為lastTime;
③ 服務器中是不保存Cookie的,把cookie發送到瀏覽器保存;
(2) 第N次訪問:
① 獲取cookie的數據,取出名為lastTime的cookie;
② 得到cookie的值(上次訪問的時間);
③ 顯示上次訪問時間到瀏覽器中;
④ 更新名為lastTime的cookie,值設置為當前時間;
⑤ 把更新后的cookie發送給瀏覽器保存。
3. 實例
/** 案例-用戶上次訪問時間*/ @WebServlet("/HistServlet") public class HistServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");// 獲取當前時間SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String curTime = format.format(new Date());// 取得CookieCookie[] cookies = request.getCookies();String lastTime = null;if (cookies != null) {for (Cookie cookie : cookies) {if (cookie.getName().equals("lastTime")) {// 有lastTime的cookie,已經是第n次訪問lastTime = cookie.getValue();// 上次訪問時間// 第n次訪問// 1.把上次保存的時間顯示到瀏覽器response.getWriter().write("歡迎回來,你上次訪問的時間為:" + lastTime + ",當前時間為:" + curTime);// 2.更新cookiecookie.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);// 2.創建Cookie對象Cookie cookie = new Cookie("lastTime", curTime);cookie.setMaxAge(1 * 30 * 24 * 60 * 60);// 把cookie保存一個月。// 3.把cookie發送到瀏覽器保存response.addCookie(cookie);}} }4. 運行結果
總結
以上是生活随笔為你收集整理的Cookie实例:显示用户上次访问的时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发之时间刻度盘
- 下一篇: 使用netstat命令统计establi