今天需要在用户登录后添加别的域的cookie,然后网上搜了一下,发现大多数写的都是一样,但是我测试就是不行。由于自己对cookie也不了解,所以只能接着看,然后发现了自己的cookie生成不了的原因。
下面的是我自己贴过来备用的, 原文地址请看
http://www.vinceruan.info/front/cross-domain-process-cookie-session/
看一下前面跨域共享cookie的介绍就行。我的设置不了的原因就是如下面所说:在blog.vinceruan.info域下面设置www.vinceruan.info下面的cookie,然后就生成不了,解决办法是将cookie设置到.vinceruan.info下面 .是一定要加的 去掉成功与否没测试过
浏览器提交的cookie需要满足以下两点:
1.当前域名或者父域名下的cookie
而且
2.当前路径或父路径下的cookie
要满足以上两个条件的cookie才会被提交.
有4个cookie:
cookie1:[name=value, domain=.vinceruan.info path=/]
cookie2:[name=value, domain=blog.vinceruan.info path=/java/]
cookie3:[name=value, domain=www.vinceruan.info path=/]
cookie4:[name=value, domain=blog.vinceruan.info path=/]
当我访问blog.vinceruan.info时,
cookie1可以被提交,因为.vinceruan.info是blog.vinceruan.info的父域名. path路径也一致.
cookie2不能被提交,因为虽然domain是保持一致的,但是path不一致,当前访问的是/, 但是cookie2的path是/java/
cookie3不能被提交,因为虽然path是一致的,但是www.vinceruan.info不是blog.vinceruan.info的父域名.
cookie4可以被提交,因为domain和cookie都严格保持一致.
这里需要注意的是, 在浏览器看来.www.vinceruan.info不是blog.vinceruan.info的父域名,而vinceruan.info才是blog.vinceruan.info的父域名,www.vinceruan.info也算是一个二级域名(这点如果你提交过域名到DNS服务器商的应该会知道,一般我们需要显式提交www.vinceruan.info和vinceruan.info, 否则www.vinceruan.info==vinceruan.info是不成立的).
所以如果我们需要在所有二级域名下共享islogin=1的cookie,用java代码如下:
Cookie c = new Cookie("islogin","1");
c.setDomain(".vinceruan.info");//注意是以点号开头的.
c.setPath=("/");
response.addCookie(c);
如果要在所有的二级域名下的/java/路径下共享silogin=1的cookie,用java代码如下:
Cookie c = new Cookie("islogin","1");
c.setDomain(".vinceruan.info");//注意是以点号开头的.
c.setPath=("/java/");
response.addCookie(c);
ok, 跨域共享cookie就完成了
分享到:
相关推荐
JAVAWEB-09:HttpServletRequest对象&会话管理之Cookie
httpservletrequest、httpsession的jar包,导入资源包。
从HttpServletRequest获取各种路径总结.docx从HttpServletRequest获取各种路径总结.docx
httpservletRequest的学习笔记
Java中,引入javax.servlet.http.HttpServletRequest和javax.servlet.http.HttpServletResponse包的必备jar包:org.apache.commons.httpclient.jar
分析HttpServletRequest 内容 解析出设备来源 手机 电脑 什么种类浏览器 什么系统
入参的HttpServletRequest必须为:import jakarta.servlet.http.HttpServletRequest; 运行cmd,再该目录下执行: 执行步骤:java -jar jakartaee-migration-1.0.1.jar commons-fileupload-1.4.jar commons-...
public Result admLogin(HttpServletRequest request, HttpServletResponse response, String username, String password){ log.info(用户名:{},密码:{},username,password); if(username.isEmpty() || ...
HttpServletRequest 中 getRequestURL和getRequestURI的区别文档
继承HttpServletRequestWrapper实现类,重新相关方法,实现自定义增加请求参数,通常是由于需要对参数进行特殊业务处理,然而HttpServletRequest的request.getPrameterMap是不允许修改的(被锁,可查看底层源码),...
java HttpServletRequest HttpServletResponse 源码 request response
将获取http请求的参数转换成Map集合
如题,HttpServletReques HttpServletResponse很常见的
装饰模式是Erich Gamma等人所著的《设计模式:可利用面向对象软件的基础》一书中众多模式之一。一般来说,此模式在设计Swing的程序员中比较流行,他们用它来改进软件。今天,即使有许多程序是基于Web应用的,装饰...
HTTP客户程序(例如浏览器),向...如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说Content-Length必须出现。 下面是一些最常见的请求头 ......
HttpServletRequest 详解 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
传智博客PPT HttpServletRequest的应用.ppt
HttpServletRequest和HttpServletResponse的讲解,讲解了用法,案例
NULL 博文链接:https://201610222643.iteye.com/blog/2397598
最基础的Servlet开发例子,适用于新手学习尝试,基础开发