当前位置: 首页 > article >正文

会话对象 Cookie 四、Cookie的路径

1.Cookie的path属性

Cookie还有一个path属性,可以通过Cookie#setPath(String)方法来设置。你可以使用HttpWatch查看响应中的Set-Cookie中是否存在路径。下面是通过Chrome查看Cookie信息。

也就是说,就算你不设置Cookie的path,Cookie也是有路径的。这个路径就是请求的路径。例如在请求:

http://localhost:8080/cookie_demo/path

时,服务器响应了一个Cookie,那么这个Cookie的默认路径就是/cookie_demo。

如果是在请求:

http://localhost:8080/cookie_demo/path/son

时,服务器响应了一个Cookie,那么这个Cookie的默认路径就是/cookie_demo/path。

2.Cookie 路径的作用:

首先声明一点,path不是指Cookie在客户端存放的路径!不同的浏览器存放Cookie的路径是不同的!!你不能通过Cookie的path来指定Cookie文件的存放路径!!!

那么Cookie的path是干什么的呢?假设你的浏览器当前已经有了两个Cookie:

  • cookie1:name=path1;value=pathvalue1;path=/cookie_demo;
  • cookie2:name=path1;value=pathvalue2;path=/cookie_demo/path;

当访问http://localhost:8080/cookie_demo/*时,请求头中会包含cookie1,而不会包含cookie2。

当访问http://localhost:8080/cookie_demo/path/*时,请求头中会包含cookie1和cookie2。

也就是说,在访问子路径时,会包含其父路径的Cookie,而在访问父路径时,不包含子路径的Cookie

3.Cookie路径的使用

如果你想在BServlet中设置的Cookie,在客户端访问AServlet时也包含在请求头中,那么就需要设置BServlet中的Cookie的path:

  • c2.setPath(“/cookie_demo”):硬编码;
  • c2.setPath(request.getContextpath() + “/”):活编码。

这样就可以设置Cookie的路径,保存在访问AServlet时,也会包含BServlet中添加的Cookie。

Cookie的SetPath设置cookie的路径,这个路径直接决定服务器的请求是否会从浏览器中加载某些cookie。

首先默认情况如果不设置cookie的path,默认是 /项目名称/当前路径的上一层地址如:请求路径:/cookie_demo/servlet/login, cookie的路径:/cookie_demo/servlet

如果我们设置path,如果当前访问的路径包含了cookie的路径(当前访问路径在cookie路径基础上要比cookie的范围小)cookie就会加载到request对象之中。


http://www.kler.cn/a/558743.html

相关文章:

  • C++ 继承,多态
  • C++ 设计模式-访问者模式
  • openharmony中hdf框架的驱动消息机制的实现原理
  • 01 冲突域和广播域的划分
  • Maven 基础环境搭建与配置(二)
  • Lab13_ Visible error-based SQL injection
  • 新版 WSL2 2.0 设置 Windows 和 WSL 镜像网络教程
  • 掌握 ElasticSearch 精准查询:Term Query 与 Filter 详解
  • ai json处理提示词
  • 粘贴到Word里的图片显示不全
  • ModuleNotFoundError: No module named ‘xgboost‘
  • Docker仿真宇树狗GO1
  • Python--函数进阶(下)
  • MacBooK Pro安装HomeBrew
  • RD-搭建测试环境
  • IDEA使用Maven方式构建SpringBoot项目
  • 2025-skywalking组件
  • 基于Springboot学生宿舍水电信息管理系统【附源码】
  • JavaScript函数-arguments的使用
  • ESP32S3:解决RWDT无法触发中断问题,二次开发者怎么才能使用内部RTC看门狗中断RWDT呢?