A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王高飞 黑马粉丝团   /  2019-5-7 14:47  /  1714 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王高飞 于 2019-5-7 15:06 编辑

一、在同一应用服务器内共享方法:
设置cookie.setPath("/");
场景如下:
假设tomcat/webapp下有两个应用:web_a和web_b。
1、原来在web_a下面设置的cookie,在web_b下是获取不到的,path默认是产生cookie的应用的路径web_a。
2、若在web_a下面设置cookie时,增加一条cookie.setPath("/")或者cookie.setPath("/web_b/"),这样就可以在web_b下面获取到web_a应用中设置的cookie了。
3、此处的参数是相对于应用服务器存放应用的文件夹的根目录而言的,如tomcat下面的webapp,因此cookie.setPath("/")之后,可以在webapp文件夹下的所有应用共享cookie,而cookie.setPath("/web_b/")是指cookie只能在web_b应用下的获得,即便是产生这个cookie的web_a应用也不可以获得此cookie。
4、设置cookie.setPath("/web_b/jsp")或者cookie.setPath("/web_b/jsp/")的时候,只有在web_b/jsp下面可以获得cookie,在web_b下面但是在jsp文件夹外的都不能获得cookie。
6 有多条cookie.setPath("XXX");语句的时候,起作用的是最后一条。

二、跨域共享cookie的方法:
设置cookie.setDomain(".aabb.com");
场景如下:
A机所在的域:home.abc.com,A有应用web_a
B机所在的域:map.aabb.com,B有应用web_b
1 在web_a下面设置cookie的时候,增加cookie.setDomain(".aabb.com");这样在web_b下面就可以取到cookie。
2 注意这个参数必须以“.”开始。
3 输入url访问web_b的时候,必须输入域名才能解析。
    例如在A机器输入:http://map.aabb.com:8080/web_b,可以获取web_a在客户端设置的cookie,
    而B机器访问本机的应用,输入:http://localhost:8080/web_b则不可以获得cookie。
4 注意设置了cookie.setDomain(".aabb.com");,还可以在默认的home.abc.com下面共享。

5 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
{:7_359:
回复 使用道具 举报
回复 使用道具 举报
学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马