解析Server.xml及其应用

来源:互联网 发布:pp助手数据备份失败 编辑:程序博客网 时间:2024/06/16 15:39

<Server port="8005" shutdown="SHUTDOWN">

  <Service name="Catalina">
 
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
      URIEncoding="GBK"/>
   
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
           
   
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
  
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="Catalina" defaultHost="localhost">

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>
</Server>


一般情况下,是这样的请求及处理过程:
Browser提出请求,交给connector,由connector将请求交给engine处理,engine交给相应的host虚拟主机处理,结果反馈给
connector,connector将结果返回到Browser。

Servler、service是顶层元素,connector负责沟通容器与客户端:接受请求,反馈结果。
engine处理所有的请求,engine中的host、context都是处理请求的容器组件,一个host可以包含多个context;

关系如下:
一个Server代表一个Tomcat容器,可以包含一个或多个service元素,每个service包含一个engine处理来自同一个service中
的connector请求。engine中包含host和context对主机进行处理、和对特殊的web应用请求,一个host可以包含多个context;。

 

关于客户端与容器的沟通全部在connector中进行配置。
如:
解决get的中文问题:URIEncoding=“GBK”
修改监听端口:port
...


Context是最长用的配置,是有org.apache.catalina.Context定义的。代表主机上的一个web应用。
path指定的访问url
docBase工程根目录
reloadable是否监听变化
useNaming 是否使用jndi默认是true
cookies是否使用cookies


<Context path=“/webapp” docBase="webapp" reloadable="true">

<Resource/>
<ResourceParams>
 <parameter>
  <name></name>
  <value></value>
 </parameter>
</ResourceParams>

</Context>


配置DataSource清单如下:(server.xml)
<Context path="/bookstore0.0" docBase="bookstore0.0" reloadable="true">
   <!--
  name:JNDI name;
  auth(orizaiton):Application/Container
  type="javax.sql.DataSource"  javax.sql.DataSource is a kind of JNDI;
   -->
   <Resource name="jdbc/bookstore_db"
       auth="Container"
       type="javax.sql.DataSource"/>
   <ResourceParams name="jdbc/bookstore_db">
    <parameter>
     <name>factory</name>
     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
     <name>maxActive</name>
     <value>100</value>
    </parameter>
    <parameter>
     <name>maxIdle</name>
     <value>30</value>
    </parameter>
    <parameter>
     <name>maxWait</name>
     <value>10000</value>
    </parameter>
    <parameter>
     <name>driverClassName</name>
     <value>com.mysql.jdbc.Driver</value>
    </parameter>
    <parameter>
     <name>username</name>
     <value>root</value>
    </parameter>
    <parameter>
     <name>password</name>
     <value>1988323</value>
    </parameter>
    <parameter>
     <name>url</name>
     <value>jdbc:mysql://localhost:3306/bookstore_db?autoReconnect=true</value>
    </parameter>
   </ResourceParams>
   </Context>

 

对web.xml的配置访问数据源:
res-ref-name
res-type
res-auth
description

 

原创粉丝点击