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