cookie 的作用范围:只能作用于当前目录跟当前的子目录, 不能作用于上一级的目录,/代表当前站点的根目录,但是可以通过setPath() 来设置作用范,request.getContentType() 代表项目根目录。
现在我们使用setPath() 方法,用Cookiepath/Cookiepath_write.jsp 来反问../Cookiepath_read.jsp。
Cookiepath_write.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>write</title>
</head>
<body>
<%
Cookie cookie = new Cookie("cookie_path","cookie_path_val");
response.addCookie(cookie);
cookie.setPath(request.getContentType());
//cookie 的作用范围只能作用于当前目录跟当前的子目录, 不能作用于上一级的目录,/代表当前站点的根目录
//但是可以通过setPath() 来设置作用范围,request.getContentType() 代表项目根目录
%>
<!-- ../表示上一级 -->
<a href="../Cookiepath_read.jsp">TO Cookiepath_read.js</a>
</body>
</html>
Cookiepath_read.jsp:
<%@page import="org.apache.tomcat.util.http.Cookies"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Cookie cookies[] = request.getCookies();
String cookie_val = null;
if(cookies != null && cookies.length > 0)
{
for(Cookie c: cookies)
{
if(c.getName().equals("cookie_path"))
{
cookie_val = c.getValue();
}
}
}else
{
out.print("没有cookie");
}
if(cookie_val != null && !cookie_val.trim().equals(""))
{
out.print(cookie_val);
}
%>
</body>
</html>