JavaWeb基礎-Cookie的簡單使用(記錄使用者上次訪問時間)
阿新 • • 發佈:2020-12-22
Cookie的簡單使用(記錄使用者上次訪問時間)
獲得從瀏覽器帶過來的Cookie
通過HttpServletRequest物件中的方法:
向瀏覽器回寫Cookie
通過HttpServletRequest物件中的方法:
Cookie的構造
程式碼實現記錄使用者的上次訪問時間,並且回顯本次訪問時間
工具類:
package utils;
import javax.servlet.http.Cookie;
/*
查詢指定名稱Cookie的工具類
*/
public class CookieUtils {
public static Cookie findCookie(Cookie[] cookies,String name) {
if(cookies == null){
//瀏覽器沒有攜帶任何的Cookie
return null;
}else{
for(Cookie cookie:cookies){
//判斷陣列中的每個Cookie的名稱與給定名稱是否一致
if(name.equals(cookie.getName())){
//直接返回
return cookie;
}
}
//瀏覽器帶有Cookie過來了,但是沒有指定名稱的那個Cookie
return null;
}
}
}
Servlet:
package ServletDemo;
import utils.CookieUtils;
import javax.servlet.ServletException;
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.util.Date;
public class ServletDemo02 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/**
* 使用者訪問Servlet
* *如果是第一次訪問
* * *顯示你好,歡迎來到本網站
* * *記錄當前訪問時間,存入Cookie,回寫到瀏覽器
* *如果不是第一次訪問
* * *從Cookie中獲得上次訪問時間,顯示到頁面
* *記錄當前時間,存入到Cookie,回顯到瀏覽器
*/
//判斷是否第一次訪問:從指定的Cookie的陣列中獲取指定名稱Cookie
//獲得從瀏覽器帶過來的所有的Cookie
Cookie[] cookies = req.getCookies();
//從陣列中查詢指定名稱的Cookie
Cookie lastVisit = CookieUtils.findCookie(cookies, "lastVisit");
//判斷是否是第一次訪問
if (cookies == null) {
//第一次訪問
//顯示到頁面上一段內容
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().println("<h1>你好,歡迎來到本網站!</h1>");
}else{
//不是第一次訪問
//獲得Cookie中的上次訪問時間,顯示到頁面上
String value = lastVisit.getValue();
//顯示到頁面上一段內容
resp.setContentType("text/html;charset=UTF-8");
resp.getWriter().println("<h1>你好,你上次的訪問時間是:"+value+"!</h1>");
}
//記錄當前系統時間存入Cookie,回顯到瀏覽器
Date d = new Date();
//存入到Cookie當中
Cookie c = new Cookie("lastVisit",d.toLocaleString());
//回顯到瀏覽器
resp.addCookie(c);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
根據網頁設定可以看到我們網頁請求頭、Cookie等引數的變化!