セッションタイムアウト時のページ表示
セッションタイムアウト時、その旨のページを表示すること考えてい
ます。表示方法をご存知の方、もしくは別のアプローチをご存知の方、
御教授下さい。
(1)セッションタイムアウトの検知はHttpSessionBindingListenerを使用。
(2)セッションタイムアウトしたときに表示するページは、用意している
sessiontimeout.htmlにRequestDispatcherを用い、ディスパッチ。
(3)ディスパッチ処理は、セッションタイムアウト時に呼ばれる
valueUnbound(...)メソッドに記述。
<問題点>
RequestDispatcherを用いてディスパッチするときのメソッドは引数にHttpServletRequest,HttpServletResponseが必要です。
これをvalueUnbound(...)メソッド内で行う場合、
上記2つの引数をどのように取得すればよいのでしょうか?
--------------------------------------------------------------------
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
HttpSession s = req.getSession(false);
if(s == null) {
s = req.getSession(true);
s.setAttribute("listener", this);
}
}
//中略
//HttpSessionBindingListener
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("valueUnBound");
//セッションタイムアウト時、sessiontimeout.htmlを表示
ServletConfig config = this.getServletConfig();
ServletContext context = config.getServletContext();
RequestDispatcher rd =
context.getRequestDispatcher("/sessiontimeout.html");
rd.forward(req,res);
//HttpServletReqest,HttpServletResponseをどう取得する?---
}