监听器概念
监听器就是监视时间触发的对象,当监听器监听某一特定事件,而事件触发时,就会执行对应的监听器里的方法。例如: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
}
}