会话对象 Cookie 四、Cookie的路径

news/2025/2/24 15:31:21

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.niftyadmin.cn/n/5864531.html

相关文章

设计模式-observer模式(观察者模式)

解释 观察者模式用于建立对象间的一对多依赖,当主题(Subject)状态变化时,所有观察者(Observers)自动收到通知。 Observer 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个…

基于 go-wrk 在 Windows 环境下对 Go Web 应用进行 HTTP 压力测试

基于 go-wrk 在 Windows 环境下对 Go Web 应用进行 HTTP 压力测试 这部分内容参考并搬运自 q1mi 老师的技术博客,原文的链接为:https://liwenzhou.com/posts/Go/benchmark-tools/。 压测相关术语 响应时间(RT):指系…

React之旅-04 路由详解

React Router 路由库提供了多种路由组件,详解如下: BrowserRouter:为应用程序提供路由环境,示例代码: import { BrowserRouter } from react-router-dom; ReactDOM.createRoot(document.getElementById(root)).rende…

【deepseek之我学】如何理解golang的gmp模型

Go语言的GMP模型是其并发机制的核心,它高效地管理了成千上万的Goroutine。以下是对GMP模型的详细解释: --- ### **1. GMP三个核心组件** - **G (Goroutine)**: - 轻量级用户态协程,初始栈大小仅2KB(可动态扩容&…

Keepalive基础

一。简介和功能 vrrp协议的软件实现,原生设计目的是为了高可用ipvs服务 功能: 1.基于vrrp协议完成地址流动 2.为vip地址所在的节点生成ipvs规则(在配置文件中预先定义) 3.为ipvs集群的各RS做健康状况检测 4.基于脚本调用接口…

C++/JavaScript ⭐算法OJ⭐用两个队列实现栈

题目描述 225. Implement Stack using Queues Implement a last-in-first-out (LIFO) stack using only two queues. The implemented stack should support all the functions of a normal stack (push, top, pop, and empty). Implement the MyStack class: void push(int…

AI助力小微企业技术开发规范化管理 | 杂谈

AI助力小微企业技术开发规范化管理 在小型技术研发企业中,人员配置紧张,往往一名员工需要承担多项职务和任务。例如,后端程序开发人员可能同时要负责需求调研、数据库设计、后端设计及开发,甚至在某些情况下还需兼任架构师的角色。…

Github 2025-02-23 php开源项目日报 Top9

根据Github Trendings的统计,今日(2025-02-23统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9JavaScript项目2Shell项目1TypeScript项目1Blade项目1Java项目1ASP项目1Vue项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:…