30

如何检查会话是否无效?API中没有方法。

是一样的isNew()吗?如果不是,有什么区别?

4

3 回答 3

50

如果您想根据请求知道它是否有效:

request.isRequestedSessionIdValid()

  or

HttpSession sess = request.getSession(false);
if (sess != null) {
   // it's valid
}

如果您存储了对会话的引用并且需要验证我会

try {
  long sd = session.getCreationTime();
} catch (IllegalStateException ise) {
  // it's invalid
}
于 2009-03-11T19:50:34.717 回答
5

isNew()仅当客户端尚未接受此会话时才为真(即,它刚刚创建,并且尚未发送 JSESSIONID,或者如果已发送,客户端没有将其发回,因此服务器不知道它并创建了另一个会话)

于 2009-03-11T20:17:07.273 回答
3

出于所有意图和目的,是的。但是,如果在同一请求-响应周期中无效的会话上调用,它将抛出 IllegalStateException。

于 2009-03-11T15:06:23.447 回答