如何在java中检查会话是否已过期?

如何在java中检查会话是否已过期?,java,session,servlets,Java,Session,Servlets,除此之外,还有其他方法检查会话到期吗 session.isNew()是: 您可以调用HttpServletRequest.getSession(false),如果没有一个会话处于活动状态,您将得到一个null,而不是一个会话 您可以在web.xml中定义生命周期侦听器(使用HttpSessionListener)。这样,您可以在会话失败时得到通知 使用会话。isNew您无法区分过期会话和全新会话。 您可以通过以下方式检查会话是否已过期和/或超时: if (request.getRequeste

除此之外,还有其他方法检查会话到期吗

session.isNew()

是:

  • 您可以调用
    HttpServletRequest.getSession(false)
    ,如果没有一个会话处于活动状态,您将得到一个
    null
    ,而不是一个会话

  • 您可以在
    web.xml
    中定义生命周期侦听器(使用
    HttpSessionListener
    )。这样,您可以在会话失败时得到通知


    • 使用
      会话。isNew
      您无法区分过期会话和全新会话。 您可以通过以下方式检查会话是否已过期和/或超时:

      if (request.getRequestedSessionId() != null
              && !request.isRequestedSessionIdValid()) {
          // Session is expired
      }
      
      使用
      getRequestedSessionId
      区分新会话和现有(有效/过期)会话,使用
      isRequestedSessionIdValid
      区分有效会话和新会话/过期会话


      对于第二个建议,您可以将此代码放在。

      +1中。顺便说一句,它的名字很好,所以HttpSessionListener就是其中之一。实现
      HttpSessionListener
      是一种方法。只需挂接
      sessionDestroyed()