一、Cookie
1.什么是Cookie
(1)服务器通知客户端保存键值对的一种技术
(2)客户端有了Cookie之后,每次请求都携带Cookie
(3)Cookie的大小不能超过4k
2.Cookie创建
(1)服务器创建Cookie,并通过响应头Set-Cookie通知客户端(浏览器)保存Cookie
(2)客户端(浏览器)发现Set-Cookie响应头,就会检查Cookie,如果该Cookie信息不存在就保存,存在就修改
3.Cookie修改
(1)方法一:服务器创建同名的Cookie,赋予新的值,通过响应头Set-Cookie通知客户端(浏览器),客户端(浏览器)发现存在同名的Cookie,就会修改
(2)方法二:获取到Cookie对象,使用setValue方法修改
4.Cookie生命控制
(1)setMaxAge();设置Cookie最大存活时间,以秒为单位。
正值:表示经过多少秒之后,Cookie失效过期
负值(默认):表示Cookie不会被持久存储,退出浏览器会被删除
0:表示马上删除Cookie
5.Cookie有效路径Path设置
(1)Cookie的path属性,可以控制哪些Cookie需要发送给服务器,哪些不需要发送
二、Session
1.什么是Session
(1)是一个接口HttpSession
(2)是用来维护客户端和服务器端关联的一种技术
(3)每个客户端都有自己的一个Session
(4)Session经常用来保存用户登录之后的信息
2.创建Session
(1)getSession();方法
第一次调用为创建Session;第二次调用为获取Session
isNew();方法可以判断Session是否为新创建Session
每个会话Session都有一个ID值。这个值是唯一的
3.获取Session域中数据
(1)setAttribute();向Session域中存储数据
(2)geetAttribute();获取Session域中数据
4.Session生命周期控制
(1)setMaxInactiveInterval();设置Session超时时间,以秒为单位,超过超时时间,Session被销毁(默认时间为1800秒)
(2)getMaxInactiveInterval();获取Session超时时间
(3)超时时间是指两次请求的间隔时间
(4)超时时间设置为负数。表示永不超时,极少使用
(5)invalidate();设置会话为超时
5.客户端和服务端Cookie和Session关联关系
(1)第一步:客户端第一次访问服务端,服务端建立会话Session对象,并且每次Session对象的建立,都会去创建一个Cookie对象,并通过Set-Cookie:JSESSION=VALUE形式通知客户端建立Cookie对象
(2)第二步:客户端存在Cookie之后,每次请求都携带Cookie中的JSESSION信息,服务器会根据Cookie中的JSESSION信息,获取Session信息