其它属性略 --> <Connector
className=\ port=\
minProcessors=\acceptCount=\
enableLookups=\ redirectPort=\ debug=\
connectionTimeout=\ useURIValidationHack=\ disableUploadTimeout=\
<!-- Engine用来处理Connector收到的Http请求 它将匹配请求和自己的虚拟主机,并把请求转交给对应的Host来处理
默认虚拟主机是localhost -->
<Engine name=\debug=\
<!-- 日志类,目前没有看到,略去先 --> <Logger
className=\ <!-- Realm,目前没有看到,略去先 --> <Realm
className=\>
<!-- 虚拟主机localhost
appBase : 该虚拟主机的根目录是webapps/ 它将匹配请求和自己的Context的路径,并把请求转交给对应的Context来处理 -->
<Host name=\appBase=\autoDeploy=\
<!-- 日志类,目前没有看到,略去先 --> <Logger
className=\
<!-- Context,对应于一个Web App
path : 该Context的路径名是\,故该Context是该Host的默认Context
docBase : 该Context的根目录是webapps/mycontext/ -->
<Context path=\debug=\
<!-- 另外一个Context,路径名是/wsota --> <Context path=\debug=\
</Host>
</Engine> </Service> </Server>
<!----------------------------------------------------------------------------------------------->
4 - Context的部署配置文件web.xml的说明
一个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