赞
踩
该路径可通过setPath("/xxx")进行设置,这个路径直接决定服务器的请求是否会从浏览器中加载某些Cookie。
首先默认情况下,如果不设置Cookie的path,默认是“/项目名/当前路径的上一层地址”,如:请求路径:/cookie/cookieDome/servlet/login,Cookie的请求路径:/cookie/cookieDome/servlet
如果我们设置path,如果当前访问的路径包含了Cookie的路径(当前访问路径在Cookie路径基础上要比Cookie的范围小)Cookie就会加载request的对象之中。
再次强调:这个路径就是请求的上一层路径,例如在请求http://loaclhost/day01/servlet/hello时,服务器响应了一个Cookie,那么这个Cookie的默认路径就是/day01/servlet,默认当前请求路径的上一级。
Cookie的路径,它只能拿到当前请求路径的上一级所包含的路径。也就是说,在访问子路径时,会包含其父路径的Cookie,而在访问父路径时,不包含子路径的Cookie.
例如:有三个请求路径各包含一个Cookie并设置
a:http://localhost:8080/day01/hello
b:http://localhost:8080/day01/hello/b
c:http://localhost:8080/day01/hello/b/c
当请求b路径时,request中只能获取到ab请求的cookie对象
当请求c路径时,request中能获取到abc请求中的cookie对象
注意:在设置cookie路径时最好不要写死,可通过request.getContextpath()来获取当前项目的根目录来设置。如下图:
- // 死编码
- // cookie.setPath("/hello/xx");
- // 活编码
- // cookie.setPath(request.getContextPath() + "/");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。