目录

  1. Cookie 的作用与工作原理
  2. 在 JSP 中操作 Cookie
  1. 示例代码
  2. 参考资料

Cookie 的作用与工作原理

在 JSP 中,Cookie 用于在客户端和服务器之间存储少量数据,通常用于跟踪用户会话、保存用户偏好等。Cookie 通过 response 对象发送到客户端,通过 request 对象从客户端读取。每个 Cookie 是一个键值对,存储在客户端浏览器中。


在 JSP 中操作 Cookie

2.1 创建和添加 Cookie

  • 方法new Cookie(String name, String value)response.addCookie(Cookie cookie)
  • 作用:创建 Cookie 并发送到客户端。
  • 示例
  Cookie cookie = new Cookie("username", "Alice");
  cookie.setMaxAge(60 * 60); // 设置有效期为 1 小时
  response.addCookie(cookie);

2.2 获取 Cookie

  • 方法request.getCookies()
  • 作用:从客户端获取所有 Cookie。
  • 示例
  Cookie[] cookies = request.getCookies();
  if (cookies != null) {
      for (Cookie cookie : cookies) {
          if ("username".equals(cookie.getName())) {
              out.println("用户名: " + cookie.getValue());
          }
      }
  }

2.3 修改 Cookie

  • 方法:重新创建并覆盖同名 Cookie。
  • 示例
  Cookie cookie = new Cookie("username", "Bob"); // 新值覆盖旧值
  cookie.setMaxAge(60 * 60);
  response.addCookie(cookie);

2.4 删除 Cookie

  • 方法:将 Cookie 的有效期设置为 0。
  • 示例
  Cookie cookie = new Cookie("username", "");
  cookie.setMaxAge(0); // 设置有效期为 0,即删除
  response.addCookie(cookie);

示例代码

  • setCookie.jsp(设置 Cookie):
  <%@ page contentType="text/html;charset=UTF-8" %>
  <%
      Cookie cookie = new Cookie("user", "Alice");
      cookie.setMaxAge(24 * 60 * 60); // 有效期 1 天
      response.addCookie(cookie);
      out.println("Cookie 已设置");
  %>
  • getCookie.jsp(读取 Cookie):
  <%@ page contentType="text/html;charset=UTF-8" %>
  <%
      Cookie[] cookies = request.getCookies();
      if (cookies != null) {
          for (Cookie cookie : cookies) {
              if ("user".equals(cookie.getName())) {
                  out.println("用户: " + cookie.getValue());
              }
          }
      } else {
          out.println("未找到 Cookie");
      }
  %>
  • deleteCookie.jsp(删除 Cookie):
  <%@ page contentType="text/html;charset=UTF-8" %>
  <%
      Cookie cookie = new Cookie("user", "");
      cookie.setMaxAge(0);
      response.addCookie(cookie);
      out.println("Cookie 已删除");
  %>

参考资料

  1. Oracle 官方文档
  1. JavaTpoint JSP 教程
  1. TutorialsPoint JSP Cookie

如果需要更复杂的 Cookie 操作示例或有其他问题,请告诉我!