Java中ServletRequestListener监听器详解

ServletRequestListener是用户响应监听器,用于对Request请求进行监听(创建、销毁)。

方法

public void requestInitialized(ServletRequestEvent sre);//request初始化,对实现客户端的请求进行监听
public void requestDestroyed(ServletRequestEvent sre);//对销毁客户端进行监听,即当执行request.removeAttribute("XXX")时调用
//ServletRequestEvent事件:
public ServletRequest getServletRequest();//取得一个ServletRequest对象
public ServletContext getServletContext();//取得一个ServletContext(application)对象

例子

//简单使用servletRequestListener来实现web浏览量的变化
package webTest;
import java.util.Date;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class ListenerTest3 implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent arg0) {
        System.out.println("requestDestroyed" + "," + new Date());
        System.out.println("当前访问次数:" + arg0.getServletContext().getAttribute("count"));
    }

    @Override
    public void requestInitialized(ServletRequestEvent arg0) {
        System.out.println("requestInitialized" + "," + new Date());
        Object count = arg0.getServletContext().getAttribute("count");
        Integer cInteger = 0;
        if (count != null) {
            cInteger = Integer.valueOf(count.toString());
        }
        System.out.println("历史访问次数::" + count);
        cInteger++;
        arg0.getServletContext().setAttribute("count", cInteger);
    }
}

在servletRequest对象被建立的时候调用初始化方法,从内存中读取servletContext对象的count属性,而后输出历史访问量。 同时在此基础上加一重新设置servletContext对象的count属性的内容,当servletRequest对象被销毁的时候调用销毁时的方法打印出当前浏览量,这样就简单的实现了web浏览的量的累加计数。 

public class MyServletRequestListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println(sre.getServletRequest() + "销毁了!!");
        
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println(sre.getServletRequest() + "创建了!!");
    }
}
//web.xml文件中注册监听器  
<!--注册针对ServletRequest对象进行监听的监听器-->
<listener>
      <description>ServletRequestListener监听器</description>
      <listener-class>me.gacl.web.listener.MyServletRequestListener</listener-class>
</listener>

MyServletRequestListener类实现了ServletRequestListener接口,因此可以对ServletRequest对象的创建和销毁这两个动作进行监听。 

用户每一次访问都会创建request对象,当访问结束后,request对象就会销毁。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。