栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Session

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Session

1、Session是什么?

服务器端会话技术,在一次会话的多次请求中共享数据,数据存放在服务器的内存中。

  (浏览器从打开到关闭是一次会话)

2、基本介绍

session机制采用的是在服务器端保持 HTTP 状态信息的方案。为了加速session的读取和存储,web服务器中会开辟一块内存用来保存服务器端所有的session,每个session都会有一个唯一标识sessionid,根据客户端传过来的jsessionid(cookie中),找到对应的服务器端的session。为了防止服务器端的session过多导致内存溢出,web服务器默认会给每个session设置一个有效期,      (30分钟)若有效期内客户端没有访问过该session,服务器就认为该客户端已离线并删除该session。

原理:依赖cookie,存储jsssionid

session会在cookie中储存一个Jsessionid的东西来标识每个用户然后会在本地生成对应ID的文件来储存相应的值,与cookie相比多了不少安全性

3、常用API

1、getid()方法:得到sessionid.

2、invalidate()方法:让session立刻失效。

3、getAttribute(String key):根据key获取该session中的value。

4、setAttribute(String key,Object value):往session中存放key-value。

5、removeAttribute(Stringkey):根据key删除session中的key-value。

6、getServletContext():得到ServletContext。

7、setMaxInactiveInterval(long timeout)/getMaxInactiveInterval:设置/获取session的最大有效时间。

8、getCreationTime方法:获取session的创建的时间。

9、getLastAccessedTime方法:获取session最后一次访问的时间。

10、getSession():从HttpServletRequest中获取session。

4、Session什么情况会销毁

Session在服务器关闭

1、当服务器关闭(正常关闭和启动服务器,不能直接关闭虚拟机) , 两次获得的 session 对象还是同一个, tomcat 帮我们做了 session 的钝化处理(将服务器内存中的 session 对象序列化到了外存中,见下图),

  当服务器重启后又进行了session对象活化(又读入了内存)

2、Session默认失效时间30分钟

  在工程中web.xml中修改存活时间

 

  30

 

  默认配置是配置在config下的web.xml中

3、当浏览器关闭后,服务器不关闭,两次获得session不是同一个。

如果想要想要相同

  cookie ck = new cookie(“JSESSIONID”,sesssion.getId());

  ck.setMaxAge(3600);

  response.addcookie(c);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号