在读取Cookie,然后操作时,除了getName(),getValue()外,不要妄图得到其他信息,如下方法不会得到值的:
cookie.getMaxAge();
cookie.getDomain();
。。。
因为,客户端传来的时候,就只剩下key和value了。
Java中的Cookie操作:
在Java中利用Serlvet或者JSP scriptlet可以向浏览器端写入Cookie。
同样,利用Servet或者JSP scriptlet 也可以读取到 Cookie信息。
Servlet规范中的Cookie API 如下:
setMaxAge setPath setDomain等方法,可以对Cookie状态进行控制;
同样存在如下方法,可以获得相应的状态:
getMaxAge getPath getDomain等方法,可以对Cookie的状态。
然后,问题来了:
读取Cookie时,发现除了Cookie的key和value外,其他的信息都丢失了!!
原因很简单:
Cookie从服务器端发送到客户端时,信息是完整的;
Cookie从客户器端发送到服务端时,信息只剩下key、value了。
(想想也明白,Domain不对的Cookie、Path不对的Cookie、过期的Cookie,客户端是不会发送过来的。)
那为什么Java中提供了相应的get方法呢? 那个方法是在生成Cookie后,尚未发送到客户端时,使用的。是“封装”的体现
分享到:
相关推荐
- **同目录下操作**:为了确保Cookie的正确读取和写入,写入和读取Cookie的JSP页面应该位于同一个目录下。 - **检查Cookie是否为空**:在处理Cookie时,应该先检查是否存在有效的Cookie,避免出现空指针异常。 通过...
读取 Cookie 时,我们可以封装到 Map 中,以便于我们的操作。下面是一个简单的示例代码: ```java public static Cookie getCookieByName(HttpServletRequest request, String name) { Map, Cookie> cookieMap = ...
### 关于Servlet读取Cookie的知识点 #### 一、Servlet与Cookie的基本概念 - **Servlet**:Servlet是一种Java技术,用于扩展服务器的功能。它的工作原理是接收来自客户端的请求,并根据该请求产生响应。 - **Cookie...
在JSP中读取Cookie,我们可以利用HttpServletRequest对象的`getCookies()`方法,该方法返回一个Cookie数组,包含了所有发送到服务器的Cookie。以下是一个读取Cookie的例子: ```jsp ; charset=UTF-8" %> Cookie[]...
读取Cookie则通过HttpServletRequest的getCookies()方法实现,它返回一个Cookie数组,可以通过循环遍历并比较Cookie的名字来获取对应的值。 **子Cookie** 子Cookie(有时也称为“部分Cookie”或“Path-Scoped ...
本文将详细介绍如何在Java中创建、读取Cookie,以及设置其生命周期和路径。 首先,创建一个Cookie非常简单。当你需要创建一个无生命周期的Cookie时,即关闭浏览器后自动失效的Cookie,可以通过以下代码实现: ```...
设置 Cookie 的目的是将数据存储在浏览器端,以便下次访问时可以读取。设置 Cookie 需要创建一个 Cookie 对象,设置其名称、值、生存期、路径等属性,然后将其添加到 HttpServletResponse 对象中。例如: ```java ...
- 在读取时进行解码:`System.out.println(URLDecoder.decode(cookies[i].getValue(), "UTF-8"));` 理解并熟练掌握这些操作,可以帮助开发者在构建 Web 应用时有效地管理用户的状态信息,提供更个性化的用户体验。...
### Java对Cookie的操作详解 #### 一、简介 在Java Web开发中,Cookie是一种非常重要的技术,用于在客户端存储信息。通过Cookie,服务器可以记住用户的某些偏好或登录状态等信息,从而提供更好的用户体验。本文将...
- 遍历并检查特定 Cookie:通过循环遍历 `cookies` 数组,使用 `getName()` 和 `getValue()` 方法比较和获取值。 3. **Java 中删除 Cookie** - 创建删除 Cookie:`Cookie cookie = new Cookie("key", null);` - ...
在读取Cookie时,再进行解码: ```java String username = URLDecoder.decode(cookie.getValue(), "UTF-8"); ``` 在实际开发中,为了提高代码的可维护性和复用性,通常会将Cookie操作封装到一个工具类中,提供如`...
然后,我们在同一个请求中读取所有Cookie,最后通过改变Cookie的值和有效期为0来删除这个Cookie。 在实际应用中,Cookie的使用需要注意以下几点: 1. 安全性:避免在Cookie中存储敏感信息,因为它们是可以通过网络...
在这个案例中,我们重写了`service()`方法,从第7行到第48行,以处理读取Cookie的逻辑。 在`service()`方法中,第9行定义了一个布尔变量`blnFound`,用于检查是否存在名为"logincount"的Cookie。第10行将`myCookie`...
除了使用Cookie外,还可以利用Session来存储用户的状态信息: ```java request.getSession().setAttribute("userName", userName); ``` 这里将用户名存储到了Session中,Session可以在整个用户会话期间保持有效,...
- 读取Cookie时,只能读取当前路径及直接父路径的Cookie,不能跨多个父级路径读取。 - 删除Cookie时,如果没有在当前路径找到,会向上遍历父路径,直到找到并删除匹配的Cookie。 3. **JavaScript中的Cookie操作**...
读取Cookie主要通过HttpServletRequest的`getCookies()`方法,它返回一个Cookie数组。然后可以遍历数组,通过Cookie的名称匹配来获取对应的Cookie值。 ```java Cookie[] cookies = request.getCookies(); if ...
// 读取Cookie Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if ("sessionId".equals(cookie.getName())) { String sessionId = cookie.getValue(); // ...
在JSP中,可以通过`request.getCookies()`方法从客户端读取Cookie。这个方法返回一个Cookie对象数组,代表了所有接收到的Cookies。然后,可以通过循环遍历这个数组,使用`getName`和`getValue`方法来识别和读取特定...
要从客户端读取Cookie,我们可以在JSP的`<jsp:useBean>`或Servlet的`doGet()`或`doPost()`方法中检查Cookie是否存在,如下所示: ```jsp Cookie[] cookies = request.getCookies(); if (cookies != null) { for...