1.Servlet监听器
servlet中定义的一种特殊类,用于监听web应用中的ServletContext,HttpSession,ServletRequest等域对象的创建与销毁事件,以及监听这些域对象的属性发生修改的事件。
二:对象建立销毁监听器
2.ServletContextListener
监听ServletContext对象被创建或者销毁的servlret监听器
实现:
创建一个实现ServletContextListener的类,并且实现其中的两个方法。
在web.xml中配置Lister:
<listener>
<listener-class>.........</>
</>
是最最常用的Listener,可以在当前WEB应用被加载时对当前web应用的相关资源进行初始化操作:连接数据池,创建spring ioc,读取当前web应用的初始化参数
API:
contextInitialized(ServletContextEvent sce)
contextDestoryed(ServletContextEvent sce)
ServletContextEvent:
里面只有getServletContext方法。
3.ServletRequestListener,HttpSessionListener
与上面的类似。
4.生命周期
request:是一个请求,当一个响应返回时,被销毁。当发一个请求时创建。
请求转发只是一个request。
重定向是两个request。
Session:
第一访问WEB应用一个JSP或Servlet时,且该JSP或者Servlet中还需要创建session对象,此时服务器会创建一个session对象。
销毁:过期,调用invalidate方法,当前web应用被卸载,关闭浏览器不意味着这session销毁。
application:
贯穿当前web应用的生命周期。
三:域对象中属性的变更的事件监听器
1.接口
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
2.在web.xml中配置
<listener>
<listener-class>......</>
</>
3.监听事件
添加属性
替换属性
移除属性
4.以ServletContextAttributeEvent API 说明
getName:获取属性的名字
getValue:获取属性的值
四:sessioin绑定的事件监听器
1.介绍
servlet规范中定义了两个特殊的监听器接口来帮助JavaBean对象了解自己在session域中的这些状态。
HttpSessionBindingListener,HttpSessionActivationListener,实现这两个接口的类不需要web.xml中注册。
2.HttpSessionBindingListener接口
可以感知被绑定到session中和从session中删除的事件
API:
valueBand(HttpSessionBingEvent)
valueUnBand(HttpSessionBingEvent)
3.HttpSessionActivationListener接口
监听实现了该接口和Serializable接口的java类对象随session钝化和活化事件
活化:从磁盘中读取session对象
钝化:向磁盘中写入session对象
不需要在web.xml中配置。
API:
sessionWillPassivate(HttpSessionEvent):在钝化前被调用
sessionDidActivate(HttpSessionEvent):在活化后被调用
HttpSessionEvent:
里面有getSession()方法。