session随笔
·由于cookie中不能保存很多信息,于是Session出现来完成这个功能。
·Session的作用就是在服务器保存一些保存一些用户的数据,然后传递给用户一个名字为JSESSIONID的Cookie,这个JESSIONID对应这个服务器中的一个Session对象,通过它就可以获取到保存用户信息的Session。
Session的创建
·Session的创建时机是在request.getSession()方法第一次被调用时。
Session被创建后,同时还会有一个名为JSESSIONID的Cookie被创建。
这个Cookie的默认时效就是当前会话。
Session的使用
·Session被创建后,对应的Cookie被保存到浏览器中,之后浏览器每次访问项目时都会携带该Cookie。
当我们再次调用时会根据该JSESSIONID获取已经存在的Cookie,而不是在创建一个新的Cookie。
如果Cookie中有JSESSIONID,但是JSESSIONID没有对应的Session存在,则会重新创建一个HttpSession对象,并重新设置JSESSIONID。
Session的时效(即存在时间)
·Session对象在服务器端不能长期保存,它是有时间限制的,超过一定时间没有被访问过的Session对象就应该释放掉,以节约内存。所以Session的有效时间并不是从创建对象开始计时,到指定时间后释放——而是从最后一次被访问开始计时,统计其“空闲”的时间。
在全局web.xml中能够找到如下配置:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
( “30”表示30分钟;)
也可以手动设置:
session.setMaxInactiveInterval(int seconds)
Session对象的释放
·1 Session对象空闲时间达到了目标设置的最大值,自动释放
2 Session对象被强制失效( session.invalidate() )
3 Web应用卸载
4 服务器进程停止
Session的活化和钝化
`Session钝化:Session在一段时间内没有被使用时,会将当前存在的Session对象序列化到磁盘上,而不再占用内存空间。
Session活化:Session被钝化后,服务器再次调用Session对象时,将Session对象由磁盘中加载到内存中使用。
在Tomcat的配置文件conf/context.xml文件的根标签中加入如下代码
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<StoreclassName="org.apache.catalina.session.FileStore"directory="mySession" />
</Manager>
maxIdleSwap属性:指的Session闲置时间,当闲置一定时间以后,会自动钝化到硬盘中。(里面是秒)
directory属性:Session钝化后的目标文件夹。
session随笔的更多相关文章
- 关于HTTP session随笔
1).访问*.html的静态资源因为不会被编译为Servlet,也就不涉及session的问题. 2).当JSP页面没有显式禁止session的时候,在打开浏览器第一次请求该jsp的时候,服务器会自动 ...
- Session Cookies随笔
1.对于Session而言 它是用来保存在服务端的信息,可以用来做登录验证,在后台保存有用信息. 一个浏览器访问一个网站,就是建立一个连接,连接信息是独立的,就是在该建立的连接内,保存到Session ...
- [Web][学习随笔]Session&cookie
Session 从登录建立连接到退出就是一次会话.Session数据就会在会话期间用户存在服务器端的数据.这样,当用户在Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会 ...
- Cookie和Session的总结
1.开篇 在之前学习这一段的时候我一直有点没弄清楚,其实对Session这块的理解还可以,但是Cookie感觉始终还是欠缺点火候.之后的很长一段时间都基本上很少用Cookie了,渐渐的也淡忘了这一块的 ...
- 理解Session的几种模式
一.写在前面 我们在使用ASP.NET开发的过程中,有时会进行数据存储以实现请求前后的状态保持(HTTP是无状态保持的协议),而Session作为一种快速简单易于实现的方式被我们经常使用,当然如果出于 ...
- 会话—session
这篇随笔是上一篇的姊妹篇@_@! session 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下) ...
- HTML5随笔
1 首先介绍一下html5,以及为什么用html5, HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定. HTML5的设计目的是为了在移动设备上支持多媒体.HTM ...
- MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)
MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis ...
- MVC之Session State性能
ASP.NET MVC之Session State性能问题(七) 前言 这一节翻译一篇有关Session State性能问题的文章,非一字一句翻译. 话题 不知道我们在真实环境中是否用到了Sess ...
随机推荐
- java8 for ,forEach ,lambda forEach , strean forEach , parller stream forEach, Iterator性能对比
java8 for ,forEach ,Iterator,lambda forEach ,lambda strean forEach , lambda parller stream forEach性 ...
- html:布局class名和其他class名个人整理总结
一:app 二:header 三:main 四:footer 1:中横杠:布局(main-top.main-left等) 2:下横杠:状态(item-active:选中等)
- Longest Palindrome 最长回文串问题
1.题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum ...
- windows集群简单介绍
windows集群简单介绍仔细看过以前网友发表的一些文章,总觉得对windows集群没有详细介绍,我也是借花献佛,引用了一些技术性文档.目前应用最为广泛的集群计算技术可以分为三大类:高可用性集群技术. ...
- 云笔记项目-Spring事务学习-传播NEVER
接下来测试事务传播属性NEVER Service层 Service层中设置事务传播属性都为NEVER. LayerT层代码 package LayerT; import javax.annotatio ...
- ApplicationListener接口的生命周期
create:游戏初次创建时被调用,一般在这里创建ApplicationListener对象,初始化布景信息,将数据或UI布局绑定到监听器等,执行完该方法后会执行resize方法,是游戏创建立即执行的 ...
- event 事件1
1.事件流 1.1 事件冒泡 IE8- 浏览器支持的事件流是事件冒泡.事件冒泡是事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点(文档)的过程. <!doctype html&g ...
- wpf改变网格字体颜色
1.创建个转换器 public class ColorConvertor : IValueConverter { public object Convert(object value, Type ta ...
- Appium+python自动化获取toast消息的方法
转载地址:https://www.cnblogs.com/shangren/p/8191879.html 1. 首先执行这个命令:npm install -g cnpm --registry=http ...
- 网络通信实验(2)TCP/IP LWIP 简介
TCP/IP 简介 TCP/IP 中文名为传输控制协议/因特网互联协议,又名网络通讯协议,是 Internet 最基本的协议. Internet 国际互联网络的基础,由网络层的 IP 协议和传输层的 ...