Servlet 中的 Cookies2025 年 3 月 24 日 | 阅读 3 分钟 cookie 是一小段信息,它在多个客户端请求之间保持不变。 cookie 有一个名称、一个值和可选属性,例如注释、路径和域限定符、最大生存时间和版本号。
Cookie 的工作原理默认情况下,每个请求都被视为一个新请求。在 cookie 技术中,我们将 cookie 添加到 servlet 的响应中。因此,cookie 存储在浏览器的缓存中。之后,如果用户发送请求,则默认情况下 cookie 会添加到请求中。因此,我们将用户识别为旧用户。 
Cookie 的类型Servlet 中有 2 种类型的 cookie。 - 非持久 cookie
- 持久 cookie
非持久 cookie它仅对单个会话有效。每次用户关闭浏览器时,它都会被删除。 持久 cookie它对多个会话有效。 每次用户关闭浏览器时,它都不会被删除。只有在用户注销或退出时才会删除它。
Cookie 的优点- 维护状态的最简单技术。
- Cookie 在客户端维护。
Cookie 的缺点- 如果从浏览器禁用 cookie,它将不起作用。
- 只有文本信息可以设置在 Cookie 对象中。
注意:Gmail 使用 cookie 技术进行登录。 如果你禁用 cookie,gmail 将无法工作。
Cookie 类javax.servlet.http.Cookie 类提供了使用 cookie 的功能。 它为 cookie 提供了许多有用的方法。 Cookie 类的构造函数构造函数 | 描述 |
---|
Cookie() | 构造一个 cookie。 | Cookie(String name, String value) | 构造具有指定名称和值的 cookie。 |
Cookie 类的有用方法下面给出了一些常用的 Cookie 类的方法。 方法 | 描述 |
---|
public void setMaxAge(int expiry) | 设置 cookie 的最大生存时间(以秒为单位)。 | public String getName() | 返回 cookie 的名称。 创建后无法更改名称。 | public String getValue() | 返回 cookie 的值。 | public void setName(String name) | 更改 cookie 的名称。 | public void setValue(String value) | 更改 cookie 的值。 |
使用 Cookie 所需的其他方法为了添加 cookie 或从 cookie 中获取值,我们需要其他接口提供的一些方法。 它们是- public void addCookie(Cookie ck): HttpServletResponse 接口的方法用于在响应对象中添加 cookie。
- public Cookie[] getCookies(): HttpServletRequest 接口的方法用于返回浏览器中的所有 cookie。
|
如何创建 Cookie?让我们看看创建 cookie 的简单代码。
如何删除 Cookie?让我们看看删除 cookie 的简单代码。 它主要用于注销或退出用户。
如何获取 Cookie?让我们看看获取所有 cookie 的简单代码。
Servlet Cookies 的简单示例在此示例中,我们将用户的名称存储在 cookie 对象中,并在另一个 servlet 中访问它。 众所周知,会话对应于特定用户。 因此,如果您从具有不同值的太多浏览器访问它,您将获得不同的值。  index.htmlFirstServlet.javaSecondServlet.javaweb.xml输出 |