【黑马程序员】Cookie的path设置以及默认取值说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【黑马程序员】Cookie 的path 设置以及默认取值说明
在JaveEE 课程中,我们Cookie 的API 学习主要集中在name 、value 、maxAge 的使用,针对path 的讲解比较少,下面,将对Cookie 中的path 进行简单的阐述。
setPath 的API 说明
public void setPath(String uri)
指定客户端应该返回 cookie 的路径。 cookie 对于指定目录中的所有页面及该目录子目录中的所有页面都是可见的。cookie 的路径必须包括设置 cookie 的 servlet ,例如 /catalog ,它使 cookie 对于服务器上 /catalog 下的所有目录都是可见的
举例如下:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21
22 23 24 25 26 27 28 29
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 /**
* CookiePath1作用:new 一个cookie 并回写到浏览器
* 使用最简单的servlet 设置cookie 的path 为/urlPattern/path2
*/
public class CookiePath1 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie cookie = new Cookie("demo1", "value1");
//设置path 为"/urlPattern"
cookie.setPath("/urlPattern/path2");
//将cookie 回写到 浏览器
response.addCookie(cookie);
response.getWriter().write("cookie return OK");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
通过访问path1(http://localhost:8080/urlPattern/path1),将cookie 回写到浏览器,响应如下:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 /**
* url-pattern 为 /path2
* 获取cookie 值
*/
public class CookiePath2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//根据cookie 名称获取cookie
Cookie cookie =
CookieUtil.getNamedCookie(request.getCookies(),"demo1");
if (cookie != null ){
String value = cookie.getValue();
System.out.println("得到cookie(demo1)的值是:" + value); }
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
访问path2路径(localhost:8080/urlPattern/path2),尝试获取cookie 信息。控制台