cookie的路径问题

来源:互联网 发布:天香捏脸数据 编辑:程序博客网 时间:2024/05/17 06:15

新建两个页面 1.JSP  和   2.JSP:


1.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP '1.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    <%      Cookie[] cookies=request.getCookies();    if(cookies.length>0){    for(Cookie cookie:cookies){    %>    <%= cookie.getValue() %>    <%     }    }else{    %>    <%= "没有值啊" %>    <%     }    %>  </body></html>
2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP '2.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    <%      Cookie cookie=new Cookie("name","sasa");    response.addCookie(cookie);    %>    <a href="<%=basePath%>cookie/1.jsp">to 1.jsp</a>  </body></html>
由2.jsp跳转到1.jsp,查看1.jsp:

可以看到,1.jsp能接收到2.jsp传送的cookie.

现在将1.jsp和2.jsp的位置互换:


由2.jsp跳转到1.jsp,查看1.jsp:

可以看到1.jsp并没有接收到2.jsp传过来的cookie.

由此可以得出结论:

cookie的作用范围可以在当前目录和当前目录的子目录,但是不能位于当前目录的上一级目录中。

如果希望扩大cookie的作用域,则需要修改2.jsp的内容:

    <%      Cookie cookie=new Cookie("name","sasa");    //设置cookied作用范围    cookie.setPath(request.getContextPath());    response.addCookie(cookie);    %>

再次测试:


OK!!!



原创粉丝点击