2012-02-29 4 views
2

フィルタ内で、期限切れのセッションをログインページに戻して、ユーザーがログインする必要があるというメッセージを表示しようとしています。私はセッションオブジェクトではなくリクエストオブジェクトにメッセージを添付して、後でメッセージを消去することを心配する必要がないようにします。フィルタからJSPにリダイレクトするときの属性の引き渡し:セッションとリクエストの比較

私はフィルタの内側に使用します。

catch (NullPointerException exc) 

{ 

    String message = "You must log in to access this site."; 
    url += "/login.jsp"; 
    request.setAttribute("message", message); 
    httpResponse.sendRedirect(url); 
} 

ログインページが(メッセージがnull)のメッセージが表示されません。ただし、私が使用する場合:

session.setAttribute("message", message); 

メッセージはログインページにきれいに表示されます。

サーブレットでは、リクエストオブジェクトを使用してメッセージを添付して表示することに問題はありません。私はこの難しさに気付いているのはフィルターだけです。

なぜこのようなことが起こり、予防できるのでしょうか?フィルタからリダイレクトするときにセッションを使用する必要がある場合は、JSP側でメッセージを消去する最善の方法は何ですか?

答えて

関連する問題