JavaWeb之Listener监听器

概念

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 对象


以上为本人的一些学习笔记,如有出错欢迎指正,陆续更新!!!

你可能感兴趣的:(JavaWeb之Listener监听器)