※ ChatGPTを利用し、要約された質問です(原文:セッションタイムアウト時にエラー画面を表示したい)
セッションタイムアウト時にエラー画面を表示する方法
このQ&Aのポイント
セッションタイムアウト時にエラー画面を表示する方法について質問があります。
セッション作成時にHttpServletRequestとHttpServletResponseをHttpSession.setAttributeで設定し、セッション削除時にそれらをHttpSession.getAttributeで取得し、エラー画面にフォワードする方法を試しています。
しかし、フォワードの部分でNullPointerExceptionが発生してしまいます。対処方法について教えてください。
はじめまして。Java初心者です。
宜しくお願します。
具体的には、
1.セッション作成時(sessionCreated)に、
HttpServletrequest,HttpServletresponse
をHttpsession setAttributeでセットしてあげる。
2.セッション削除時(sessionDestroyed)に、
1.でセットしたrequest,response
をHttpsession getAttributeで取得する。
2-1 エラー画面へforwardする。
2.のソースはいかのように行っていますが、forwardのところで
nullpointer.exceptionでうまくいきません。
public void sessionDestroyed(HttpSessionEvent event){
HttpSession session = event.getSession();
/* request,responseオブジェクト取得*/
HttpServletRequest request = (HttpServletRequest)session.getAttribute("request");
HttpServletResponse response = (HttpServletResponse)session.getAttribute("response");
try {
// エラー画面表示
request.getRequestDispatcher("/err.jsp").forward(request,response);
} catch (ServletException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
System.out.println(e.getStackTrace());
}
}
ご存知の方がいらっしゃいましたらご教授願います。
また、方法が基本的におかしいというアドバイスでも構いません
ので宜しくお願します。
OS:windows2000
tomcat:5.0
eclipse:3.0
お礼
勉強不足で申し訳ありません。 レスポンスを返そうとしている間(処理中)に セッションタイムアウトが発生した場合は どうなるんでしょうか? リクエスト、レスポンスはその時もnullですか?