基于tomcat配置文件server.xml详解

2019-10-18 16:18:39刘景俊

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中对应的说明。