【问题标题】:how to check session has been expired in java?java中如何检查会话是否过期?
【发布时间】:2011-01-05 10:12:01
【问题描述】:

除此之外还有其他方法可以检查会话是否到期

session.isNew()

【问题讨论】:

    标签: java session servlets


    【解决方案1】:

    是的:

    • 您可以致电HttpServletRequest.getSession(false),如果还没有活动,您将获得null 而不是会话。

    • 您可以在您的web.xml 中定义一个生命周期侦听器(使用HttpSessionListener)。这样一来,您就可以在会话尘埃落定的那一刻得到通知。

    【讨论】:

    • +1 表示第二个建议。顺便说一句,它的名字很好,所以 HttpSessionListener 就是一个。
    • 实施HttpSessionListener 是要走的路。只需挂上sessionDestroyed()
    【解决方案2】:

    使用session.isNew,您无法区分过期会话和全新会话。 您可以检查会话是否已过期和/或超时:

    if (request.getRequestedSessionId() != null
            && !request.isRequestedSessionIdValid()) {
        // Session is expired
    }
    

    使用getRequestedSessionId 区分新会话和现有(有效/过期)会话,使用isRequestedSessionIdValid 区分有效会话和新会话/过期会话。

    您可以将此代码放入Filter

    【讨论】:

      猜你喜欢
      • 2016-11-20
      • 2012-05-15
      • 2021-04-05
      • 2018-04-10
      • 2013-10-07
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      相关资源
      最近更新 更多