Cookie简介
用户在 勾选免登陆选项并登陆成功之后,由服务器生成Cookie,并将 其封装到响应头中,以响应的形式发送给浏览器。浏览器收到这个响应之后,将Cookie保存到硬盘中。当浏览器再次 发送同类请求后,在 请求中会 携带保存在 硬盘的 Cookie数据,发送到服务器端,由服务器解析该Cookie。
Cookie是由若干键值对构成,这里的键一般称为 name,值称为value。Cookie中的键值对均为字符串。
总的来说Cookie的作用就是在客户端存储一些数据,当浏览器再次请求某个服务器时会携带这些数据从而提供更好的用户体验。
Cookie小知识
- 一个WEB站点可以给WEB浏览器发送多个Cookie,一个WEB浏览器可以存储多个WEB站点提供的Cookie.
- 如果创建了一个Cookie,并将它发送到浏览器,默认情况下它是一个会话级别的Cookie(即存储在浏览器内存中的),用户退出浏览器之后即被删除,若希望浏览器将该Cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大实效设为0则是命令浏览器删除该cookie。
- 删除Cookie时,Path必须一致,否则不会删除。
JavaEE中的Cookie技术
在 javax.servlet.http 包下有个名为 Cookie的类,通过该类 就可以 向 客户端 设置Cookie数据了。
Cookie:
Creates a cookie,a small amount of information sent by a servlet to a Web browser,saved by the browser,and later sent back to the server.
客户端获取服务器端的Cookie
//`在这里插入代码片`创建cooKie对象,第一个参数类似map中的key,第二个类似Map中的value
Cookie cookie1 = new Cookie("username","admin");
Cookie cookie2 = new Cookie("password","123456");
将Cookie添加到响应中
resp.addCookie(cookie1);
resp.addCookie(cookie2);
设置Cookie的有效时常
默认情况下,Cookie是保存在浏览器的缓存中的,关闭浏览器后Cookie也就消失了。开发者可以通过设置Cookie的有效时常,将Cookie写入到客户端硬盘文件中。
可以通过下面的方法设置有效时常:
public void setMaxAge(Int expiry);其中 expiry的单位为秒,整型。
服务器端获取请求的Cookie
在HttpServletRequest中有一个方法 getCookies(),专门用于读取请求中所携带的Cookie数据,该方法的返回值类型是Cookie数组。