<server>元素

它代表的是整个容器,是tomcat实例的顶层元素,由org.apache.catalina.server接口来定义,它包含一个<service>元素,并且他不能作为任何元素的子元素。

<service>元素

该元素由org.apache.catalina.service接口的定义,它包含一个<Engine>元素,以及一个或多个<Connector>,这些connector元素共享用同一个Engine元素。

第一个<service>处理所有直接由tomcat服务器接收的web客户请求

第二个<service>处理所有由Apache服务器转发过来的web客户请求

ClassName指定实现org.apache.catalina.service接口的类,默认为org.apahce.catalina.core.StandardService

Name定义service的名字

<Engine>元素

每个service元素只能有一个Engine元素,元素处理在同一个<service>中所有的<Connector>元素接收到的客户请求由org.aoache.catalina.Engine接口定义

<Engine name=”Catalina” defaultHost=”localhost” debug=”0”>

ClassName指定实现Engine接口的类,默认值为StandardEngine

defaultHost指定处理客户端默认的主机名,在<Engine>中的<Host>子元素中必须定义这一主机

name定义的是Engine的名字,在<Engine>可以包含如下元素<Logger>,<Realm>,<Value>,<Host>

<Host>元素

它由Host接口定义的,一个Engine元素可以包括多个<host>元素,每个<host>的元素定义了一个虚拟主机,他包含一个或多个Web应用。

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">

className指定实现Host接口的类,默认值为StandardHost

appBase指定虚拟主机的目录,可以指定绝对目录也可以指定相对于<CATALINA_HOME>的相对目录,如果没有此项,默认为<CATALINA_HOME>/webapps

autoDeploy如果此项设为true,表示tomcat服务处于运行状态时,能够监测appBase下的文件如果有新的web应用加入进来,会自动运行发布这个web应用

unpackWARs如果此项设置为true,表示把web应用的war文件先展开为开放目录结构后再运行,如果设为false将直接运行war文件。

Alias指定主机别名,可以指定多个别名

deployOnStartup如果此项设为ture,表示tomcat服务器启动时会自动发布目录下所有的web应用如果web应用中的server.xml没有相应的<Context>元素,将采用toncat默认的context

name定义虚拟主机的名字,在<Host>元素中可以包含如下子元素<Logger>,<Realm>,<value>,<Context>

<Context>元素

它由Context接口定义,是使用最频繁的元素,每个<Context>元素代表了运行在虚拟主机上的单个web应用,一个<Host>可以包含多个<Context>元素,每个web应用都有唯一的一个相对应的Context代表web应用自身,servlet容器为第一个web应用创建一个ServletContext对象

<Context path="/sample" docBase="sample" debug="0" reloadbale="true">

Path指定访问web应用的的URL入口

Reloadable如果这个属性设为true,Tomcat服务器在运行状态下会监控WEB-INF/classes和WEB-INF/lib目录下的CLASS文件的改变,如果监视到有class文件被更新,服务器自动重新加载web应用

Cookies指定是否通过cookies来支持session,默认值为true

UseNaming指定是否支持JNDI,默认值为true,在<Context>元素中可以包含如下元素<Logger>,<Reaim>,<Resource>,<ResourceParams>

<Connector>元素由Connector接口定义,<Connector>元素代表与客户程序实际交互的条件,他负责接收客户请求,向客户返回响应结果。

className指定实现Connector接口的类

enableLookups如果设定为true,表示支持域名解析,可以把IP地址解析成主机名,WEB应用中调用request.getRemoteHost方法返回客户机主机名,默认值为ture

redirectPort指定转发端口,如果当前端口只支持non-SSL请求,在需要安全通信的场景,将客户端的请求转发至SSL的redirectPort端口

HttpConnector元素的属性

className实现Connector的类

port设定Tcp/IP端口,默认值为8080