<context-param> :
代碼示例:
1 <context-param> 2 <param-name>contextConfigLocation</param-name> 3 <param-value>classpath:spring.xml,classpath:spring-mybatis.xml</param-value> 4 </context-param>
初始化過程:
- 在啟動Web項目時,容器(比如Tomcat)會讀web.xml配置文件中的兩個節點<listener>和<contex-param>。
- 接着容器會創建一個ServletContext(上下文),應用范圍內即整個WEB項目都能使用這個上下文。
- 接着容器會將讀取到<context-param>轉化為鍵值對,並交給ServletContext。
- 容器創建<listener></listener>中的類實例,即創建監聽(備注:listener定義的類可以是自定義的類但必須需要繼承ServletContextListener)。
- 在監聽的類中會有一個contextInitialized(ServletContextEvent event)初始化方法,在這個方法中可以通過event.getServletContext().getInitParameter("contextConfigLocation") 來得到context-param 設定的值。在這個類中還必須有一個contextDestroyed(ServletContextEvent event) 銷毀方法.用於關閉應用前釋放資源,比如說數據庫連接的關閉。
- 得到這個context-param的值之后,你就可以做一些操作了.注意,這個時候你的WEB項目還沒有完全啟動完成.這個動作會比所有的Servlet都要早。
由上面的初始化過程可知容器對於web.xml的加載過程是context-param >> listener >> fileter >> servlet