2012-04-07 14 views
1

JSP用のデフォルトの<session-timeout>設定を使用して、セッションの有効期限が切れた後に「Your session expired(30 min)」というメッセージを表示し、ユーザーをログインページに戻したいとします。JSPでセッションタイムアウトを正しく通知する方法は?

((HttpServletRequest) request).getSession(false) == nullを検出するには、ユーザーがアプリケーションに初めて入り込んだときにセッションがすでにヌルになっているため、正常にジョブを実行していないため、メッセージが正しく表示されます。

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

答えて

2

最後にログインしたことを示すCookieを設定するのはどうですか? Cookieが有効で、urlがlogin urlでない場合は、セッションタイムアウトメッセージを表示できます。

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 
} 
関連する問題