如何检查会话是否无效

时间:2009-03-11 15:01:52

标签: java session httpsession

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

是否与isNew()相同?如果不是,有什么区别?

3 个答案:

答案 0 :(得分:45)

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

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
}

答案 1 :(得分:5)

isNew()只有在客户端尚未接受此会话时才会成立(即它刚刚创建,JSESSIONID尚未发送,或者如果已发送,客户端未将其发回,所以服务器不知道它并创建了另一个会话)

答案 2 :(得分:2)

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