23 监听器Listener——请求监听器 ServletRequestListener

监听器概念

监听器就是监视时间触发的对象,当监听器监听某一特定事件,而事件触发时,就会执行对应的监听器里的方法。例如:request请求创建事件的监听器。

监听器的创建和配置

创建

创建一个类,实现对应的监听器接口。

配置

在web.xml中配置,如:

<listener>
      <listener-name>requestListener</listener-name>
      <listener-class>cn.xiaohei.listener.Listener</listener-class>
  </listener>

  

请求事件的监听器

主要有两个:ServletRequestListener和ServletRequestAttributeListener

ServletRequestListener:此接口只有两个方法,request创建时的方法和销毁时的方法。

ServletRequestAttributeListener:此接口为监听请求对象中的数据(Attribute)的三个方法:添加,删除,修改数据。

一般我们使用一个类来实现这多个监听接口作为监听器。

如下:

public class Listener implements ServletRequestListener,ServletRequestAttributeListener{
	//请求销毁事件
	@Override
	public void requestDestroyed(ServletRequestEvent sre) {
		System.out.println("我是request的监听器,我被销毁了");
		//获取servletcontext对象
		sre.getServletContext();
		//获取servletrequest对象
		sre.getServletRequest();
	}
	//请求创建事件
	@Override
	public void requestInitialized(ServletRequestEvent sre) {
		// TODO Auto-generated method stub
		System.out.println("我是request的监听器,我被创建了");
		
	}
	//请求中的数据添加事件
	@Override
	public void attributeAdded(ServletRequestAttributeEvent srae) {
		//获取此次添加的数据的Name值
		srae.getValue();
		//获取此次添加的数据的Value值
		srae.getName();
	}

	//请求中的删除添加事件
	@Override
	public void attributeRemoved(ServletRequestAttributeEvent srae) {
		// TODO Auto-generated method stub
		
	}

	//请求中的数据替换事件
	@Override
	public void attributeReplaced(ServletRequestAttributeEvent srae) {
		// TODO Auto-generated method stub
		
	}
}	

  

原文地址:https://www.cnblogs.com/Scorpicat/p/12396616.html