cookie:
服務器將一些信息存儲在瀏覽器(本地),當用戶再次打開網頁時,會自動填充該信息。當瀏覽器再次發送請求時,會將存儲的信息通過請求頭的方式發送給服務器端,不需要用戶每次都填充某些內容。cookie中理論上來講,最大存儲4KB內容。
cookie默認的有效時間爲一次會話。可以通過代碼設置cookie的有效時間。
一次會話:一次會話,前端發起請求-->服務端返回信息-->... 直到瀏覽器關閉(或者服務端關閉)。
創建cookie的代碼如下:
package com.xalo.cookie;
import java.io.IOException;
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;
@WebServlet("/cookie")
public class CookieServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//創建一個cookie
Cookie cookie = new Cookie("name", "大黃");
//將創建的cookie響應至前端
resp.addCookie(cookie);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
與cookie相關的java代碼如下:
//設置cookie的最大的有效時間
cookie.setMaxAge(30*24*60*60);//單位秒
//設置cookie的有效路徑,當請求url爲該路徑時,纔會在請求頭中添加該cookie
cookie.setPath(req.getContextPath()/*+"/cookie"*/);
//設置服務器IP,只有請求url中IP是該IP時,(客戶端)纔會發送cookie
cookie.setDomain("lockhost");
//設置cookie的解釋
cookie.setComment("用戶名");
//將該cookie中的值設置爲null
cookie.setValue(null);
//將cookie添加到響應中
resp.addCookie(cookie);
將cookie返回給前端網頁後,當前端再次發起該請求,如果本地cookie還有效,會在請求頭中,將該cookie信息發送到服務端。