cookie共享(單點登陸)

轉載自:http://www.blogjava.net/dragonofson/archive/2007/10/30/156831.htmlhtml

正常的cookie只能在一個應用中共享,即一個cookie只能由建立它的應用得到。
1.可在同一應用服務器內共享方法:設置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");語句的時候,起做用的以最後一條爲準。
6)設置多個path的方法??? java

2.跨域共享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機器輸入:http://lc-bsp.jszx.com:8080 /webapp_b,能夠獲取cas在客戶端設置的cookie,而B機器訪問本機的應用,輸入:http://localhost:8080 /webapp_b則不能夠得到cookie。
4)設置了cookie.setDomain(".jszx.com");,還能夠在默認的home.langchao.com下面共享。
5)設置多個域的方法???
最近的工做常常用到cookie,看了一些資料,雖然原來依賴cookie比較多的方案已經改爲如今這個了,可是當時看得一些東西仍是最好記下來,省得過 些天就一乾二淨了,怪惋惜的。老梁說過這樣的文字最好不要是純文本的,說得是。原本就已經很抽象了,最好弄點圖表,就算用123列出來也好web

相關文章
相關標籤/搜索