注册 登录
编程论坛 J2EE论坛

session的存活时间(学java se一定要进来看一看)

发布于 2010-11-18 16:21, 3179 次点击
  session的存活时间:
              问题:
                    明天我和一个同事在session有点争议,有以下两种情况,请高手帮我们分析一下:
                        1)session在创建之后(时间为20分钟),在这个时间之内,不在去set修改session的值的话.那么20分钟之内session就会消失.
                                 在这20分钟之内,不管你去访问任务也页面.只要session的值不改变,那么20分钟就会失效.
                                         如:创建session之后(20分钟),过了10分钟之后,我在给服务器发送了一个请求,那么session的存活时间,只有10分钟了
                        2)session在创建之后(时间为20分钟),在20分钟之内,只要给服务器发送过了请求,那么session的存活,还将是20分钟
                                         如:创建session之后(20分钟),过了10分钟之后,我在给服务器发送了一个请求,那么session的存活时间,还将是20分钟


                另一个session的问题:
                           session的存活时间是20分钟,当我关闭了浏览器之后,session在客户的浏览器上已经失效了,那么在服务器的session是否还是存在


              请各位高手,给出见解!
5 回复
#2
boycyc2010-11-20 19:32
session的存活时间从用户的访问开始算起,第一次进来,20分钟开始倒计时!在这20分钟内,他没有做任何点击链接或刷新按钮的话,20分钟后,session就失效。
其次,在这20分钟内每次点击网页链接,和刷新网页,session的存活时间从新算起,即刷新一次,生命周期从新开始。又是20分钟倒计时喽!!
最后:session的存活,我做过实验是这样的:session存活时间20分钟,时间未到,用户关闭网页或浏览器,session在服务器那还是被认为是活着的,服务器认为session 还活着,知道20分钟结束后,服务器认为该会话结束。
例外:就是用了request.getSession().invalidate();让session当场毙命!那就另当别论了,这样直接告诉服务器,他死了。用户端也是一样!!

[ 本帖最后由 boycyc 于 2010-11-20 19:36 编辑 ]
#3
alushuai1592010-11-22 13:04
挺楼上的
#4
2010-11-26 23:25
回复 2楼 boycyc
我想问一下.
      如何来测试服务器的session还是存在的.
#5
czc08072010-12-05 22:07
关闭浏览器并不能让服务器的Session失效。

只是当客户端浏览器关闭之后,你第二次连入服务器时,服务器会把你当成另一个客户端对待,
因此服务器不会把之前的状态分配给你而已。

举个简单的例子来说,你在某个银行(服务器)存了一些钱,服务器是根据你的ID来识别你的,当你一直在这个银行里时,你的ID是不变的,因此你的账户(就像session状态)可以在多个页面之间保持。但一旦离开银行,当你再次下次进入银行时,银行将在再次分配给你一个ID,那么你的账户就是空的(看上去就像你的session失效了)。
#6
boycyc2010-12-15 09:50
回复 4楼 wtuaimmmm
我个人认为最好的办法,即最好理解的办法是用session listenner,我之前做过监听器,主要是监听网站的在线人数,当用户登录的时候将用户名放入session 中,登出的时候关闭session,通过查询session中的用户名,就可以知道谁上线,多少人上线,等,功能相对比较简单,但是对理解session还是有一定用处的,相关监听器的设置,baidu很多资料。希望对你有用,呵呵,,,
1