tomcat web.xml server.xml 学习

本文深入解析Tomcat服务器的web.xml和server.xml配置文件,涵盖错误页面定制、MIME类型映射、会话管理、监听器配置及连接器参数调整等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web.xml  参数

    <!--
        这个属性可以根据404,500等等http错误代码,tomcat会自动跳转到某个界面
       -->
<!--
<error-page>
    <error-code>404</error-code>
    <location>/index.jsp</location>
</error-page>
<error-page>
    <exception-type>java.lang.NullPointerException</exception-type>
    <location>/index.jsp</location>
</error-page>
-->
    <!--

                是所有的路径拦截就是返回这个界面,而不是原来写的json数据
                  RESPONSE 只是 一个index.jsp界面 不是json数据

    <servlet>
        <servlet-name>dispatcher</servlet-name>
             <jsp-file>/index.jsp</jsp-file>
        <load-on-startup>1</load-on-startup>
    </servlet>-->

    <!--
        http://localhost:9080 默认进入到inde 界面
    -->
<!--<welcome-file-list>-->
    <!--<welcome-file>inde.jsp</welcome-file>-->
<!--</welcome-file-list>-->
<!--
    设定从拓展名到MIME类型的映射关系
    注意 :</mime-type> 里面有很多的选择
-->
    <!--<mime-mapping>-->
        <!--<extension>foo</extension>-->
        <!--<mime-type>application/alto-costmap+json</mime-type>-->
    <!--</mime-mapping>-->

<!--闲置的购物车在电子商务网站上会消耗掉很多内存资源,浪费RAM资源
    当用户访问已创建回话范围的网页时,Tomcat会记录开始时间,
    如果用户不在访问网页,Tomcat会丢弃该回话并回收内存空间 ,Tomcat孕育你控制在丢弃回话之前,他可闲置的时间长短
    如果设置值太低,会引起用户的反感,如果设置值太高,会浪费内存空间
-->
<!--<session-config>-->
    <!--<session-timeout>30</session-timeout>   &lt;!&ndash; 30分钟&ndash;&gt;-->
<!--</session-config>-->

<!--
    Listener
    实现Web应用程序的Java开发者可能会使用listener类。
    这些类是当发生整个Web应用程序或应用程序中特定的HTTP回话时,系统会以某种事件(如创建或删除)通知的程序
-->

 

server.xml 参数

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- Note:  A "Server" is not itself a "Container", so you may not
     define subcomponents such as "Valves" at this level.
     Documentation at /docs/config/server.html
 -->
<Server port="9005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <!-- A "Service" is a collection of one or more "Connectors" that share
       a single "Container" Note:  A "Service" is not itself a "Container",
       so you may not define subcomponents such as "Valves" at this level.
       Documentation at /docs/config/service.html
   -->
  <Service name="Catalina">

    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->


    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    -->
    <Connector port="9080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8"

               />  <!-- URIEncoding 默认是ISO8859-1 -->
               
             <!-- address="192.168.4.2"-->  <!-- 默认 0.0.0.0  表示连接器将监听所有网络设备的连接 -->
             <!-- acceptCount="0" -->   <!-- 默认10,设置服务器端口允许在等待队列中的请求们的数量 -->
            
             <!--
             Connector:
             port 监听请求的端口号
             maxHttpHeaderSize 所接受Http请求或响应标题的最大长度   默认8KB
             maxPostSize     POST请求参数的最大值 默认2Mb
             maxSavePostSize   POST请求参数的最大值,在认证过程中将由容器保存
             maxThreads     Connector并发运行的请求处理线程 默认200
             redirectPort  如果Connector针对的是普通的HTTP(非 SSL(安全套接字层(运输层))),并为匹配的安全约束要求的SSL传输接受了一个请求,则tomcat将给指定的端口号执行重定向
             secure  默认false true说明使用SSL连接器,request.isSecure()返回true
             sslProtocol  如果是Https,可以指定SSL或者TLS
             useBodyEncodingForURI  默认false 当使用不同于url编码的编码方式,true决定将请求主体使用字符编码方式    
             -->
        
            
               <!--我新增加的 -->
    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
    <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
         This connector uses the NIO implementation that requires the JSSE
         style configuration. When using the APR/native implementation, the
         OpenSSL style configuration is required as described in the APR/native
         documentation -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />


    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host).
         Documentation at /docs/config/engine.html -->

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->

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

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

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

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            
            
            <!---
             Engine: Connector 接受请求,然后他交给Engine处理,并将结果返回Connector的软件
                Host元素代表一个主机(或虚拟主机)计算机,其请求在给定的Engine中进行处理
                name  host名 在 Engine 中的Host必须唯一
                appBase 这一host的web应用程序目录的路径
                autoDeploy  true表示tomcat运行时,在appBase目录中追加web应用程序的解包目录或WAR文件,则tomcat将立即实现对其部署。(部署的意思就是 tomcat里面有程序的文件?)
                
            -->
      </Host>
    </Engine>
  </Service>
</Server>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值