Servlet监听器
1.Servlet监听器简介
监听器的作用是监听Web容器的有效期事件,因此他是由容器管理的。利用Listener接口监听在容器中的某个执行程序,并根据应用程序的需求做出适当的响应。
Listener接口和Event类
Listener接口 | Event类 |
ServletContextListener | ServletContextEvent类 |
ServletContextAttributeListener | ServletContextAttributreEvent |
HttpSessionListener | HttpSessionEvent |
HttpSessionActivationListener | |
HttpSessionAttributeListener | HttpSessionBindingEvent |
HttpSessionBindingListener | |
ServletRequestListener | ServletRequestEvent |
ServletRequestAttributeListener | ServletRequestAttributeEvent |
2.Servlet上下文监听
Servlet上下文监听可以监听ServletContext的创建、删除及属性的添加、删除、修改。该监听器需要用到两个接口:
(1)ServletContextListener接口
该接口位于javax.servlet包内,主要实现监听器ServletContext的创建和删除。ServletContextListener接口提供了两个方法,他们被成为“Web应用程序的生命周期方法”。
下面分别介绍这两个方法:
contextInitialized(ServletContextEvent event):通知正在收听的对象,应用程序已经加载及初始化。
contextDestroyed(ServletContextEvent event):通知正在收听的对象,应用程序已经被载出,即关闭。
(2)ServletAttributeListener接口
该接口位于javax.servlet包内,主要实现监听器ServletContext属性的增加、删除、修改。ServletAttributeListener接口提供了一下3个方法:
attributeAdd(ServletContextAttributeEvent event):当有对象加入application的范围时,通知正在收听的对象
attributeReplaced(ServletContextAttributeEvent event):当在application的范围有对象取代另一个对象时,通知正在收听的对象
attributeRemoved(ServletContextAttributeEvent event):当有对象从application的范围移除时,通知正在收听的对象。
范例:
创建监听器
package com.zgy.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent event) {
// TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
}
}
在web.xml中配置监听器
<listener>
<listener-class>com.zgy.listener.MyListener</listener-class>
</listener>