JavaWeb 中的 Cookie 介绍和使用

JavaWeb 中的 Cookie 介绍和使用

概述

Java Web 中的 Cookies 用于在客户端和服务器之间建立会话,使服务器能够记住客户端跨多个请求-响应对。

关键类和方法

  • 主要类java.net 包中的 CookieHandler
  • 辅助类CookieManagerCookiePolicyCookieStoreHttpCookie
  • CookieManager:管理完整的 Cookie 框架,包括 CookiePolicyCookieStore
  • CookiePolicy:定义接受和拒绝 Cookies 的规则。
String name = "Cookie 名称";
String value = "Cookie 值";
Cookie cookie = new Cookie(name, value);
response.addCookie(cookie);

这将向客户端发送 HTTP 头部,将 Cookie 存储在用户的计算机上。

  • setComment(String):描述 Cookie 的用途。
  • setDomain(String):指定 Cookie 可见的域名。
  • setHttpOnly(boolean):防止 JavaScript 读取 Cookie,增强安全性。
  • setMaxAge(int):定义 Cookie 存储的时长。
  • setPath(String):限制 Cookie 在服务器上的特定路径。
  • setSecure(boolean):确保 Cookie 仅通过安全协议发送。

读取 Cookies

javaCopy code
Cookie[] cookies = request.getCookies();
for (Cookie aCookie : cookies) {
String name = aCookie.getName();
String value = aCookie.getValue();
// 处理每个 Cookie
}

要读取特定的 Cookie,需要在循环中检查 Cookie 的名称。

要更新现有的 Cookie,需要创建一个具有相同名称的新 Cookie 并将其添加到响应中。

Cookie cookie = new Cookie("cookieName", "");
cookie.setMaxAge(0);
response.addCookie(cookie);

将最大存储时长设置为零可以从浏览器中移除 Cookie。