創建Cookie
// 1. 創建Cookie對象
Cookie cookie = new Cookie("key1", "value1");
// 2. 通知客戶端保存Cookie
resp.addCookie(cookie);
// 3. 創建多個Cookie並保存到客戶端
Cookie cookie1 = new Cookie("key2", "value2");
resp.addCookie(cookie1);
resp.getWriter().write("Cookie創建成功")
獲取Cookie
Cookie[] cookies = req.getCookies();
for (Cookie cookie : cookie) {
// getName(): 返回Cookie的key
// getValue(): 返回Cookie的value值
resp.getWrite().write("Cookie[" + cookie.getName() + "=" + cookie.getValue + "]<br/>")
}
獲取想要的cookie
Cookie getKey2_Cookie = null;
for (Cookie cookie : cookie) {
if ("key2".equals(cookie.getName())) {
getKey2_Cookie = cookie;
break;
}
}
// 如果不等於null, 說明已經賦值, 找到了需要的Cookie
if (getKey2_Cookie != null) {
resp.getWriter().write("已找到需要的Cookie");
}
修改Cookie
// 方案1
// 定義一個相同名的key, 賦不同的value重新添加即可
Cookie cookie = new Cookie("key1", "newValue1");
resp.addCookie(cookie);
resp.getWriter().write("key1的Cookie已經修改好");
// 方案2
// 找到需要修改的Cookie, 然後調用setValue()方法賦予新的Cookie值
//...獲取cookie
Cookie cookie = 獲取指定Cookie
if (cookie != null) {
cookie.setValue("newValue2");
resp.addCookie(cookie)
}
Cookie存活時間
public void setMaxAge(int expiry) (默認爲-1, 即關閉瀏覽器則刪除)
設置 cookie 的最大生存時間,以秒爲單位。 正值表示 cookie 將在經過該值表示的秒數後過期。注意,該值是 cookie 過期的最大 生存時間,不是 cookie 的當前生存時間。 負值意味着 cookie 不會被持久存儲,將在 Web 瀏覽器退出時刪除。0 值會導致刪除 cookie。
expiry : 指定 cookie 的最大生存時間(以秒爲單位)的整數;如果爲負數,則表示不存儲該 cookie;如果爲 0,則刪除該 cookie
Cookie cookie = 獲取指定Cookie;
// 設置Cookie一小時之後刪除
cookie.setMaxAge(60*60);
resp.addCookie(cookie);
resp.getWriter().write("已經將獲取的Cookie設置爲存活一小時")
Cookie有效路徑Path的設置
Cookie cookie = new Cookie("path1", "path1");
// getContextPath() -> 得到工程路徑
cookie.setPath(req.getContextPath() + '/abc');
resp.addCookie(cookie);
resp.getWriter().write("創建了一個帶有Path路徑的Cookie");