Cookie的路径
Cookie的path属性决定哪个路径允许访问Cookie。
一般地,Cookie发布出来,整个网页的资源都可以使用。现在我只想Servlet1可以获取到Cookie,其他的资源不能获取。
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置response编码
resp.setContentType("text/html;charset=UTF-8");
//创建Cookie对象
Cookie cookie = new Cookie("username", URLEncoder.encode("九月","UTF-8"));
//发送Cookie给浏览器需要设置Cookie的时间
cookie.setMaxAge(1000);
cookie.setPath("/cookieTest2");
//cookie.setMaxAge(0);
//向浏览器发送一个cookie
resp.addCookie(cookie);
resp.getWriter().write("向浏览器发送了一个Cookie");
}
使用http://localhost:8080/cookieTest访问,不能获取到cookie
Cookie: JSESSIONID=1B29E1B9C164CB9FA5757ED94E106DA9
Host: localhost:8080
使用http://localhost:8080/cookieTest2访问,浏览器可以把Cookie带上
Cookie: username=九月; JSESSIONID=1B29E1B9C164CB9FA5757ED94E106DA9
Host: localhost:8080
Cookie的安全属性
-
HTTP协议不仅仅是无状态的,而且是不安全的!如果不希望Cookie在非安全协议中传输,可以设置Cookie的secure属性为true,浏览器只会在HTTPS和SSL等安全协议中传输该Cookie。
-
当然了,设置secure属性不会将Cookie的内容加密。如果想要保证安全,最好使用md5算法加密。