1.简介
Cookie是在服务端创建,发送到客户端保存下来,然后在浏览器下一次请求的时候带上交给服务端进行校验。
- 一个Cookie最大4KB
- 服务器端最多保存20个Cookie
- 客户端做多保存300个Cookie
2.用途
- 跟踪客户端状态
- 保存购物车信息(不能使用request,因为购物车是一个用户向服务器发送的多个请求)
- 显示上一次登录名
3.使用
- 向浏览器设置Cookie:response.addCookie()
- 从浏览器获取Cookie:request.getCookies()
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie cookie = new Cookie("aaa","AAA");
resp.addCookie(cookie);
resp.sendRedirect("http://localhost:8080/javaWeb/index.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie [] cookies = req.getCookies();
if(cookies != null) {
for (Cookie demo : cookies) {
System.out.println(demo.getName()+":"+demo.getValue());
}
}
}
<html>
<body>
<a href="http://localhost:8080/javaWeb/B">A</a>
</body>
</html>
4.生命时间(setMaxAge(int time),单位为秒)
- 等于0:删除该Cookie
- 小于0:在内存中保存
- 大于0:存储在硬盘上
5.路径(与保存路径无关)
决定客户端在请求时携带哪些Cookie给服务端的,如果访问路径包含Cookie路径则会带上该Cookie。
6.Cookie的域
domain用来指定Cookie域名的,只有在多个二级域名中才有用。
setDomain()
setPath("/")