<Server>元素
它代表整个容器,是Tomcat实例的顶层元素。由org.apache.catalina.Server接口来定义。它包含一个<Service>元素。并且它不能做为任何元素的子元素。
- <Server port="8005" shutdown="SHUTDOWN">
- Server的实现类为org.apache.catalina.core.StandardServer,该类是利用org.apache.catalina.ServerFactory工厂创建的,里面采用了单例模式。
- Port指定Tomcat监听shutdown命令端口。终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令。该属性是必须的。
- shutdown指定终止Tomcat服务器时,发给Tomcat服务器的shutdown监听端口的字符串,该属性必须设置。
<Service>元素
该元素由org.apache.catalina.Service接口定义,它包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素
<Service name="Catalina"><Service name="Apache">
第一个<Service>处理所有直接由Tomcat服务器接收的web客户请求。
第二个<Service>处理所有由Apache服务器转发过来的Web客户请求。
Service接口类的实现元素为:org.apache.catalina.core.StandardService
name定义Service的名字
<Engine>元素
每个Service元素只能有一个Engine元素。元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。由org.apache.catalina.Engine接口定义,该接口的实现类为org.apache.catalina.core.StandardEngine。
<Engine name="Catalina" defaultHost="localhost">
- defaultHost指定处理客户请求的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机
- name定义Engine的名字
- 在<Engine>可以包含如下元素<Logger>、<Realm>、<Value>、<Host>
<Host>元素
它由Host接口定义。一个Engine元素可以包含多个<Host>元素。每个<Host>的元素定义了一个虚拟主机。它包含了一个或多个web应用。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
- Host接口的实现类为StandardHost。
- appBase指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录。如果没有此项,默认为<CATALINA_HOME>/webapps。
- autoDeploy如果此项为true,表示tomcat服务处于运行状态时,能够检测appBase下的文件,如果有新的web应用加入进来,会自动发布这个WEB应用。
- unpackWARs如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行。如果设置为false将直接运行WAR文件。
<Context元素>
它由Context接口定义。是使用最频繁的元素。每个<Context>元素代表了运行在虚拟主机上的单个web应用。一个<Host>可以包含多个<Context>元素。每个web应用有唯一的一个相对应的Context代表web应用自身。
<Context path="/sample" docBase="Sample" debug="0" reloadable="true">
- Context接口的实现类为StandardContext类。
- path指定访问Web应用的URL入口,注意/myweb,而不是myweb。
- reloadable如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录Class文件的改变。如果监视到class文件被更新,服务器会重新加载Web应用。
- cookies指定是否通过Cookies来支持Session,默认值为true。
- useNaming指定是否支持JNDI,默认值为true。
- 在<Context>元素中可以包含如下元素<Logger>、<Realm>、<Resource>、<ResourceParams>
<Connector>元素
由Connector接口定义。<Connector>元素代表与客户程序实际交互的组件,它负责接收客户请求,以及向客户返回响应结果。
<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75"
enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />
第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个AJP Connector,它通过8090端口接收其它服务器转发过来的请求。
Connector元素共用属性
1>className指定实现Connector接口的类
2>enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用
3>redirectPort指定转发端口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转
HttpConnector元素的属性
1>className实现Connector的类
2>port设定Tcp/IP端口,默认值为8080,如果把8080改成80,则只要输入http://localhost即可
因为TCP/IP的默认端口是80
3>address如果服务器有二个以上ip地址,此属性可以设定端口监听的ip地址.默认情况下,端口会监听服务
4>bufferSize设定由端口创建的输入流的缓存大小.默认值为2048byte
5>protocol设定Http协议,默认值为HTTP/1.1
6>maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数
7>acceptCount设定在监听端口队列的最大客户请求数量,默认值为10.如果队列已满,客户必须等待.
8>connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间
JkConnector的属性
1>className实现Connector的类
2>port设定AJP端口号
3>protocol必须设定为AJP/1.3