cookie共享

本文介绍了如何在同一应用服务器内及跨域情况下实现Cookie共享。通过设置cookie.setPath("/")可在同一服务器的不同应用间共享,而使用cookie.setDomain(".aabb.com")可实现跨域共享,但注意URL访问时需输入完整域名。

一、在同一应用服务器内共享方法:
设置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下面共享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值