您的位置 首页 java

Javaweb cookie的路径和cookie跨域操作

cookie 的path(理解)

浏览器在访问BServlet时,是否要带上AServlet保存的Cookie呢?这要看Cookie的path了。

现有资源如下:

  • servlet

  • ,保存名为xxx的Cookie

  • ,保存名为yyy的Cookie

  • 保存名为zzz的Cookie

// 没有设置Cookie的path

AServlet {

Cookie c = new Cookie(“xxx”, “XXX”);

response.addCookie(c);

}

// 设置了Cookie的path为/day06_2

CServlet {

Cookie c = new Cookie(“yyy”, “YYY”);

c.setPath=”/day06_2″;

response.addCookie(c);

}

DServlet {

Cookie c = new Cookie(“zzz”, “ZZZ”);

resposne.addCookie(c);

}

  • 在BServlet中保存的Cookie没有设置path,那么它的path默认为当前BServlet的所在路径,即“/day06_2/servlet”。

  • 在CServlet中保存的Cookie设置了path为/webday02。

  • 在DServlet中保存的Cookie没有设置path,那么它的path默认为DServlet的所在路径,即“webday02/servlet/user”

  1. 当访问AServlet时,是否要带上xxx这个Cookie呢?因为AServlet的访问路径为/webday02/servlet/BServlet,它包含了xxx的path,即/webday02/servlet,所以需要带上。

  2. 当访问AServlet时,是否要带上yyy这个Cookie呢?因为AServlet的访问路径为/webday02/servlet/BServlet,它包含了xxx的path,即/webday02,所以需要带上。

  3. 当访问AServlet时,是否要带上zzz这个Cookie呢?因为AServlet的访问路径为/webday02/servlet/BServlet,它不包含zzz的path,即/webday02/servlet/user,所以不会带上。

Cookie的域domain(了解,本机不演示,需要要配置tomcat的web.xml虚拟主机)

Cookie的path是在同一主机中指定共享Cookie,如果主机不同那么就一定不能共享Cookie,无论path是什么。

如果希望不同的二级域名中可以共享Cookie,那么就要设置Cookie的domain了。

例如:news.baidu. com 、tieba.baidu.com、zhidao.baidu.com,它们的域名不同,但百度希望它们之间可以共享Cookie,那么就要设置domain了。

  1. 设置Cookie的path为“/”,例如:cookie.setPath(“/”);

  2. 设置Cookie的domain,例如:cookie.setDomain(“.baidu.com”),其中domain中没有指定域名前缀!

在news.baidu.com主机中的某个项目中保存了Cookie

在tieba.baidu.com主机中某个项目中获取Cookie

当然这需要配置两个虚拟主机才行。

只存访问路径为/webday02的cookie

浏览器查看cookie的路径

关注头条号,每天更新。

文章来源:智云一二三科技

文章标题:Javaweb cookie的路径和cookie跨域操作

文章地址:https://www.zhihuclub.com/199241.shtml

关于作者: 智云科技

热门文章

网站地图