java如何操作cookie
设置 Cookie
在 Java 中可以通过 javax.servlet.http.Cookie 类来操作 Cookie。以下是一个设置 Cookie 的示例代码:
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
// 创建一个 Cookie 对象
Cookie cookie = new Cookie("username", "JohnDoe");
// 设置 Cookie 的有效期(单位:秒)
cookie.setMaxAge(60 * 60 * 24); // 24 小时
// 设置 Cookie 的路径(可选)
cookie.setPath("/");
// 将 Cookie 添加到响应中
response.addCookie(cookie);
获取 Cookie
从请求中获取 Cookie 需要使用 HttpServletRequest 对象。以下是获取 Cookie 的示例代码:

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
// 获取请求中的所有 Cookie
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
String username = cookie.getValue();
System.out.println("Username: " + username);
}
}
}
删除 Cookie
删除 Cookie 的方法是将 Cookie 的有效期设置为 0 并重新添加到响应中。以下是删除 Cookie 的示例代码:

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
// 创建一个同名的 Cookie 对象
Cookie cookie = new Cookie("username", "");
// 设置 Cookie 的有效期为 0(立即过期)
cookie.setMaxAge(0);
// 设置 Cookie 的路径(必须与原始 Cookie 的路径一致)
cookie.setPath("/");
// 将 Cookie 添加到响应中
response.addCookie(cookie);
设置 Cookie 的安全属性
为了提高安全性,可以设置 Cookie 的 HttpOnly 和 Secure 属性:
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
// 创建一个 Cookie 对象
Cookie cookie = new Cookie("sessionId", "abc123");
// 设置 HttpOnly 属性(防止 JavaScript 访问)
cookie.setHttpOnly(true);
// 设置 Secure 属性(仅通过 HTTPS 传输)
cookie.setSecure(true);
// 将 Cookie 添加到响应中
response.addCookie(cookie);
设置 Cookie 的域名
如果需要设置 Cookie 的域名,可以使用 setDomain 方法:
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
// 创建一个 Cookie 对象
Cookie cookie = new Cookie("preferences", "darkMode");
// 设置 Cookie 的域名
cookie.setDomain(".example.com");
// 将 Cookie 添加到响应中
response.addCookie(cookie);
注意事项
- Cookie 的大小通常限制为 4KB。
- 浏览器对每个域名的 Cookie 数量有限制(通常为 20 个左右)。
- 敏感信息不应存储在 Cookie 中,应考虑使用会话(Session)或其他安全机制。






