论坛首页 Java企业应用论坛

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

浏览 34324 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-11  

在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?
   发表时间:2007-10-11  
5分钟过期?要求真奇特

简单了,在页面搞个ajax远程调用,每隔1分钟自动调用一下某个serlvet
0 请登录后投票
   发表时间:2007-10-11  
那样5分钟还会过期吗?
0 请登录后投票
   发表时间:2007-10-11  
5分钟不操作Session就过期?这个操作包括页面操作吗?如果是就用ajax响应好拉!
0 请登录后投票
   发表时间:2007-10-11  
可以再刚开始的时候给session设置一个时间哦!比如设置15分钟哦,当然用ajax 没一分钟就,调用一次也是可以的哦!
0 请登录后投票
   发表时间:2007-10-11  
看来大家给出的答案跟我想的差不多,不管是不是使用ajax,本质上都是定时自动的同server交互来保持session不过期。
0 请登录后投票
   发表时间:2007-10-11  
写道
看来大家给出的答案跟我想的差不多,不管是不是使用ajax,本质上都是定时自动的同server交互来保持session不过期

这样会加重服务负担的!
0 请登录后投票
   发表时间:2007-10-11  
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?

到了那个页面后作一个嵌入式自刷新页面。。。。每分钟刷一次无返回就可以了。
不需要返回页面的请求。。。。压力应该不是很大吧。。而且只有一个页面。。。
0 请登录后投票
   发表时间:2007-10-11  
突然又想到一个比较“龟毛”的问题,如果用户在这个界面确实没有做操作了,那就应该在5分钟的时间之内页面失效。

如果我们自动访问Server以保持Session的话,那么这个页面就永远不会过期了。

这也是一个问题,虽然有点挑刺的感觉。
0 请登录后投票
   发表时间:2007-10-11  
tomkoo 写道
突然又想到一个比较“龟毛”的问题,如果用户在这个界面确实没有做操作了,那就应该在5分钟的时间之内页面失效。

如果我们自动访问Server以保持Session的话,那么这个页面就永远不会过期了。

这也是一个问题,虽然有点挑刺的感觉。


所以我才问那个问题啊,你这个只能更改客户的要求,有求部分功能的session失效时间不一定就是5分钟
0 请登录后投票
论坛首页 Java企业应用版

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