サーブレット 7章 リスナー
7.4. サーブレットへのリクエストを検出する
J2EE1.4(Servlet2.4)より追加されました「ServletRequestListener」を使用します。 定義されているメソッドは二つで、それぞれ「サーブレットへのリクエストが発生した時」、「クライアントへの応答が完了した時」に呼ばれるメソッドです。
//リクエストが発生されたとき void requestInitialized(javax.servlet.ServletRequestEvent sre) //応答が完了したとき void requestDestroyed(javax.servlet.ServletRequestEvent sre)
javax.servlet.ServletRequestEventにはServletContextを返すメソッドとServletRequestを返すメソッドが定義されています。
//イベントが発生したServletContextを返す。 ServletContext getServletContext() //発生したリクエストを返す。 ServletRequest getServletRequest()以下は、ServletRequestLitenerの例です。クライアントのIPアドレスを表示します。
import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class MyServletRequestListner implements ServletRequestListener {
public void requestInitialized(ServletRequestEvent event) {
ServletRequest request = event.getServletRequest();
ServletContext context = event.getServletContext();
context.log("Request from " + request.getRemoteAddr());
}
public void requestDestroyed(ServletRequestEvent event) {
}
}
動作させるには、<listener>タグで設定する必要があります。

