1. 程式人生 > >Web.xml配置詳解之context-param,listener

Web.xml配置詳解之context-param,listener



  •  格式定義:
[html]  view plain copy
  1. <context-param>  
  2. <param-name>contextConfigLocation</param-name>  
  3. <param-value>contextConfigLocationValue
    ></param-value>  
  4. </context-param>  

作用:該元素用來宣告應用範圍(整個WEB專案)內的上下文初始化引數。

param-name 設定上下文的引數名稱。必須是唯一名稱

param-value 設定的引數名稱的值

  • 初始化過程:
  1. 在啟動Web專案時,容器(比如Tomcat)會讀web.xml配置檔案中的兩個節點<listener>和<contex-param>。
  2. 接著容器會建立一個ServletContext(上下文),應用範圍內即整個WEB專案都能使用這個上下文。
  3. 接著容器會將讀取到<context-param>轉化為鍵值對,並交給ServletContext。
  4. 容器建立<listener></listener>中的類例項,即建立監聽(備註:listener定義的類可以是自定義的類但必須需要繼承ServletContextListener)。
  5. 在監聽的類中會有一個contextInitialized(ServletContextEvent event)初始化方法,在這個方法中可以通過event.getServletContext().getInitParameter("contextConfigLocation") 來得到context-param 設定的值。在這個類中還必須有一個contextDestroyed(ServletContextEvent event) 銷燬方法.用於關閉應用前釋放資源,比如說資料庫連線的關閉。
  6. 得到這個context-param的值之後,你就可以做一些操作了.注意,這個時候你的WEB專案還沒有完全啟動完成.這個動作會比所有的Servlet都要早。

由上面的初始化過程可知容器對於web.xml的載入過程是context-param >> listener  >> fileter  >> servlet



<listener>

   <listener-class>

                            org.springframework.web.context.ContextLoaderListener

                   </listener-class>

 </listener>

在自己所定義的Servlet類別中使用Spring的容器功能, ContextLoaderListener預設會讀取context-param中指定的配置檔案
  •  格式定義:
[html]  view plain copy
  1. <context-param>  
  2. <param-name>contextConfigLocation</param-name>  
  3. <param-value>contextConfigLocationValue></param-value>  
  4. </context-param>  

作用:該元素用來宣告應用範圍(整個WEB專案)內的上下文初始化引數。

param-name 設定上下文的引數名稱。必須是唯一名稱

param-value 設定的引數名稱的值

  • 初始化過程:
  1. 在啟動Web專案時,容器(比如Tomcat)會讀web.xml配置檔案中的兩個節點<listener>和<contex-param>。
  2. 接著容器會建立一個ServletContext(上下文),應用範圍內即整個WEB專案都能使用這個上下文。
  3. 接著容器會將讀取到<context-param>轉化為鍵值對,並交給ServletContext。
  4. 容器建立<listener></listener>中的類例項,即建立監聽(備註:listener定義的類可以是自定義的類但必須需要繼承ServletContextListener)。
  5. 在監聽的類中會有一個contextInitialized(ServletContextEvent event)初始化方法,在這個方法中可以通過event.getServletContext().getInitParameter("contextConfigLocation") 來得到context-param 設定的值。在這個類中還必須有一個contextDestroyed(ServletContextEvent event) 銷燬方法.用於關閉應用前釋放資源,比如說資料庫連線的關閉。
  6. 得到這個context-param的值之後,你就可以做一些操作了.注意,這個時候你的WEB專案還沒有完全啟動完成.這個動作會比所有的Servlet都要早。

由上面的初始化過程可知容器對於web.xml的載入過程是context-param >> listener  >> fileter  >> servlet



<listener>

   <listener-class>

                            org.springframework.web.context.ContextLoaderListener

                   </listener-class>

 </listener>

在自己所定義的Servlet類別中使用Spring的容器功能, ContextLoaderListener預設會讀取context-param中指定的配置檔案