建立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。
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");