最近有一個項目需求,大概是這樣的:工程Web1中Ext選擇定主題後,當訪問其上的Web2工程中的頁面時也是一樣的主題樣式,這就要作跨域的Cookies共享。css
可是隻能處理同一級域名下的跨域訪問,如 a.b.com 和 d.b.com這樣的。java
設置域名(xx.xx.xx.xxx)web1.xxx.com/web1 (xx.xx.xx.xxx)web2.xxx.com/web2web
web1中設置Cookies的代碼:跨域
<% Cookie[] cookies = request.getCookies(); if(cookies != null && cookies.length > 0){ for(int i=0;i<cookies.length;i++){ Cookie cookie = cookies[i]; System.out.println("web1----cookie name:"+cookie.getName()+" value:"+cookie.getValue()); if("theme".equals(cookie.getName())){//若是cookie已存在則刪除掉 cookie.setPath("/"); cookie.setMaxAge(3000);//設置存活週期 cookie.setDomain(".xxx.com"); response.addCookie(cookie); } } } //用java代碼建立cookie的方法以下,構造的參數是cookie的name和value Cookie cookie = new Cookie("theme","css-theme"); cookie.setPath("/"); response.addCookie(cookie); %>
web2中讀取Cookies代碼:cookie
<% Cookie[] cookies = request.getCookies(); if(cookies != null && cookies.length > 0){ for(int i=0;i<cookies.length;i++){ Cookie cookie = cookies[i]; System.out.println("web2----cookie name:"+cookie.getName()+" value:"+cookie.getValue()); if("theme".equals(cookie.getName())){//若是cookie已存在則刪除掉 cookie.setMaxAge(0); response.addCookie(cookie); } } } %>
運行Web1,咱們發現Cookies信息以下:spa
運行Web2,咱們發現Cookies信息以下:code
能夠看到讀取到了同一個Cookie。blog