一、在启动web项目时,容器(好比Tomcat)会读web.xml配置文件中的两个节点<listener> 和<context-param>web
二、接着容器会建立一个ServletContext(上下文),应用范围内即整个web项目都能使用这个上下文。数据库
三、接着容器会将读取到的<context-param>转化为键值对,并交给ServletContextxml
四、容器建立<listener></listener>中的类实例,即建立监听(备注:lisntener定义的类能够是自定义的类,可是必需要继承ServletContextListener)。继承
五、在监听的类中会有一个contextInitialized(ServerletContextEvent event)初始化方法,在这个方法中能够经过event.getServketContext().getInitParameter("contextConfigLocation")来获得context-param 设定的值。在这个类中还必须有一个contextDestroyed(ServletContextEvent event)销毁方法。用于变比用用前释放资源,好比关闭数据库链接。资源
六、获得这个context-param的值以后,你就能够作一些操做了。注意,这个时候你的web项目尚未彻底启动完成,这个动做会比全部的Servlet都要早。get
由上面的初始化过程可知容器对于web.xml的加载过程是context-param >> listener >> filter >>servletservlet
如何使用:it
在页面中io
${initParam.contextConfigLocation}event
Servlet中
String paramvalue = getServletContext().getInitParameter("contextConfigLocation");