1. 程式人生 > >java cookie跨域操作

java cookie跨域操作

正常的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的方法:設定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機器

不可以獲得cookie。

    4)設定了cookie.setDomain(".jszx.com");,還可以在預設的

home.langchao.com下面共享。