web.xml組件加載順序

在配置項(xiàng)目組件的過程中,了解Tomcat家在組建順序很有必要。理由某些框架如Quartz的集群功能需要數(shù)據(jù)庫的支持,數(shù)據(jù)庫的加載肯定要在框架組件加載之前。
經(jīng)過查閱和調(diào)試發(fā)現(xiàn),web.xml組件加載順序依次為:context-param -> listener -> filter -> servlet (同類則按編寫順序執(zhí)行)。

web.xml常用組件解析

   
<display-name></display-name>
WEB應(yīng)用的名字 
  
<description></description> 
WEB應(yīng)用的描述    

<context-param></context-param> 
context-param元素聲明應(yīng)用范圍內(nèi)的初始化參數(shù)

 <!-- 指定spring配置文件位置 -->    
<context-param>    
  <param-name>contextConfigLocation</param-name>    
  <param-value>    
<!--加載多個(gè)spring配置文件 -->    
/WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml    
  </param-value>    
</context-param>    


<filter></filter> 
過濾器將一個(gè)名字與一個(gè)實(shí)現(xiàn)javax.servlet.Filter接口的類相關(guān)聯(lián)    

<filter-mapping></filter-mapping> 
一旦命名了一個(gè)過濾器,就要利用filter-mapping元素把它
與一個(gè)或多個(gè)servlet或JSP頁面相關(guān)聯(lián)

   
<listener></listener> 
事件監(jiān)聽程序在建立、修改和刪除會(huì)話或servlet環(huán)境時(shí)得到通知。
Listener元素指出事件監(jiān)聽程序類。    

如Log4j這個(gè)廣泛使用的監(jiān)聽

<!-- 定義SPRING監(jiān)聽器,加載spring -->   
<listener>    
  <listenerclass>
    org.springframework.web.context.ContextLoaderListener
  </listener-class>    
</listener>  


<servlet></servlet> 
在向servlet或JSP頁面制定初始化參數(shù)或定制URL時(shí),
必須首先命名servlet或JSP頁面。
Servlet元素就是用來完成此項(xiàng)任務(wù)的。
   
<servlet-mapping></servlet-mapping> 
服務(wù)器一般為servlet提供一個(gè)缺省的URL:http://host/webAppPrefix/servlet/ServletName。
但是,常常會(huì)更改這個(gè)URL,
以便servlet可以訪問初始化參數(shù)或更容易地處理相對(duì)URL。
在更改缺省URL時(shí),使用servlet-mapping元素    

<session-config></session-config> 
如果某個(gè)會(huì)話在一定時(shí)間內(nèi)未被訪問,
服務(wù)器可以拋棄它以節(jié)省內(nèi)存。  
可通過使用HttpSession的setMaxInactiveInterval方法明確設(shè)置單個(gè)會(huì)話對(duì)象的超時(shí)值,
或者可利用session-config元素制定缺省超時(shí)值    

<mime-mapping></mime-mapping>
如果Web應(yīng)用具有想到特殊的文件,
希望能保證給他們分配特定的MIME類型,
則mime-mapping元素提供這種保證  

 
<welcome-file-list></welcome-file-list> 
指示服務(wù)器在收到引用一個(gè)目錄名而不是文件名的URL時(shí),
使用哪個(gè)文件(其實(shí)就是歡迎界面或者說入口界面一般為index.*)   


<error-page></error-page>
在返回特定HTTP狀態(tài)代碼時(shí),或者特定類型的異常被拋出時(shí),
能夠制定將要顯示的頁面。    


<taglib></taglib> 
對(duì)標(biāo)記庫描述符文件(Tag Libraryu Descriptor file)指定別名。
此功能使你能夠更改TLD文件的位置,   
而不用編輯使用這些文件的JSP頁面。

   
<resource-env-ref></resource-env-ref>
聲明與資源相關(guān)的一個(gè)管理對(duì)象。 

  
<resource-ref></resource-ref> 
聲明一個(gè)資源工廠使用的外部資源。    


<security-constraint></security-constraint> 
制定應(yīng)該保護(hù)的URL。它與login-config元素聯(lián)合使用 

  
<login-config></login-config> 
指定服務(wù)器應(yīng)該怎樣給試圖訪問受保護(hù)頁面的用戶授權(quán)。
它與sercurity-constraint元素聯(lián)合使用。    


<security-role></security-role>
給出安全角色的一個(gè)列表,這些角色將出現(xiàn)在servlet元素內(nèi)的
security-role-ref元素的role-name子元素中。
分別地聲明角色可使高級(jí)IDE處理安全信息更為容易


<env-entry></env-entry>
聲明Web應(yīng)用的環(huán)境項(xiàng)


</web-app>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容