一、路径设置
1、默认路径:如果程序没有通过cookie.setPath()的方法设置cookie路径,则是以前访问的路径作为cookie的路径,
如:webapp/Test/aa/bb/index.jsp, 在index.jsp中新增一个cookie, 默认路径,则系统会将cookie的路径自动设置/localhost/Test/aa/bb/,
2、设置路径:cookie.setPath("/Test/aa/bb/"),注意:以/开头, 是绝对路径,必须以/结尾, Test是webapp下的项目名称,如果设置为/, 则webapp下的其他项目也可读取到cookie
Cookie cookie = new Cookie("userName", "wanxiaotao");
cookie.setMaxAge(1*24*60*60);
cookie.setPath("/");
response.addCookie(cookie);
二、cookie的读取:
cookie的读取,默认读取当前请求路径的cookie, 如:http://localhost:8080/Test/aa/bb/index.jsp, 则读取/Test/aa/bb/ 路径对应的cookie,如果在/Test/aa/bb/取不到值, 则会/Test/aa/路径下, 找对应的cookie
Cookie cookies[] = request.getCookies() ;
Cookie c = null ;
if(cookies != null){
for(int i=0;i<cookies.length;i++){
c = cookies[i] ;
out.println("cookie name = " + c.getName() + ", value="+ c.getValue() + ", path="+c.getPath()+", maxage=" +c.getMaxAge()+ "<br>");
}
}
三、删除Cookie
Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0);
设置为0为立即删除该Cookie;
cookie.setPath("/test/test2");
删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookie;
response.addCookie(cookie);
注意:假设路径结构如下
test/test2/test345/test555/test666
a.相同键名的Cookie(值可以相同或不同)可以存在于不同的路径下。
b. 删除时,如果当前路径下没有键为"key"的Cookie,则查询全部父路径,检索到就执行删除操作(每次只能删除一个与自己最近的父路径Cookie) FF.必须指定与设定cookie时使用的相同路径来删除改cookie,而且cookie的键名不论大写、小写或大小混合都要指定路径。IE.键名小写时,如果当前路径为/test/test2,如果找不到再向上查询/test、/test555、/test345,如果还找不到就查询 /(/test555/test666不查询) 。键名大小写混合或大写时,不指定路径则默认删除当前路径,并且不向上查询。
c.读取Cookie时只能读取直接父路径的Cookie。如果当前路径为/test/test2,要读取的键为“key”。当前路径读取后,还要读取/test,/test读取后,还要读取/ 。
d.在做Java的web项目时,由于一般的Web服务器(如Tomcat或Jetty)都用Context来管理不同的Web Application,这样对于每个Context有不同的Path,在一个Server中有多个Web Application时要特别小心,不要设置Path为/的Cookie,容易误操作(当然前提是域名相同) 。
四、cookie.setDomain(".jszx.com") : 跨域共享cookie的方法
A机所在的域:home.langchao.com,A有应用cas
B机所在的域:jszx.com,B有应用webapp_b
1)在cas下面设置cookie的时候,增加cookie.setDomain(".jszx.com");,这样在webapp_b下面就可以取到cookie。
2)这个参数必须以“.”开始。
3)输入url访问webapp_b的时候,必须输入域名才能解析。比如说在A机器输入:http://lc-bsp.jszx.com:8080/webapp_b,可以获取cas在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080/webapp_b则不可以获得cookie。
4)设置了cookie.setDomain(".jszx.com");,还可以在默认的home.langchao.com下面共享。
5)设置多个域的方法??
分享到:
相关推荐
总的来说,"cookie设置多个应用共享"涉及到了Web开发中的跨域问题、Cookie的配置以及客户端数据存储的策略。通过合理地设置Cookie的`domain`属性,结合服务器端的支持,以及使用JavaScript库进行管理,可以在多个Web...
- `setPath(String uri)`:定义Cookie的适用路径。默认情况下,Cookie只适用于当前页面所在的目录及其子目录。 - `setSecure(boolean flag)`:如果设置为true,Cookie将在HTTPS安全连接上传输,否则在HTTP上。 - `...
- **指定域名**: 可以让不同子域间的页面共享 Cookie。 ```javascript $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: '.example.com' }); ``` ##### 4.4 secure 参数 - **默认**: `...
Java中的Cookie操作是Web开发中常见的一种技术,用于在客户端和服务器之间传递状态信息。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器在后续请求中返回给服务器。以下将详细介绍Java如何进行...
然而,Cookie在跨域共享和客户端控制方面更灵活。开发者通常结合Cookie和Session来提供更完善的用户管理。 以上就是使用Cookie在ASP.NET中实现用户登录功能的核心知识点。通过理解和实践这些步骤,开发者可以创建...
- **domain**: 设置Cookie的域名,允许跨子域名共享。 - **secure**: 如果为真,Cookie只能通过HTTPS传输,确保数据安全。 - **expires**: 设置Cookie的过期时间,可以是一个日期对象或天数(整数)。 示例: ```...
- `SetCookiePath(string path)`: 设置Cookie的路径。 - `SetCookieSecure(bool isSecure)`: 设置Cookie是否仅通过HTTPS传输。 - `SetCookieHttpOnly(bool isHttpOnly)`: 设置Cookie是否只允许HTTP访问,防止...
如果需要在多个子域名之间共享Cookie,可以通过设置domain选项: ```javascript $.cookie('user', 'John Doe', { domain: '.example.com' }); ``` 7. **JSON支持** JQcookie允许存储和读取JSON对象。当设置时...
每个Cookie都有名称、值、过期时间、域和路径等属性。 2. **Cookies.js功能:** Cookies.js 提供了一系列方法,如`get(name)`用于获取Cookie的值,`set(name, value, options)`用于设置新的Cookie,`expire(name, ...
**Cookie** 的主要功能是存储用户的状态信息,并且这些信息可以在多次请求之间共享。以下是 Cookie 的几个关键特性: 1. **Cookie的结构**:Cookie 由名称、值和一系列可选属性组成。这些属性包括过期时间、路径、...
在Web开发过程中,理解、调试和测试cookie是至关重要的,因为它们在用户会话管理、个性化设置、购物车功能以及许多其他服务中扮演着核心角色。 描述中提到的“好东西,web开发必要的小工具”,意味着这个插件是Web...
然后将其添加到 HttpServletResponse 对象中,以便可以在两个网站之间共享该 Cookie。 JAVA 操作 COOKIE 主要包括设置 Cookie、读取 Cookie、删除 Cookie 和修改 Cookie 四个方面,通过设置 Cookie 的路径、域名和...
在JSP中,`Cookie`是一个关键的概念,它用于在客户端存储少量信息,以便在用户浏览网站时跟踪和维护状态。 **Cookie的基本概念:** Cookie是由服务器端生成,发送到浏览器,并由浏览器保存的一小段文本信息。每当...
Cookie Mapping可以理解为一种机制,通过该机制可以在不同的网站之间交换用户的身份信息,从而实现跨站的数据共享和同步。例如,如果用户在网站A上被称为“李四”,在网站B上被称为“王五”,通过Cookie Mapping,当...
另外,`path`属性决定了哪些页面可以访问该Cookie,而`domain`属性则允许跨子域共享Cookie。同时,每个浏览器对每个站点的Cookie数量和大小都有限制,因此在设计和使用Cookie时要考虑这些限制。 了解了Cookie的添加...
本文主要介绍了如何在Java中操作Cookie,包括设置、读取、修改和删除Cookie,以及实现跨域共享Cookie。 1. **设置Cookie** - 使用`Cookie`类创建一个新的Cookie对象,例如`Cookie cookie = new Cookie("key", ...
然而,在某些情况下,如使用JSONP进行跨域请求,可能需要共享cookie。这时,服务器需要配置允许跨域,同时在设置cookie时,确保`domain`设置正确。 四、实际应用案例 1. 用户会话管理:当用户登录后,可以将用户ID...
- **Path**:指定Cookie的有效路径,只对当前路径及子路径有效。 - **Domain**:指定Cookie的有效域名,跨子域名共享。 - **Expires**:过期时间,超过这个时间,Cookie将被删除。 - **Max-Age**:相对于创建...
4. **跨域问题**:Cookie只能在同一域名或子域名之间共享,如果需要跨域访问,则需要使用其他机制如SessionStorage或LocalStorage。 #### 六、总结 Cookie作为一种简单而强大的状态管理技术,在Web开发中有着广泛...
- **domain**:设置 Cookie 的作用域,通常用于跨域共享。 - **expires**:设置 Cookie 的过期时间,可以是日期对象或天数。 - **secure**:如果设置为 true,则只有在 HTTPS 协议下才会创建 Cookie。 例如,创建一...