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 } }