java web学习笔记1-tomcat conf文件解析笔记之server.xml

经过一年的工作学习,不断的熟悉了javaweb方面的开发,现在才想起整理起一年来学习的点点滴滴。

首先在工作中,我使用的居多的web应用服务器有tomcat、weblogic以及webSphere,今天主要总结对使用最多的中间件Tomcat部署的配置文件server.xml中各个常用标签的使用方法以及详细功能。

server.xml结构

<Server>
    <Listener />
    <GlobaNamingResources>
    </GlobaNamingResources>
    <Service>
      <Connector />
      <Engine>
          <Logger />
          <Realm />
          <host>
             <Logger />
             <Context />
          </host>
      </Engine>
    </Service>
</Server>

1.<Server>标签

1.1属性"port"指定的端口用于监听tomcat的关闭请求

1.2属性"shutdown"用于指定向此端口发送的命令字符串。

<Server port="8015" shutdown="SHUTDOWN">
</Server>
2<Service>标签

2.1属性"name"用于指定service的名称

<Service name="Catalina">

3<Connector>标签

3.1属性port用于指定服务器端需要创建的端口号,用于监听来自客户端的访问请求,80为默认端口,可以不输入端口号进行访问,如http://localhost/path

3.2属性maxThread用于指定该线程池可以容纳的最大线程数,主要用于tomcat的性能优化

3.3属性minSpareThreads指定Tomcat应该始终打开的最小不活跃线程数

3.4属性maxSpareThreads于上反义

3.5属性enableLookups如果为true则可以通过调用request.getRemoteHost()方法进行DNS查询获取客户端的实际主机名称,否则则不进行DNS查询,则返回IP地址

3.6属性redirectPort用于指定正在处理的http请求时收到的一个SSL传输请求后重定向的端口号

3.7属性acceptCount指定当所有可以使用的处理请求的线程资源都正在被使用时,可以放到处理等待队列中的请求个数,如果超过这个数值将不给予处理

3.8属性debug用于设置日志等级,0表示不打印日志

3.9属性connectionTimeout用于设置等待超时时间以毫秒计算

3.10属性disableUploadTimeout设置禁用上传超时,当碰到大数据上传时如果经常超时报错可以使用

此属性

3.11属性protocol一般默认使用AJP/1.3协议

3.12 属性URIEncoding编码类型,一般对于处理URL提交的数据和表单中get方式提交的数据出现乱码的时候,可以尝试修改此处的编码类型

一般情况下,如果需要多个端口一般默认复制之前的端口并修改Port就再次重启tomcat即可

<Connector port="80" maxThreads="50" minSpareThreads="25"  maxSpareThread="75" enableLookups="false" redirectPort="8443"  acceptCount="100" debug="0" connectionTimeout="20000"  disableUploadTimeout="true"  URIEncoding="UTF-8"/>
<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" /> 


4.<Engine>标签,用于指定service中的请求处理机,接收和处理来自Connector的请求

4.1属性defaultHost用于指定缺省的处理请求的主机名,它至少与其中的一个Host元素的Name属性一致

<Engine name="Catalina" defaultHost="localhost">
5.<Host>标签

5.1属性name指定主机名。

5.2属性appBase用于指定应用程序基本目录。

5.3属性unpackWARs如果为true,则tomcat会自动将WAR文件解压,否则不接呀,直接从WAR包中运行应用程序。

5.4属性autoDeploy默认为true,表示如果有行的WEB应用放入appBase并且Tomcat在运行的情况下,自动载入应用。

5.5属性xmlValidation表示XML校验

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
6.<Context>标签

6.1docBase表示应用程序的路径或是WAR包的存放路径

6.2path表示web访问url项目前缀,以后url访问为http://localhost:8080/path

6.3reloadable如果为true则tomcat会自动检测应用程序的/WEB-INF/lib以及/WEB-INF/classes目录的变化情况,自动装载新的应用程序,在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发布阶段将reloadable设为false。这一点很重要,因为以前在CSDN看到一篇因为生产环境没有设置为false的惨痛教训,借鉴大佬链接:一次由Tomcat重新加载引发的血案

<Context path="/appWeb" docBase="appWeb的绝对或相对路径"  reloadable="true"/>
7.<Realm>标签,用于表示存放用户名,密码以及role的数据库

7.1属性className指定使用的类名,此类必须实现org.apache.catalina.Realm接口

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
8.<Logger>表示日志,调试和错误信息。

8.1属性className指定Logger使用的类名,此类必须实现org.apache.catalina.Logger接口

8.2属性prefix指定log文件的前缀。

8.3属性suffix指定log文件的后缀。

8.4属性timestamp如果为true,则Log文件名中间要加入时间,例如localhost_log.2017-09-01.txt

<Logger className="org.apache.catalina.logger.FileLogger"  
               prefix="catalina_log." suffix=".txt"  
               timestamp="true"/> 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值