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原创文章,未经本站允许不得转载。