cookie
- cookie和session一样,都是实现会话技术的一种机制,session是保存在服务端的,cookie是保存在客户端的。
- 通过sessionID来区分不同的会话,sessionID是由客户端产生的,保存在客户端的cookie,传到服务器之后,再将sessionID自动保存到session中,session和cookie都保存有sessionID。
- cookie是服务器在http响应中附带传给浏览器的一个文本文件,浏览器会保存cookie,在下一次访问服务器时再将cookie传给服务器,服务端再次作出响应时,又会将cookie待会给客户端,cookie就是这样在客户端和服务端之间来回传递的。
Java中有一个Cookie类,该类专门用来描述cookie。
-
创建cookie
Cookie cookie = new Cookie("name","lisi"); response.addCookie(cookie);
每一次客户端的请求都会在request对象中附带当前客户端中的所有cookie,服务器在做响应的时候,如果返回cookie对象,客户端接收到该响应之后,会更新当前的本地cookie:(如果响应的cookie的key不存在,则添加一个新的cookie,如果响应的cookie的key存在,则覆盖之前的cookie),在下一次请求的时候同样会将当前的cookie带入,服务器在做响应的时候重复之前的步骤。
- 读取cookie
Cookie[] cookies = request.getCookies();
void setMaxAge(int age) //设置cookie的有效时间,单位为秒 Int getMaxAge() //获取cookie的有效时间 void setValue(String value) //修改cookie的值 String getName() //获取cookie的名称 String getValue() //获取cookie的值
session和cookie的区别
session:保存在服务端
保存的数据类型是Object
随着会话的结束而销毁
保存重要信息
cookie:保存在客户端
- 保存的数据类型是String
- cookie可以长期的保存在客户端
- 保存不重要的信息