找回密码
 注册
搜索
热搜: java php web
查看: 651|回复: 0

Tomcat之Context的部署配置文件web.xml

[复制链接]
发表于 2009-1-26 04:40:33 | 显示全部楼层 |阅读模式
一个Context对应于一个Web App,每个Web App是由一个或者多个servlet组成的
当一个Web App被初始化的时候,它将用自己的ClassLoader对象载入“部署配置文件web.xml”中定义的每个servlet类
它首先载入在$CATALINA_HOME/conf/web.xml中部署的servlet类
然后载入在自己的Web App根目录下的WEB-INF/web.xml中部署的servlet类
web.xml文件有两部分:servlet类定义和servlet映射定义
每个被载入的servlet类都有一个名字,且被填入该Context的映射表(mapping table)中,和某种URL PATTERN对应
当该Context获得请求时,将查询mapping table,找到被请求的servlet,并执行以获得请求回应
分析一下所有的Context共享的web.xml文件,在其中定义的servlet被所有的Web App载入

<!----------------------------------------------------------------------------------------------->
<web-app>  
<!-- 概述:      
该文件是所有的WEB APP共用的部署配置文件,      
每当一个WEB APP被DEPLOY,该文件都将先被处理,然后才是WEB APP自己的/WEB-INF/web.xml      
-->  
<!--  +-------------------------+  -->  
<!--  |    servlet类定义部分    |  -->  
<!--  +-------------------------+  -->   
<!-- DefaultServlet      
当用户的HTTP请求无法匹配任何一个servlet的时候,该servlet被执行 URL PATTERN MAPPING : /      
-->   
<servlet>        
<servlet-name>default</servlet-name>        
<servlet-class>         
org.apache.catalina.servlets.DefaultServlet        
</servlet-class>        
<init-param>            
<param-name>debug</param-name>            
<param-value>0</param-value>        
</init-param>        
<init-param>           
<param-name>listings</param-name>            
<param-value>true</param-value>        
</init-param>        
<load-on-startup>1</load-on-startup>   
</servlet>  
<!-- InvokerServlet  处理一个WEB APP中的匿名servlet 当一个servlet被编写并编译放入/WEB-INF/classes/中,却没有在/WEB-INF/web.xml中定义的时候该servlet被调用,把匿名servlet映射成/servlet/ClassName的形式  URL PATTERN MAPPING : /servlet/*      
-->   
<servlet>        
<servlet-name>invoker</servlet-name>        
<servlet-class>         
org.apache.catalina.servlets.InvokerServlet        
</servlet-class>        
<init-param>            
<param-name>debug</param-name>            
<param-value>0</param-value>        
</init-param>        
<load-on-startup>2</load-on-startup>   
</servlet>  
<!-- JspServlet  当请求的是一个JSP页面的时候(*.jsp)该servlet被调用  它是一个JSP编译器,将请求的JSP页面编译成为servlet再执行  URL PATTERN MAPPING : *.jsp      
-->   
<servlet>        
<servlet-name>jsp</servlet-name>        
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>        
<init-param>            
<param-name>logVerbosityLevel</param-name>            
<param-value>WARNING</param-value>        
</init-param>        
<load-on-startup>3</load-on-startup>   
</servlet>  
<!--  +---------------------------+  -->  
<!--  |    servlet映射定义部分    |  -->  
<!--  +---------------------------+  -->        
<servlet-mapping>        
<servlet-name>default</servlet-name>        
<url-pattern>/</url-pattern>   
</servlet-mapping>   
<servlet-mapping>        
<servlet-name>invoker</servlet-name>      
<url-pattern>/servlet/*</url-pattern>   
</servlet-mapping>   
<servlet-mapping>        
<servlet-name>jsp</servlet-name>        

<url-pattern>*.jsp</url-pattern>   
</servlet-mapping>  
<!--  +------------------------+  -->  
<!--  |    其它部分,略去先    |  -->  
<!--  +------------------------+  -->    ... ... ... ...</web-app>
<!----------------------------------------------------------------------------------------------->
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2024-9-20 15:42

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表