概念
Servlet 监听器用于监听 web 应用程序中的 ServletContext,HttpSession 和 ServletRequest 等域对象的创建和销毁事件,以及监听这些域对象中的属性发生修改的事件
分类
1、监听域对象自身的创建和销毁的事件监听器
2、监听域对象中的属性的增加和删除的事件监听器
3、监听绑定到 HttpSession 域中的某个对象的状态的事件监听器
常用监听器
1、ServletContextListener
2、ServletRequestListener
3、HttpSessionListener
使用
1、实现各自的监听方法
l两个方法,分别是对象被创建(contextInitialized),还有对象被销毁(contextDestroyed)
还有实现 ServletRequestListener 的方法
和实现 HttpSessionListener 的方法
2、在 web.xml 里配置
其中,ServletContextListener 是最常用的 listener,可以在当前 web 应用被加载时对当前 web 应用的相关资源进行初始化操作,例如:创建数据库连接池,创建 spring 的 IOC 容器,读取当前 web 应用的初始化参数等。
生命周期
request
是一个请求,当一个响应返回时,即被销毁,当发送一个请求时被创建。
注意,请求转发的过程是一个 request 对象,而重定向是两个请求
session
当第一次访问 web 应用的一个 JSP 或 Servlet 时,且该 JSP 或 Servlet 中还需要创建 session 对象,此时服务器会创建一个 session 对象
session 销毁有几种情况:
1、session 过期
2、直接调用 session 的 invalidate 方法
3、当前 web 应用被卸载(session 可以被持久化)
注意,关闭浏览器并不意味着 session 被销毁,还可以通过 sessionid 找到服务器中的 session 对象,当访问地址带上之前做创建的 sessionid,依然不会创建新的 session 对象
JSESSIONID=XXXXXXXX
http://localhost:8080/test.jsp;jsessionid=XXXXXXXX
application
贯穿于当前的 WEB 应用的生命周期,当前 WEB 应用被加载时创建 application 对象,当前 WEB 应用被卸载时销毁 application 对象
以上为本人的一些学习笔记,如有出错欢迎指正,陆续更新!!!
网友评论