目次へ

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>タグで設定する必要があります。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ