最近有一个项目需求,大概是这样的:工程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