论坛首页 Java企业应用论坛

页面“长时间”操作引起的Session过期

浏览 34294 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-11-20  
如果你用的是tomcat是可以在web.xml设置的!!!
0 请登录后投票
   发表时间:2007-11-30  
可以用JS弄个计时

嵌入页面的刷新时间time1
前一次操作(勾选等操作)时间time2
操作时间time3

time3 - time2 > 5分钟,超时
time3 - time1 >= 4分钟,刷新嵌入的页面,保证session不过期
0 请登录后投票
   发表时间:2007-12-01  
做个内嵌帧,然后里面放上一个很简单的html,或者jsp的页面,
接着加上
<meta     http-equiv="Refresh"   content=5>
这个meta,上例为5妙,就可以实现永久保持会话了,当然这个内嵌帧你放在合适的地方就可以了,别到处都放.
0 请登录后投票
   发表时间:2007-12-04  
用Cookie难道不能解决这个问题吗?
0 请登录后投票
   发表时间:2007-12-04  
应用服务器里不是都能设置的啊,把过期时间设得长一点,或者设为-1,永不过期。
0 请登录后投票
   发表时间:2008-04-23  
i think the expiration of session can be defined in the server, so you can set it a bit longer.
the other way is you can let page reflash after a specific time. then you question solved
0 请登录后投票
   发表时间:2008-04-23  
后面几位的回答有点偏离方向了~~~~
0 请登录后投票
   发表时间:2008-04-23  
为什么不分页显示。让用户有一个next page的过程。为什么一次性显示给用户2000条。我要是用户,看都看累了。
0 请登录后投票
   发表时间:2008-04-24  
赫赫,其实这个问题很简单,很多人第一感觉采用ajax 啊,什么定期连接一下服务器!



就像RayPoy所说,一个内容过多的页面就需要拆分多个页面,减少用户输入量,增强用户体验,多个页面可以通过向导方式一步一步完成,用户的输入,这样每个页的操作时间大大缩减,基本不到所谓的5分钟。
0 请登录后投票
   发表时间:2008-04-25  
chinata 写道
tomkoo 写道

在Servlet Specification 2.4中对Session的过期有这样的一句描述:
引用

The session invalidation will not take effect until all servlets using that session have exited the service method.


所以,如果client跟server没有交互,那么session过期时间就开始计算了。

但是在实际应用中,我遇到了这样的问题:

客户要求系统5分钟不操作Session就过期。但是我们有一项功能“银企对账”,需要在页面上对2000多条数据进行勾选,这个勾选完全是页面的操作,同Server没有任何交互,但是由于数据量大,勾选的时间远远超过5分钟,当勾选完后执行操作时,Session已经过期了。

这样的矛盾如何解决?设置自动同Server交互以维持Session?Or Other?


这个世界上有什么新鲜花样?特别是java的业务实现,都是别人做过的东西。这种逻辑抄袭就行了。
从安全角度上看,自动连接刷新session是非常危险的。多用些网银就知道了,就是2种做法:
1,主动通知:服务器端把session的timeout设为5分钟,页面有个计时器(新页面的话会重新计时),如果到了5分钟,就通知客户说,你5分钟没连接session了,是否要logout(客户点否,就用javascript送一个httprequest去刷session),客户选“是”或者不选都算logout。这段代码应该包括在所有的页面中。前面一个朋友说用事件函数也可以,但是如果在每个页面都这样写,可能会和别的逻辑代码冲突。
2,被动认证:另外一种做法还是自动timeout,超时的话就去一个页面多输入一次密码。我觉得这种实现实际是多层架构,就是在app server层有timeout,实际上web server的是没有timeout或者很长的timeout,这样保证了安全性和页面逻辑的一致性。

同意这样的方法
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics