分享

jsp p3p跨域设置cookie - 翻过这座山,就到菩提洞了 - JavaEye技术网...

 KILLKISS 2009-08-07
网上现在有很多关于跨域设置cookie的文章,但大多数都是php的文章,网上仍然有很多关于jsp p3p的设置,但是必须要将浏览器的隐私设置成低才可以跨域设置cookie.查了n多文章发现他们都搞错了!(真郁闷死了,自己没有解决干什么要贴在自己的博客中?!害得我好惨!^@^)
下面是一个例子:
首先在hosts文件中设置(其中的192.168.73.1为您本机的ip,我写成127.0.0.1不行,可能是公司的域的设置问题)
192.168.73.1       www.
192.168.73.1       www.
[1]编写文件
b_setcookie.jsp
Java代码 复制代码
  1. <%@ page contentType="text/html; charset=utf-8" %>   
  2. <%    
  3.    response.addHeader("Cache-Control""no-cache");   
  4.    response.addHeader("Expires""Thu, 01 Jan 1970 00:00:01 GMT");    
  5.    String ssocookie="www.sso12345678910.com";   
  6.  %>   
  7. <script src="http://www./mp/test/a_setcookie.jsp?id=<%=ssocookie%>">   
  8. </script>  

a_setcookie.jsp
Java代码 复制代码
  1. <%   
  2. response.setHeader("P3P","CP=\"CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR\"");   
  3. String domainId=request.getParameter("id");   
  4. Cookie _cookie=new Cookie("test",domainId);   
  5. _cookie.setMaxAge(30*60*100);    
  6. _cookie.setPath("/");   
  7. response.addCookie(_cookie);   
  8. %>  

a_getcookie.jsp
Java代码 复制代码
  1. <%@ page contentType="text/html; charset=utf-8" %>   
  2. <%   
  3.    Cookie cookies[]=request.getCookies(); // 将适用目录下所有Cookie读入并存入cookies数组中   
  4.     
  5.    Cookie sCookie=null;    
  6.    String sname=null;   
  7.    String name=null;   
  8.    if(cookies==null// 如果没有任何cookie   
  9.      out.print("none any cookie");   
  10.    else  
  11.    {   
  12.      out.print(cookies.length + "<br>");   
  13.      for(int i=0;i<cookies.length; i++) // 循环列出所有可用的Cookie   
  14.      {   
  15.        sCookie=cookies[i];   
  16.        sname=sCookie.getName();   
  17.        name = sCookie.getValue();   
  18.        out.println("comment==>>>"+sCookie.getComment()+"\n");   
  19.        out.println("getDomain==>>>"+sCookie.getDomain()+"\n");   
  20.        out.println("getSecure==>>"+sCookie.getSecure()+"\n");   
  21.        out.println("getVersion==>>"+sCookie.getVersion()+"\n");   
  22.        out.println("cookiename==>>"+sname + "->" + "cookievalue==>>>"+name + "<br>");   
  23.      }   
  24.    }    
  25. %>  

测试时依次请求
http://www./mp/test/b_setcookie.jsp
http://www./mp/test/a_getcookie.jsp
便可看到通过跨域设置的cookie的值!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约