Java中的cookie(2)——cookie共享
一、可在同一應用服務器內共享方法:設置cookie.setPath("/");
假設tomcat/webapp下麵有兩個應用:cas和webapp_b。
1、原來在cas下麵設置的cookie,在webapp_b下麵獲取不到,path默認是產生cookie的應用的路徑。
2、若在cas下麵設置cookie時,增加一條cookie.setPath("/")或者cookie.setPath("/webapp_b/")就可以在webapp_b下麵獲取到cas設置的cookie了。
3、此處的參數是相對於應用服務器存放應用的文件夾的根目錄而言的,如tomcat下麵的webapp,因此cookie.setPath("/")之後,可以在webapp文件夾下的所有應用共享cookie,而cookie.setPath("/webapp_b/")是指cas應用設置的cookie隻能在webapp_b應用下的獲得,即便是產生這個cookie的cas應用也不可以。
4、設置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的時候,隻有在webapp_b/jsp下麵可以獲得cookie,在webapp_b下麵但是在jsp文件夾外的都不能獲得cookie。
5 設置cookie.setPath("/webapp_b"),是指在webapp_b下麵才可以使用cookie,這樣就不可以在產生cookie的應用cas下麵獲取cookie了。
6 有多條cookie.setPath("XXX");語句的時候,起作用的以最後一條為準。
二、跨域共享cookie的方法:設置cookie.setDomain(".jszx.com");
A機所在的域:home.langchao.com,A有應用cas
B機所在的域:jszx.com,B有應用webapp_b
1 在cas下麵設置cookie的時候,增加cookie.setDomain(".jszx.com");這樣在webapp_b下麵就可以取到cookie
2 這個參數必須以“.”開始。
3 輸入url訪問webapp_b的時候,必須輸入域名才能解析。
比如說在A機器輸入:https://lc-bsp.jszx.com:8080/webapp_b,可以獲取cas在客戶端設置的cookie,而B機器訪問本機的應用,輸入:https://localhost:8080/webapp_b則不可以獲得cookie。
4 設置了cookie.setDomain(".jszx.com");,還可以在默認的home.langchao.com下麵共享。
原帖地址:https://liaosy.lofter.com/post/21f90f_821562
最後更新:2017-04-03 12:54:38