十二、监听器
http协议是无状态的,在JavaWeb容器的工作过程中,也需要感知一些事情的发生。Tomcat有一个基础接口LifeCycle
,它是生命周期接口,几乎所有的组件都需要实现该接口,从而在生命周期的不同阶段去实现一些功能。容器中的一些对象与项目的功能实现是紧密相关的,比如对象 application
,session
,request
对象,它们也都有生命周期,那么我们的项目在执行过程中应该在执行中应该能够感知到它们的生命周期过程。因此提供了各种监听器,监听以上三个对象当生命周期的过程发生变化时,要能够触发相应的程序执行。
1、ServletContextLisetener接口
,
该接口的实现类就是一个监听器,它监听ServletContext 对象
的生命周期。该监听器能够工作的前提是需要在web.xml
配置文件中进行配置
<listener>
<listener-class>ApplicationListener.ServletContextListener</listener-class>
</listener>
启动容器,可以看到监听器已经在工作,可以监听应用上下文对象初始化的过程。容器会在第一时刻就创建应用上下文对象并初始化。
应用上下文对象监听器的主要作用,如果一个JavaWeb应用程序是基于spring框架来工作的,就要求在项目启动时,把spring的容器加载到内存中并完成初始化,以保证后续的功能能够正常的执行。这个时刻就是应用上下文对象被初始化的时刻。所以可以通过以上的监听器来完成当应用上下文对象被初始化时去加载和创建spring容器。这样当项目被启动后,spring容器就处于就绪状态。
public class ServletContextListener implements javax.servlet.ServletContextListener {
@Override