ServletContextListener是对ServeltContext对象行为的监听,servlet container启动时、关闭时,都会被ServletContextListener侦听到,这是容器系统内置的代码逻辑,从外部看不到的。
当servlet container启动时,serveltContextListener侦听到,调用contextInitialized方法,在此方法中调用内置函数 event.getServletContext()得到ServletContext;
ServletContext是上下文对象,container层级的,所有的应用程序共享它,在这里初始化一些条件、参数供程序共用;
而servlet container关闭时,serveltContextListener调用contextDestroyed;
步骤是这样的:
servlet container解析web.xml - 得到Listener的设置 - 生成ServletContextListener对象进内存运行 - 创建ServletContext、ServletContextEvent对象 - ServletContextListener侦听到事件,调用contextInitialized方法,在此实现要实现的需求 - 实现的需求供应用共享使用。
contextInitialized方法可以做很多事情,比如从数据库读取配置信息,放置你想所有程序共享的内容。