サーブレット 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>タグで設定する必要があります。