使用cookie記錄用戶上次訪問網頁的時間,並返回到頁面


package com.hopetesting.cookie;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* @author newcityman
* @date 2019/9/3 - 0:08
* 在服務器中的servlet中判斷是否有一個名為lastTime的cookie
* 1、if 有:表示不是第一次訪問
* 1、響應數據,歡迎回來,您上次訪問時間為:2019年9月3日 11:23:23
* 2、寫回cookie:lastTime=2019年9月3日 11:23:23
* 2、if沒有:表示第一次訪問
* 1、響應數據:您好,歡迎您首次訪問
* 2、寫回cookie:lastTime=2019年9月3日 11:23:23
*/
@WebServlet("/cookieTest")
public class CookieTest extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
//1、獲取所有的cookie
Cookie[] cookies = request.getCookies();
boolean flag = false;
//2、遍歷cookie數組
if (cookies != null && cookies.length > 0) {
for (Cookie cookie : cookies) {
//3、獲取cookie的名稱
String name = cookie.getName();
//4、判斷名稱是否是:lastTime
if ("lastTime".equals(name)) {
//有這個cookie,說明不是第一次訪問
flag = true;
// 設置cookie的value
// 獲取當前時間的字符串,重新設置Cookie的值,重新發送cookie
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str_date = sdf.format(date);
// URL編碼
str_date = URLEncoder.encode(str_date, "utf-8");
cookie.setValue(str_date);
// 設置cookie的存活時間
cookie.setMaxAge(60 * 60 * 24 * 30);
response.addCookie(cookie);
//響應數據
//獲取cookie的value。時間
String value = cookie.getValue();
// URL解碼
value = URLDecoder.decode(value, "utf-8");
response.getWriter().write("<h1>歡迎回來,您上次訪問時間為:" + value + "</h1>");
break;
}
}
}
if (cookies == null || cookies.length == 0 || flag == false) {
// 第一次訪問
// 設置cookie的value
// 獲取當前時間的字符串,重新設置cookie的值,重新發送cookie
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str = sdf.format(date);
str = URLEncoder.encode(str, "utf-8");
Cookie cookie = new Cookie("lastTime", str);
// 設置最大的存活時間
cookie.setMaxAge(60 * 60 * 24 * 30);//一個月
response.addCookie(cookie);
response.getWriter().write("<h1>您好,歡迎您首次訪問</h1>");
}
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}


免責聲明!

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



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