Cookie详解
Cookie
我们知道http协议是无状态的,也就是说就算客户端是第二次访问服务器,服务器还是把此次访当做一个新的访问进行处理,因为服务端并不知道客户端之前是否访问过。而cookie和session则就是为了弥补这一缺陷出现的一种机制。
介绍
服务端给客户端的数据,存储于客户端(浏览器)。由于是保存在客户端上的,所以存在安全问题,并且cookie是由个数和大小限制的(4KB),所以一般cookie用来存储一些比较小且安全性要求不高的数据,而且一般数据都会进行加密。
我们平时在登录某些网站时,关闭浏览器后再次打开登录,用户名密码等数据会自动填充在表单。
或者我们浏览淘宝的某个商品后,下次再打开发现出现的商品很多都是我们之前浏览的同类商品等。
这些都是cookie的应用场景。
常用方法:
//创建
Cookie cookie = new Cookie("account", account);//创建一个cookie,保存账号数据
//有效时长
cookie.setMaxAge(1*60*60*24);//cookie存在在本地的有效时长(单位为秒) 默认为-1 表示页面关闭cookie就失效
//生效域名
cookie.setDomain("");//设置在某个域名下生效
//生效路径
cookie.setPath("/login.jsp");//设置访问该域名下某个路径时生效
//添加到response
response.addCookie(cookie);//添加到response
//获取cookie
Cookie[] cookies=request.getCookies();//获取cookies
for(Cookie cookie : cookies){
cookie.getName();//cookie的name
cookie.getValue();//cookie的value
}
//删除cookie
cookie.setMaxAge(0); //或者-1
response.addCookie(cookie);
Cookie的属性:
name:必须的
value:必须的
comment:可选的。注释
path: 可选的,如果不设置路径,那么只有设置该cookie的URI及其子路径可以访问
domain:可选的。该Cookie所属的网站域名。(apache.org)默认值。
maximum age:可选的。不设置就是会话过程(存在浏览器的内存中)。单位是秒 如果是0,说明要删除。
version:可选的。

浙公网安备 33010602011771号