3.完全没有定义path=""的context时,即host容器中没有明确的path="",此时将隐式定义一个默认context,处理路径为appBase/ROOT目录。
4.定义了path但没有定义docBase属性时,docBase将根据path推断出它的路径。推断的规则如下:
context path context name 推断出的docBase路径 -------------------------------------------------- /foo /foo foo /foo/bar /foo/bar foo/bar Empty String Empty String ROOT
以下是几个定义示例:
# 虚拟主机中没有定义任何context,将以appBase下的ROOT作为默认处理路径 <Host appBase="webapps"> </Host> # 没有定义path=""的context,但定义了path非空的context,也将以ROOT作为默认处理路径 # 如果下面的Context容器中省略docBase属性,则推断出其docBase路径为appBase/xuexi <Host appBase="webapps"> <Context path="/xuexi" docBase="webappPATH" /> </Host> # 某个context定义了path="",该context将作为默认context # 但该默认context没有定义docBase,将推断出其docBase路径为appBase/ROOT <Host appBase="webapps"> <Context path="" docBase="webappPATH" /> </Host> # 某个context定义了path="",该context将作为默认context # 下面的默认context明确定义了docBase <Host appBase="webapps"> <Context path="" docBase="webappPATH" /> </Host>
4. tomcat配置文件server.xml详解
tomcat配置文件中配置的是各个组件的属性,全局配置文件为$CATALINA_HOME/conf/server.xml,主要的组件有以下几项:Server,Service,Connector,Engine,Host,Alias,Context,Valve等。配置完配置文件后需要重启tomcat,但在启动后一定要检查tomcat是否启动成功,因为即使出错,很多时候它都不会报错,可从监听端口判断。
配置方法见官方手册,在页面的左边有各个组件的链接。
tomcat的配置文件都是xml文件,以下是xml文件的常见规则:
1.文件第一行设置xml标识,表示该文件是xml格式的文件。例如<?xml version="1.0" encoding="UTF-8"?>。
2.xml文件的注释方法为<!-- XXX -->,这可以是单行注释,也可以多行注释,只要前后注释符号能对应上,中间的内容都是注释。
3.定义属性时有两种方式:单行定义和多行定义。例如:
<!-- 单行定义的方式 --> <NAME key=value /> <!-- 多行定义的方式 --> <NAME key=value> </NAME>
下面个组件的配置中有些地方使用了相对于$CATALINA_BASE的相对路径,它和$CATALINA_HOME小有区别,如果只有一个tomcat实例,则它们是等价的,都是tomcat的安装路径。如果有多个tomcat实例,则$CATALINA_HOME表示的是安装路径,而$CATALINA_BASE表示的是各实例所在根目录。关于tomcat多实例,见running.txt中对应的说明。









