【JavaWeb】Servlet Cookie的使用
阿新 • • 發佈:2018-12-23
建立Cookie
建立一個繼承自HttpServlet的類(記得註冊),並且重寫doGet方法,程式碼如下:
package com.haya.web;
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;
public class MyCookie extends HttpServlet {
public MyCookie() {
super();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//...
}
}
接下來完善doGet方法,程式碼如下:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//建立Cookie
Cookie cookie1 = new Cookie("test","haha");
Cookie cookie2 = new Cookie("test2", "lala");
/*
*設定Cookie的有效時長,單位(秒),
* 當引數大於0,將Cookie快取到本地硬碟上
* 當引數等於0,Cookie一旦設定立馬失效
* 當Cookie小於0,將Cookie快取到瀏覽器中
*/
cookie1.setMaxAge(60*60*24);
cookie2.setMaxAge(60*60*24);
//繫結路徑
cookie1.setPath(req.getContextPath()+"/cookie1");
cookie2.setPath(req.getContextPath()+"/cookie2");
//向響應中新增Cookie
resp.addCookie(cookie1);
resp.addCookie(cookie2);
}
此時訪問指定路徑,再用瀏覽器自帶的工具檢視就能看到Cookie。
Servlet讀取Cookie
按照上述方法建立完Cookie後,再建立另一個Servlet(記得註冊),繼承自HttpServlet,重寫doGet()方法:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Cookie[] cookies = req.getCookies();
for (Cookie c: cookies) {
System.out.println(c.getName()+":"+c.getValue());
}
}
此時先訪問Cookie註冊時的url,再訪問這個Servlet註冊的url,如果ide的控制檯輸出cookie的資訊,就說明訪問成功。