cookie共享

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

2、跨域共享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下面共享。跨域

相关文章
相关标签/搜索