Session对象及其⽅法Session:蒙古文化
1.概念:服务器端会话技术,⼀次会话的多次请求间共享数据,将数据保存在服务器端的HttpSession对象中
2.基本⽅法
1.获取HttpSession对象
HttpSession session = Session();
浙江二本大学2.使⽤HttpSession对象
Object getAttribute(String name)
void setAttribute(String name, Object value)
void removeAttribute(String name)
引力常量3.基本原理:
Session的实现依赖于Cookie
步骤:
1.服务器端第⼀次获取HttpSession对象,没有
cookie,会在内存中创建⼀个新的HttpSession对象,
并且会产⽣⼀个唯⼀的SessionID,通过set-cookie响应头
返回该SessionID
2.再次访问服务器端,通过请求头的cookie,携带SessionID到
服务器端,并且按照该SessionID查内存中是否有⼀个
该id的HttpSession对象,如果有,则getSession()将该对象
返回给HttpSession引⽤,就获取到了该对象
注意:所以获取的session是同⼀个
4.细节:
1.当客户端关闭后,服务器不关闭,两次获取session是同⼀个吗
不是,因为当客户端关闭后,客户端中cookie中的JSESSIONID会消失,
打开浏览器后,再次请求服务器时候,不会携带JSESSIONID的cookie,
也就不到服务器中的那个session对象了
如果需要在关闭浏览器后,仍可以获取同⼀个session,需要设置JSESSIONID以及最⼤存活时间(持久化) Cookie jsessionid = new Cookie("JSESSIONID", Id());
jsessionid.setMaxAge(60*60);
response.addCookie(jsessionid);
2.客户端不关闭,服务器关闭后,两次获取session是同⼀个吗
不是,服务器关闭后,内存中的session对象会被销毁
为了服务器session中数据不丢失:
session的钝化:
在服务器正常关闭后,将获取的session对象序列化到硬盘上
session的活化:
在服务器启动后,将session⽂件转化为内存中的session对象
注意:部署项⽬时,⽤本地tomcat,因为它会⾃动进⾏session对象的序列化和反序列化
3.session什么时候被销毁
1.服务器⾮正常关闭(正常关闭会被序列化)
2.session对象调⽤invalidate()
3.session默认失效时间30分钟
选择性配置
在tomcat的apache-tomcat-8.5.31\conf下的l中设置
2022年小年<session-config>
<session-timeout>设置存活时间(分钟)</session-timeout>
</session-config>
5.session的特点:
1.session⽤于存储⼀次会话的多次请求的数据,存在服务器
2.session可以存储任意类型,任意⼤⼩的数据
session与cookie的区别
1.session存储数据在服务器端,cookie在客户端
2.session没有数据⼤⼩限制,cookie有限制4kb
被乔晶晶称为3.session数据安全,cookie相对不安全
>如何修改wifi密码
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论