web-dev-qa-db-ja.com

Javaでセッションの有効期限が切れていることを確認する方法は?

これ以外にセッションの有効期限を確認する方法はありますか?

session.isNew()

14
user241924

はい:

  • HttpServletRequest.getSession(false)を呼び出すことができ、アクティブなセッションがまだない場合は、セッションの代わりにnullを取得します。

  • web.xmlでライフサイクルリスナーを(HttpSessionListenerを使用して)定義できます。そうすれば、セッションがほこりを噛んだ瞬間に通知を受け取ることができます。

29
Carl Smotricz

session.isNew期限切れのセッションとまったく新しいセッションを区別することはできません。次の方法で、セッションの有効期限が切れているか、タイムアウトしているかを確認できます。

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

getRequestedSessionIdを使用して、新規セッションと既存の(有効/期限切れ)セッションを区別し、isRequestedSessionIdValidを使用して、有効なセッションと新規/期限切れのセッションを区別します。

このコードを Filter に入れることができます。

24