目录
什么是Cookie?
1、Cookie翻译过来是饼干的意思。
2、Cookie是服务器通知客户端保存键值的一种技术。
3、客户端有了Cookie后,每次请求都发送给服务器。
4、每个Cookie的大小不能超过4KB。
5、Cookie是保存在客戶端的
Cookie 是如何传给浏览器
1、创造一个Cookie对象 构造方法 : Cookie(String key,String value)
2、通过 response.addCookie(Cookie cookie) 提醒浏览器设置(添加)Cookie
Cookie 设置生命控制
设置Cookie 立即消失 cookie.setMaxAge(0)
设置Cookie 随着session的消失而消失 cookie.setMaxAge(-1) 默认为 -1
设置Cookie 可存活时间 cookie.setMaxAge(int i) i秒
Cookie的Path属性
如果服务器响应给浏览器一个设置了Path的Cookie,那么这个Cookie只有在访问设置的Path路径下才可以获取得到该Cookie
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie cookie = new Cookie("name","测试");
c.setPath(req.getContextPath() + "/aaa");
resp.addCookie(cookie);
}
// @WebServlet("/cookie") 在这个路径下是获取不到该Cookie的
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie[] cookies = req.getCookies();
System.out.println("--------cookie");
for (Cookie cookie : cookies) {
if("name".equals(cookie.getName())){
System.out.println(cookie.getValue());
}
}
}
// @WebServlet("/aaa/test") 在该路径下即可获取得到gaiCookie
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("--------test");
Cookie[] cookies = req.getCookies();
for (Cookie cookie : cookies) {
if("name".equals(cookie.getName())){
System.out.println(cookie.getValue());
}
}
}