java cookie如何缓存
Java 中 Cookie 缓存的方法
使用 HttpServletResponse 添加 Cookie
通过 HttpServletResponse 的 addCookie 方法可以将 Cookie 发送到客户端浏览器进行缓存。示例代码如下:
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
// 创建 Cookie 对象
Cookie cookie = new Cookie("user", "JohnDoe");
// 设置 Cookie 过期时间(秒)
cookie.setMaxAge(60 * 60 * 24); // 1 天
// 设置 Cookie 路径(可选)
cookie.setPath("/");
// 将 Cookie 添加到响应中
response.addCookie(cookie);
使用 HttpServletRequest 读取 Cookie
通过 HttpServletRequest 的 getCookies 方法可以读取客户端发送的 Cookie。示例代码如下:

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
// 获取所有 Cookie
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("user".equals(cookie.getName())) {
String value = cookie.getValue();
System.out.println("Cookie value: " + value);
}
}
}
设置 Cookie 属性
Cookie 支持多种属性设置,以增强缓存控制:

setMaxAge(int expiry):设置 Cookie 过期时间(秒),负数表示浏览器关闭后失效,0 表示删除 Cookie。setPath(String uri):设置 Cookie 的作用路径,默认为当前路径。setDomain(String domain):设置 Cookie 的域名作用范围。setSecure(boolean flag):设置是否仅通过 HTTPS 传输。setHttpOnly(boolean flag):设置是否禁止 JavaScript 访问(防止 XSS 攻击)。
删除 Cookie
通过设置 setMaxAge(0) 并重新发送 Cookie 可以删除已缓存的 Cookie:
Cookie cookie = new Cookie("user", "");
cookie.setMaxAge(0);
response.addCookie(cookie);
使用第三方库管理 Cookie
对于复杂的场景,可以使用 Apache HttpClient 或 OkHttp 等库简化 Cookie 管理:
// 使用 Apache HttpClient 示例
import org.apache.http.client.CookieStore;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
CookieStore cookieStore = new BasicCookieStore();
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build();
注意事项
- 浏览器对 Cookie 的大小和数量有限制(通常每个 Cookie 不超过 4KB,每个域名不超过 50 个)。
- 敏感信息不应直接存储在 Cookie 中,建议加密或使用 Session 替代。
- 跨域场景需设置
setDomain并遵守同源策略。






