Java 如何检查会话是否无效

Java 如何检查会话是否无效,java,session,httpsession,Java,Session,Httpsession,如何检查会话是否无效? 在这个过程中没有方法 它与isNew()相同吗?如果没有,有什么区别呢?出于所有目的,是的。但是,如果在同一请求-响应周期中对无效的会话调用,它将抛出IllegalStateException。如果您想知道它是否基于请求有效: request.isRequestedSessionIdValid() or HttpSession sess = request.getSession(false); if (sess != null) { // it's vali

如何检查会话是否无效? 在这个过程中没有方法


它与
isNew()
相同吗?如果没有,有什么区别呢?

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

如果您想知道它是否基于请求有效:

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
}
isNew()
仅当客户端尚未接受此会话时才为真(即,该会话刚刚创建,JSESSIONID尚未发送,或者如果已发送,客户端未将其发送回,因此服务器不知道该会话并创建了另一个会话)