session过期怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了session过期怎么办相关的知识,希望对你有一定的参考价值。
Tomcat+jsp环境
在用户进入系统的时候,初始化一些值,保存到内部变量session里面,
便于用户操作时提取值
问题是session只保存半小时左右,这时间也可以设长,或者永久,但显然是行不通的
现在我每个页面基本上都需要取session,如果每次都判断session里面取来的值是不是为null,好象有点麻烦,而且如果初始化时set到session里面的值本身就是为null,也就增加判断的难度,
有没有更好的方案处理这种情况
谢谢
最好是具体一点的
谢谢拉!
一楼的回答好象不是我问的问题的答案吧
1、web app server中,如websphere里可以设置超时时间为30分钟。
2、在web.xml中的session-config配置session-timeout元素(WEB.XML文件中的元素)用来指定默认的会话超时时间间隔,以分钟为单位。该元素值必须为整数。
3、setMaxInactiveInterval设置当前会话时间,setMaxInactiveInterval设置的是当前会话的失效时间,不是整个web的时间。
4、可以通过一个线程去扫描,如果时间带了,线程自动清除,或者用的时候进行判断,用过后进行remove,如果使用线程自动remove,可以使用spring的线程池。
参考技术A 这没什么呀,配置一下session过期时间,再配置一个过滤器来检测每一次操作时session是否过期就可以了。 参考技术B session的保存时间指的是在用户不进行操作的情况下的保存时间;只要用户停止操作的时间没有没有超过session超时的时间就一直存在!如果每个页面都要做判断,最好写一个Filter,专门过滤session!本回答被提问者采纳 参考技术C 用户信息最好就是放在session里面的,安全。如果要是全局性质的信息也可以保存在application或者request里面。 参考技术D 最好写一个Filter,专门过滤session!
如何解决session时间过期
1、操作系统:步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟)。确定即可。
2、ASP.NET应用程序中Session过期时间的设置
在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的。在ASP.NET中如何设置Session的过期时间呢,很简单,修改web.config配置。
具体修改方法如下,在web.config中进行如下配置
<system.web>
<sessionState mode="InProc" timeout="30"/>
</system.web>
在这里指的是Session过期时间为30分钟。也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。
3、在调用Session的cs页中,Load事件里面写以下
Session.Timeout = 30;
4、Store session in asp.net state service
<sessionState cookieless="false" timeout="480" mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" />
看一下,看你的程序是用到了哪种设置方式,把时间改成你需要的时间就可以了。 参考技术A 一般情况下,如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间为20分钟,IIS中session时间可以更改
以上是关于session过期怎么办的主要内容,如果未能解决你的问题,请参考以下文章