在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。
当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由 ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent 事件的两个方法。
- contextInitialized(ServletContextEvent sce) :当Servlet 容器启动Web
应用时调用该方法。在调用完该方法之后,容器再对Filter 初始化,并且对那些在Web 应用启动时就需要被初始化的Servlet进行初始化。(可以在这里执行读取数据库操作) - contextDestroyed(ServletContextEvent sce) :当Servlet 容器终止Web应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。(可以在这里执行存储数据到数据库操作)