一、概念
servlet监听器的主要目的是给web应用增加事件处理机制,以便更好的监视和控制web应用的状态变化,从而在后台调用相应处理程序。
二、监听器的类型
1.根据监听对象的类型和范围,分为3类
Request事件监听器
HttpSession事件监听器
ServletContext事件监听器
2.八个监听接口和六个监听事件
三、ServletContext监听
1.Application对象
application是ServletContext的实例,由JSP容器默认创建。Servlet中调用getServletContext()方法得到ServletContext的实例。
全局对象即Application范围的对象,初始化阶段的变量值在web.xml中,经由<context-param>元素所设定的变量,它的范围也是Application的范围
2.ServletContextListener接口
用于监听Web应用启动和销毁的事件,监听器类需要实现ServletContextListener接口。
该接口的主要方法;
void contextInitialized(ServletContextEvent se):通知正在接受的对象,应用程序已经被加载及初始化
void contextDestroyed(ServletContextEvent se):通知正在接受的对象,应用程序已经被销毁
ServletContextEvent的主要方法:ServletContext getServletContext():取得当前的ServletContext对象
3.ServletContextAttributeListener
用于监听Web应用属性改变的事件,包括增加、删除、修改属性。监听器类需要实现ServletContextAttributeListener接口
ServletContextAttributeListener接口的主要方法:
void attributeAdded(ServletContextAttributeEvent se):若有对象加入Application的范围,通知正在收听的对象。
void attributeRemoved(ServletContextAttributeEvent se):若有对象从Application范围移除,通知正在收听的对象。
void attributeReplaced(ServletContextAttributeEvent se):若在Application的范围中,有对象取代另一个对象时,通知正在收听的对象
ServletContextAttributeEvent中的主要方法:
getName():返回属性名称
getValue()返回属性的值
四、HttpSession 会话监听
1.HttpSessionListener
主要方法:
sessionCreated(HttpSessionEvent se):session创建
sessionDestroyed(HttpSessionEvent se):session销毁
2.HttpSessionActivationListener:
监听器监听Http会话的情况
3.HttpSessionAttributeListener:
监听HttpSession中属性的操作
该接口的主要方法:
void attributeAdded(HttpSessionBindingEvent se):监听Http会话中的属性添加
void attr