如何检查会话是否无效

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

它和isNew()吗? 如果没有,有什么区别?

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

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

如果您已存储对会话的引用并需要validation我会

 try { long sd = session.getCreationTime(); } catch (IllegalStateException ise) { // it's invalid } 

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

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