服务器端会话技术:session
1. 概念:服务器端的会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中
HttpSession就是这样一个对象
2. 快速入门:
1. 获取Session
HttpSession hs = request.getSession();
2. 使用Session
hs.getAttribute()
hs.setAttribute()
hs.removeAttribute()
3. 原理
1. SessionDemo01 和 SessionDemo01都获取了Session但是这俩获取的是同一个Session对象
2. 服务器如何实现这俩session 一样
第一次获取session,没有Cookie
会在内存中创建一个新的session 对象
然后response一个响应头set-sookie, JSessionID = 1238994A3q34F
当下一次去访问这个网站的资源时就会把这个cookie发过去了
3. Session的实现依赖于Cookie

4. session
1. 客户端关闭后,服务器不关闭,两次获取的Session是否是同一个
默认情况下,不是
非默认情况 Cookie coo = new Cookie("JSESSIONID", session.getId())
coo.setMasAge(60*60)
2. 客户端不关闭,服务器关闭,两次获取的Session是否是同一个
不是, 服务器关闭后对象就销毁了
这会有问题,
如果用户访问过程中我们的服务器重启了,那么这时
用户之前的访问记录就没有了
解决这个问题我们引入两个概念
* session 钝化
在服务器关闭之前,将session对象序列化到硬盘上
* session 活化
在服务器启动后,将session文件转化为内存中的session
对象即可
3. Session失效时间
1. 服务器关闭
2. session对象调用invalidate()
3. session默认失效时间30分钟 web.xml中可以改

5. 特点
1. session用于存储一次会话的多次请求的数据,存在服务器上
2. session 可以存储任意类型和大小

* 与cookie的区别:
1. session 存储数据在服务端:Cookie在客户端
2. session 没有数据大小限制,Cookie(4k)
3. session 数据相对安全,cookie相对不太安全
posted on 2020-03-31 18:54  百晓灵狐  阅读(209)  评论(0编辑  收藏  举报