Cookie翻译过来就是饼干。在JavaWeb里面Cookie其实就是一份小数据。是服务器给客户端并且存储在客户端的一份小数据。
1.Cookie的应用场景
自动登录,浏览记录,购物车
2.为什么要有这个Cookie?
http的请求是无状态的。在客户端第二次来访的时候服务器端根本不知道这个客户端有没有来访过。为了更好的交互(自动登录)以及更好地收集用户习惯(浏览记录)。
3.Cookie的简单使用①添加Cookie给客户端
在响应的时候,添加cookieCookie cookie = new Cookie("aa","bb");response.addCookie(cookie);//给响应添加一个cookie客户端收到的信息里面,响应头多了一个字段 Set-Cookie
②获取从客户端过来的Cookie
Cookie[] cookies = request.getCookies();
if(cookies !=null){
for(Cookie c : cookies){
String cookieName = c.getName();
String cookieValue = c.getValue();
System.out.println(cookieName+"="+cookieValue);
}
}
③Cookie的常用方法
cookie.setMaxAge(60*60*24*7); //设置cookie的有效期,因为关闭浏览器后cookie就没有了
cookie.setValue(newValue);//赋新的值
cookie.setDomain(".xxx.com");//用于指定域名才带上cookie
cookie.setPath("/CookieDemo");//只有访问该域名下的cookieDemo路径地址才会带上cookie
例子一:显示最近访问的时间
判断账号是否正确如果正确,获取cookie。但是得到的cookie是一个数组,我们要从数组里面找到我们想要的对象。如果找到的对象为空,表明是第一次登陆,这是要添加cookie如果找到的对象不为空,表明不是第一次登陆
例子二:显示商品浏览记录
如何清除浏览记录呢?
清除浏览记录其实就是清除cookie。cookie是没有什么清除方法的(delete之类)。只有设置maxAge为0。
Cookie cookie = new Cookie("history","");
cookie.setMaxAge(0); //设置立即删除
cookie.setPath("/CookieDemo02");
response.addCookie(cookie);
Cookie的安全问题
由于Cookie会保存在客户端上,所以有安全隐患问题。 还有一个问题就是Cookie的大小与个数有限制。 为了解决这个问题 我们引入了session。在下一篇文章我将给大家介绍session。