在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。(此设计为设计模式-Observer模式的应用)
当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由 ServletContextListener来处理。在ServletContextListener 接口中定义了处理ServletContextEvent事件的两个方法。
contextInitialized(ServletContextEvent sce):当Servlet容器启动Web应用时调用该方法。在调用完该方法之后,容器再对Filter初始化,并且对那些在Web应用启动时就需要被初始化的Servlet进行初始化。
contextDestroyed(ServletContextEvent sce):当Servlet容器终止Web应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet和Filter过滤器。
我们可以利用这个特性初始化一些信息,如将Spirng Framwork的DI容器引入Servlet容器就是最好的示例(ContextLoaderListener)。当然我们也可以利用Servlet类init()方法,并在配置文件中让它启动应用的时候就执行,并且在关闭的时候执行destroy()方法.但是继承此接口应该更符合容器的应用。