1

JSPのデフォルト<session-timeout>設定を使用して、セッションの有効期限が切れた後に「セッションの有効期限が切れました (30 分)」というメッセージを表示し、ユーザーをログイン ページに戻したいと考えています。

((HttpServletRequest) request).getSession(false) == nullユーザーが最初にアプリケーションに入ったときにセッションがすでに null になっていて、メッセージがすぐに表示されるため、ジョブが適切に実行されていないことを検出するために使用します。

どうすればこれを回避できますか? JSP の HttpSession をカスタマイズして、実際のイベントがいつ発生したかを知る方法はありますか?

4

2 に答える 2

1

最終ログインを示す Cookie を設定するのはどうですか? Cookie が有効で、URL がログイン URL でない場合、セッション タイムアウト メッセージが表示されることがあります。

于 2012-04-07T06:56:44.900 に答える
0

request.isRequestedSessionIdValid()メソッド(疑似コード)を使用するのはどうですか:

if(request.getRequestedSessionId() == null) {
  // no session yet -> need to create new one
}
else if(request.isRequestedSessionIdValid()) {
  // we have valid session
}
else {
  // session invalid due to timeout -> handle timeout
}
于 2014-08-11T00:49:07.733 に答える