Cookie
饼干、其实就是一份小的数据,是服务端给客户端的,并且存储在客户端上的小数据。
应用的场景有如下:
自动登陆,浏览记录,购物车等等。
为什么要有Cookie?
因为http请求是没有状态的,客户端在跟服务端通讯的时候,是没有状态的,其实就是客户端在第二次访问服务端的时候,服务器就不知道客户端曾经访问过自己。为了更好的用户体验,更好的交互,从而使用cookie。
Cookie怎么来使用呢?
添加cookie给客户端
1.在响应的时候,添加cookie
Cookie cookie = new Cookie("aa","bb");
//给响应添加一个cookie
response.addCookie(cookie);
执行上诉操作后,在http响应头多了一个字段Set-Cookie:aa=bb
2.获取客户端传来的cookie
此方法返回一个Cookie[]数组
Cookie[] cookies = request.getCookies();
if(cookie != null){
for(Cookie c:cookies){
String cookieName = c.getName();
String cookieVlaue = c.getValue();
}
}
常用的方法:
通常关闭浏览器之后cookie就没有了
为了设置cookie保存时间可以通过下面的方法实现:
cookie.setMaxAge( expiry);
expiry:数值按照秒来计算
当为正值的时候:表示在该数值之后cookie消失
当为负数的时候:表示关闭浏览器的时候立刻消失
//赋予新的数值
cookie.setValue();
在赋予新的数值之后一定要重新添加到响应当中,否则没有效果
response.addCookie(cookie);
//访问特定的域名下的CookieServelt的这个地址,才会带上cookie
cookie.setPath("/CookieServlet");
cookie的清除
在java中没有直接清除cookie的方法,只有设置maxAge为0
Cookie cookie = new Cookie("aa","");
cookie.setMaxage(0);//立即删除
response.addCookie(cookie);