一、在啓動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");