启用Cookie以提升体验
1、 生成实例
2、 Cookie由服务器生成,浏览器负责存储,因此应在服务端进行创建操作。
3、 创建Cookie的方法如下
4、 新建一个用于处理Cookie的Servlet类。
5、 在Servlet的doPost方法中编写相应代码逻辑。
6、 在浏览器中打开该Servlet,响应头将显示如下信息。
7、 成功设置Cookie后,刷新页面时,浏览器请求头中将显示相应的Cookie信息。
8、 可同时设定多个Cookie,实现信息的批量存储与管理。
9、 浏览器将按指定格式发送Cookie信息。
10、 设置Cookie分为两步:创建与保存。
11、 创建一个Cookie实例
12、 把Cookie添加到响应对象里
13、 配置浏览器缓存数据
14、 Cookie的有效期时长
15、 通过前述介绍可知,Cookie存储于浏览器中。然而,浏览器通常不会永久保存Cookie,一方面因其占用硬盘空间,另一方面某些Cookie仅在特定时间内有效,无需长期保留,因此系统会根据时效或策略自动清除。
16、 因此,必须为Cookie设定一个有效期。
17、 调用Cookie对象的setMaxAge()方法可设定其有效时长。
18、 setMaxAge()方法接受一个整型参数用于设定有效时长,该参数主要包含以下四种情形:
19、 将值设为零,并调用setMaxAge(0)方法。
20、 Cookie将立即失效,后续浏览器请求不再包含此Cookie信息。
21、 设置最大存活时间,调用setMaxAge(60),值需大于零。
22、 60秒即1分钟,表示Cookie将在1分钟后失效。
23、 将值设为负数,调用setMaxAge(-1)方法。
24、 设为负数时,Cookie仅在当前会话有效,关闭浏览器后即失效。
25、 不设限制
26、 未设失效时间时,有效期默认为当前会话。
27、 Cookie 的路径设置
28、 Cookie的路径用于指定浏览器在访问哪些网址时需要附带该Cookie。由于浏览器会存储来自不同网站的多个Cookie,例如百度、新浪、腾讯等,因此不可能在访问某个网站时携带其他无关网站的Cookie,也不可能在每次请求时都带上全部Cookie,那样既不安全也不现实。为了避免混淆和提升效率,通常需要为Cookie设置Path属性。这个属性定义了Cookie的有效作用范围,即只有当用户访问的路径与设定的Path相匹配时,浏览器才会自动发送对应的Cookie,从而确保Cookie在合适的场景下被正确使用。
29、 通过Cookie的setPath()方法可设置路径,该路径由浏览器解析,其中/表示服务器的根目录。
30、 如:
31、 将路径设为项目名路径,即 cookie.setPath(项目名路径)。
32、 仅当访问/项目名/路径下的资源时,才会附带Cookie信息。
33、 例如:/项目名/路径/1.jsp、/项目名/路径/hello/2.jsp 等形式的访问路径。
34、 默认情况下,访问/项目名下资源会自动携带相关信息。
35、 例如:/项目名/index.jsp或/项目名/hello/index.jsp等形式的路径地址。
36、 获取浏览器存储数据
37、 完成上述操作后,Cookie已存入浏览器,接下来介绍如何获取其中存储的数据信息。
38、 分析:
39、 浏览器设置cookie后,每次请求都会自动携带其值,因此需从请求中提取并解析cookie内容,以获取所需信息,确保数据正确处理和用户状态的有效识别。
