正常的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的方法??? 2.跨域共享cookie的方法:設置P3P 轉載如下: 今天在w3網站上看到了一篇介紹p3p的文章(http://www.w3.org/TR/P3P/),利用這個可以實現跨域訪問cookie,我也試驗一下。 其實很簡單:試驗用了2個域名readlog.cn和diaor.com 首先在readlog.cn下放置一個文件setcookie.php 內容: PHP代碼 <?php header('P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"');//p3p setcookie("TestCookie","test",time()+3600,"/",".readlog.cn");//設置cookie ?> 再放置一個readcookie.php 內容: PHP代碼 <?php echo $_COOKIE["TestCookie"]; ?> 然后在diaor.com下放置setcookie.php ,內容: JavaScript代碼 <script src="http://www.readlog.cn/setcookie.php"></script> 然后訪問http://www.diaor.com/setcookie.php 抓取數據包可以發現,在readlog.cn域下生成了一個cookie ,名稱是TestCookie,值是test 下面訪問http://www.readlog.cn/readcookie.php 來驗證一下,可以發現,cookie確實設置成功了。 有興趣可以去掉header('P3P: CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"');這句,試一下就會發現cookie能設置,但是在readlog.cn讀不到這個cookie。