web-dev-qa-db-ja.com

セッションが無効かどうかを確認する方法

セッションが無効かどうかを確認するにはどうすればよいですか? [〜#〜] api [〜#〜] にはメソッドがありません。

isNew()と同じですか?そうでない場合、違いは何ですか?

28
iddober

リクエストに基づいて有効かどうかを知りたい場合:

request.isRequestedSessionIdValid()

  or

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

セッションへの参照を保存し、検証する必要がある場合は、

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

isNew()は、このセッションがクライアントによってまだ受け入れられていない場合(つまり、作成されたばかりで、JSESSIONIDがまだ送信されていない場合、または送信された場合、クライアントが送信しなかった場合にのみtrueであるため、サーバーはそれを知らず、別のセッションを作成しました)

5

すべての意図と目的のために、はい。ただし、同じ要求/応答サイクルで無効化されたセッションで呼び出されると、IllegalStateExceptionがスローされます。

3
Chry Cheng