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