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是否还是存在
              请各位高手,给出见解!

解决方案 »

  1.   

    个人理解:
       关闭浏览器,sessionid在客户浏览器会失效,但在服务器端的session不会随着浏览器的关闭而失效。
      

  2.   

    网上找到的:
      简单的说就是像某样东西一样可以活多久。
      如果定义为30则,周期为30分钟,如果这30分钟之类你不访问用说使用它,那么30分钟一到,session的值就为空了。如果你访问过,那么从最后访问后加30分钟。 
      

  3.   

    客户端通过sessionid 和服务器端交互。真正的所谓失效,是指在规定时间内,这个拥有sessionid的客户端没有和服务器端进行任何交互了。session对象是服务器端的对象,当容器正常启动,一旦session被创建,,一个容器中就只有一个session对象,客户端留有得只是一个sessionid,用于标示你的浏览器,以便在断开式的http情况下,服务器还能认出你来。
      

  4.   

    要是关闭浏览器,session就会消失,重现打开浏览器时,服务器端会重新给你个session,就会替代刚才的session,原来的session在客户端消失,但在服务端不会消失
      

  5.   

    我认为:
          1、从最后访问结束时开始计时,到规定时间后session会失效。
          2、session会一直留在服务器,除非服务器关闭。
             关闭浏览器可能会在客户端会消失
          不知道是对是错,请高手纠正
      

  6.   

     另一个session的问题:
      session的存活时间是20分钟,当我关闭了浏览器之后,session在客户的浏览器上已经失效了,那么在服务器的session是否还是存在
    恩。。只关闭浏览器的话。。只会将浏览器中的SessionId清除,并不会影响到服务器端的Session.
    关闭浏览器(客户端Cookie清除会话Id)
    关闭服务器(Session肯定没了)
    session.invalidate()---(session自杀客户端和服务器的session都没了)
    如果Session超时了的话。。那么会将客户端和服务器端的Session对象清除。。 
      

  7.   

    超时时间,不是从设值时间算起,而每次访问都刷新一下时间,也就是从最后一次访问开始算起。HttpSession#setMaxInactiveInterval 的 API document 上说得很清楚:Specifies the time, in seconds, between client requests before the servlet container will invalidate this session.
      

  8.   

    1.最后访问时间算起再加20分钟
    2.关闭一套父子浏览器窗口,客户端SessionId被清除,但是服务器端对应的Session对象还在,调用session.invalidate(),服务器端session对象被强制清除