cookie设置多个应用共享

来源:互联网 发布:无锡微创软件 编辑:程序博客网 时间:2024/05/29 13:23
Java代码  收藏代码
  1. 正常的cookie只能在一个应用  
  2. 中共享,即一个cookie只能由创建它的应用获得。   
  3.   
  4. 1.可在同一应用服务器  
  5. 内共享方法:设置cookie.setPath("/");   
  6.   
  7. 本机tomcat/web
  8. app下面有两个应用:cas和webapp_b,   
  9.   
  10. 1)原来在cas下面设置的cookie,在webapp_b下面获取不到,path默认是产生cookie的应用的路径。   
  11.   
  12. 2)若在cas下面设置cookie的时候,增加一条cookie.setPath("/");或者cookie.setPath("/webapp_b/");就可以在webapp_b下面获取到cas设置的cookie了。   
  13.   
  14. 3)此处的参数,是相对于应用服务
  15. 器存放应用的文件
  16. 夹  
  17. 的根目录而言的(比如tomcat下面的webapp),因此cookie.setPath("/");之后,可以在webapp文件夹下的所有应用共享  
  18. cookie,而cookie.setPath("/webapp_b/");是指cas应用设置的cookie只能在webapp_b应用下的获得,即  
  19. 便是产生这个cookie的cas应用也不可以。   
  20.   
  21. 4)设置cookie.setPath("/webapp_b/jsp")或者cookie.setPath("/webapp_b/jsp/")的时  
  22. 候,只有在webapp_b/jsp下面可以获得cookie,在webapp_b下面但是在jsp文件夹外的都不能获得cookie。   
  23.   
  24. 5)设置cookie.setPath("/webapp_b");,是指在webapp_b下面才可以使用cookie,这样就不可以在产生cookie的应用cas下面获取cookie了   
  25.   
  26. 6)有多条cookie.setPath("XXX");语句的时候,起作用的以最后一条为准。   
  27.   
  28.   
  29. 2.跨域共享cookie的方法:设置cookie.setDomain(".jszx.com");   
  30.   
  31. A机所在的域:home.langchao.com,A有应用cas   
  32.   
  33. B机所在的域:jszx.com,B有应用webapp_b   
  34.   
  35. 1)在cas下面设置cookie的时候,增加cookie.setDomain(".jszx.com");,这样在webapp_b下面就可以取到cookie。   
  36.   
  37. 2)这个参数必须以“.”开始。   
  38.   
  39. 3)输入url访问webapp_b的时候,必须输入域名才能解析。比如说在A机器输入:http://lc-bsp.jszx.com:8080  
  40. /webapp_b,可以获取cas在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080  
  41. /webapp_b则不可以获得cookie。   
  42.   
  43. 4)设置了cookie.setDomain(".jszx.com");,还可以在默认的home.langchao.com下面共享。   
  44.   
  45.   
  46. <%  
  47. String username=request.getParameter("username");  
  48. String password=request.getParameter("password");  
  49. if(!com.tmailer.common.util.StringUtil.isNullOrEmpty(username) && !com.tmailer.common.util.StringUtil.isNullOrEmpty(password)){  
  50.     Cookie passwordCookie=new Cookie(username.split("@")[0],password);  
  51.     passwordCookie.setMaxAge(-1);  
  52.     passwordCookie.setPath("/") ;    
  53.     response.addCookie(passwordCookie);  
  54. }  
  55. %>  
  56.  //begin patch by zhongdh 20101117 switch oldSystem  
  57.     var email=appCtxt.get(ZmSetting.USERNAME);  
  58.     var username = email.split("@")[0];  
  59.     var userp=Cookies.get(username);  
  60.     var md5p=MD5(userp);  
  61.     var oldSystemUrl="http://xxxx/Mail/";  
  62.     oldSystemUrl=oldSystemUrl+"loginnew.asp?fm_strAccPrefix="+username;  
  63.     oldSystemUrl=oldSystemUrl+"&fm_strDomain=my.gov.cn&fm_strPassword="+md5p;  
  64.     //end patch by zhongdh 20101117 switch oldSystem  
  65.    
0 0
原创粉丝点击