2012-03-25 538 views
3

会话失效意味着会话销毁。因此,如果会话被销毁,则表示服务器无法识别先前访问过的客户端。现在,它会为该客户端创建一个新的会话ID。什么是会话失效?

这是对吗?如果错误告诉我正确的程序。

回答

4

调用HttpSession.invalidate()只是清除绑定到它的任何对象并将其标记为无效,所以如果您尝试修改它,则会引发异常。

一旦会话失效,放置在客户端的Cookie中的SessionID也将无效,并且在创建新的会话对象时必须创建新的会话ID。所以新的会话将有一个新的ID。

这是有用的来处理例如登录/注销。会话应始终在登录时失效,以帮助防止会话修复攻击

+0

会发生什么对应于该失效的会话ID – user1286481 2012-03-26 16:58:27

+0

的数据没什么特别的,因为会话被破坏,它不能从会话中访问。如果会话是保持对其引用的唯一对象,则它有资格进行垃圾回收 – 2012-03-26 17:46:20

0

Yes, absolutely right。使会话无效将会话标记为无效,并将被销毁。如果客户端带有无效的会话ID,则会创建一个新会话。

+0

当我们退出浏览器时会话变量会发生什么变化? – user1286481 2012-03-26 16:11:14

+0

服务器在某些空闲超时值后会使其失效。您也可以在web.xml中配置会话超时值。 – 2012-03-26 16:35:07

+0

什么发生的所有属性我已经设置session.setAttribute他们变得清除或什么;或者它与这个主题无关,意味着它们将保持不变 – shareef 2014-12-09 13:16:27

0

session.inValidate():

如果我们登录到Gmail,然后在服务器端,服务器都会创建会话对象

如果我们呼吁session.inValidate()方法意味着我们退出因为会话对象被服务器销毁。