正常的cookie只能在一個應(yīng)用中共享,即一個cookie只能由創(chuàng)建它的應(yīng)用獲得。
1.可在同一應(yīng)用服務(wù)器內(nèi)共享方法:設(shè)置cookie.setPath("/");
本機tomcat/webapp下面有兩個應(yīng)用:cas和webapp_b,
1)原來在cas下面設(shè)置的cookie,在webapp_b下面獲取不到,path默認是產(chǎn)生cookie的應(yīng)用的路徑。
2)若在cas下面設(shè)置cookie的時候,增加一條cookie.setPath("/");或者cookie.setPath("/webapp_b/");就可以在webapp_b下面獲取到cas設(shè)置的cookie了。
3)此處的參數(shù),是相對于應(yīng)用服務(wù)器存放應(yīng)用的文件夾的根目錄而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夾下的所有應(yīng)用共享cookie,而cookie.setPath("/webapp_b/");是指cas應(yīng)用設(shè)置的cookie只能在webapp_b應(yīng)用下的獲得,即便是產(chǎn)生這個cookie的cas應(yīng)用也不可以。
4)設(shè)置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的時候,只有在webapp_b/jsp下面可以獲得cookie,在webapp_b下面但是在jsp文件夾外的都不能獲得cookie。
5)設(shè)置cookie.setPath("/webapp_b");,是指在webapp_b下面才可以使用cookie,這樣就不可以在產(chǎn)生cookie的應(yīng)用cas下面獲取cookie了
6)有多條cookie.setPath("XXX");語句的時候,起作用的以最后一條為準。
6)設(shè)置多個path的方法???
2.跨域共享cookie的方法:設(shè)置cookie.setDomain(".jszx.com");
A機所在的域:home.langchao.com,A有應(yīng)用cas
B機所在的域:jszx.com,B有應(yīng)用webapp_b
1)在cas下面設(shè)置cookie的時候,增加cookie.setDomain(".jszx.com");,這樣在webapp_b下面就可以取到cookie。
2)這個參數(shù)必須以“.”開始。
3)輸入url訪問webapp_b的時候,必須輸入域名才能解析。比如說在A機器輸入:http://lc-bsp.jszx.com:8080/webapp_b,可以獲取cas在客戶端設(shè)置的cookie,而B機器訪問本機的應(yīng)用,輸入:http://localhost:8080/webapp_b則不可以獲得cookie。
4)設(shè)置了cookie.setDomain(".jszx.com");,還可以在默認的home.langchao.com下面共享。
5)設(shè)置多個域的方法???
最近的工作經(jīng)常用到cookie,看了一些資料,雖然原來依賴cookie比較多的方案已經(jīng)改成現(xiàn)在這個了,但是當(dāng)時看得一些東西還是最好記下來,免得過些天就一干二凈了,怪可惜的。老梁說過這樣的文字最好不要是純文本的,說得是。本來就已經(jīng)很抽象了,最好弄點圖表,就算用123列出來也好
posted on 2007-10-30 09:10
Dragonofson 閱讀(9318)
評論(5) 編輯 收藏 所屬分類:
Web技巧