黑马程序员技术交流社区

标题: cookie共享 [打印本页]

作者: nous    时间: 2019-6-14 11:40
标题: cookie共享
一、在同一应用服务器内共享方法:
设置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下面共享。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2