一、会话跟踪技术
二、Cookie
(一)Cookie基本使用
1.服务器发送Cookie
a.创建Cookie对象,设置数据
b.发送Cookie,respone
2.服务器获取Cookie
c.获取客户端携带的所有Cookie,使用request对象
d.遍历数组获取每一个cookie对象
e.使用Cookie对象方法获取数据
(二)Cookie原理
(三)Cookie使用细节
1.Cookie存活时间
2.Cookie存储中文
三、Session
(一)Session基本使用
(二)Session原理
(三)Session细节
1.Session钝化,活化
2.Session销毁
四、使用场景
一、会话跟踪技术
会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中,可以包含多次请求和响应。(几个浏览器,几个会话)
会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一次会话的多次请求间共享数据
因为HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享
因此为了实现会话跟踪:
客户端会话跟踪技术:Cookie
服务端会话跟踪技术:Session
二、Cookie
客户端的会话技术,将数据保存到客户端,一行每次请求都携带Cookie数据进行访问
(一)Cookie基本使用
1.服务器发送Cookie
a.创建Cookie对象,设置数据
Cookie cookie=new Cookie("key","value")
b.发送Cookie,respone
response.addCookie(cookie)
2.服务器获取Cookie
c.获取客户端携带的所有Cookie,使用request对象
Cookie[] cookies=request.getCookies();
d.遍历数组获取每一个cookie对象
e.使用Cookie对象方法获取数据
cookie.getName()
cookie.getValue();
(二)Cookie原理
Cookie的实现是基于HTTP协议
响应头:set-cookie
请求头:cookie
(三)Cookie使用细节
1.Cookie存活时间
——默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁
——setMaxAge(int seconds):设置cookie存活时间
a.正数:将Cookie写入浏览器所在的电脑硬盘,持久化存储。到时间自动删除
b.负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,Cookie销毁
c.零:删除对应Cookie
2.Cookie存储中文
默认不能直接存储中文,会报错
如果需要存储,则需要转码:url编码
三、Session
服务端会话跟踪技术:将数据保存到服务端。
因为数据在浏览器来回传输,不太安全
(一)Session基本使用
javaEE提供的HTTPSession接口,来实现一次会话的多次请求间数据共享功能
1.获取Session对象
HttpSession session=request.getSession();
2.Session对象功能
void setAttribute(String name,Object o):存储数据到session域中
Object getAttribute(String name):根据key,获取值
void reoveAttribute(String name):根据key,删除取键值对
(二)Session原理
Session是基于Cookie实现的
保证了一个会话的Session对象是一个
怎么做到:
一次会话,会设置id,用Cookie传送id,。(先传暗号,在查数据)
(三)Session细节
1.Session钝化,活化
服务器重启后,Session中的数据还在吗?
正常关闭,不会销毁,就是crtl+c和指令
原因:
钝化:在服务器正常关闭后,tomcat会自动将session数据写入硬盘的文件中
火花:再次启动服务器后,从文件加载数据带Session中
2.Session销毁
a.默认销毁
在tomcat文件中web.xml里面写的
也可以在项目里web.xml里修改
b.手动销毁
调用Session对象的invalidate()方法
session.invalidate();