1. 程式人生 > >【JavaWeb】Servlet Cookie的使用

【JavaWeb】Servlet Cookie的使用

建立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的資訊,就說明訪問成功。