これ以外にセッションの有効期限を確認する方法はありますか?
session.isNew()
はい:
HttpServletRequest.getSession(false)
を呼び出すことができ、アクティブなセッションがまだない場合は、セッションの代わりにnull
を取得します。
web.xml
でライフサイクルリスナーを(HttpSessionListener
を使用して)定義できます。そうすれば、セッションがほこりを噛んだ瞬間に通知を受け取ることができます。
session.isNew
期限切れのセッションとまったく新しいセッションを区別することはできません。次の方法で、セッションの有効期限が切れているか、タイムアウトしているかを確認できます。
if (request.getRequestedSessionId() != null
&& !request.isRequestedSessionIdValid()) {
// Session is expired
}
getRequestedSessionId
を使用して、新規セッションと既存の(有効/期限切れ)セッションを区別し、isRequestedSessionIdValid
を使用して、有効なセッションと新規/期限切れのセッションを区別します。
このコードを Filter に入れることができます。