`
lengyun3566
  • 浏览: 453739 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
D59180b9-02f1-3380-840c-ea34da46143c
《Spring Secur...
浏览量:384277
社区版块
存档分类
最新评论

Tomcat源码解读系列(一)——server.xml文件的配置

阅读更多

 

TomcatJEE开发人员最常用到的开发工具,在Java Web应用的调试开发和实际部署中,我们都可以看到Tomcat的影子。大多数时候,我们可以将Tomcat当做一个黑盒来看待,只需要将编写的Java Web工程进行部署即可,但是,在遇到一些比较复杂难解决的问题时,如果我们了解了Tomcat的内部实现原理将会处理起来更得心应手更快地定位问题。另外,通过学习Tomcat的源码还可以更加深入地了解JEE规范,学习常见的设计模式。本系列的文章,将会介绍Tomcat的核心功能是如何实现的,一方面作为自己学习的总结,另一方面也希望给学习Tomcat的朋友提供一点帮助材料。

         本文首先介绍Tomcat的基本配置,涉及的配置文件就是\conf\server.xml文件。Tomcat本身通过一系列的连接器和内部组件来分别实现网络请求的监听和处理。一个示例性的server.xml如下:

 

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <GlobalNamingResources>
    <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>

  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">       
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <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" resolveHosts="false"/>
      </Host>
    </Engine>
  </Service>
</Server>

 从上面的配置我们中,位于配置文件顶层的是ServerService元素,其中Server元素是整个配置文件的根元素,而Service元素则是配置服务器的核心元素。在Service元素内部,定义了一系列的连接器和内部容器类的组件。现在分别对其进行简单的介绍,后续的文章将会对其进行逐一分析。

         <Server>元素对应的是整个Servlet容器,是整个配置的顶层元素,由org.apache.catalina.Server接口来定义,默认的实现类是org.apache.catalina.core. StandardServer。该元素可配置的属性主要是portshutdown,分别指的是监听shutdown命令的端口和命令(这两个属性没玩过,后续试试)。在该元素中可以定义一个或多个<Service>元素,除此以外还可以定义一些全局的资源或监听器。

         <Service>元素由org.apache.catalina.Service接口定义,默认的实现类为org.apache.catalina.core. StandardService。在该元素中可以定义一个<Engine>元素、一个或多个<Connector>元素,这些<Connector>元素共享同一个<Engine>元素来进行请求的处理。

       <Engine>元素由org.apache.catalina.Engine元素来定义,默认的实现类是org.apache.catalina.core. StandardEngine<Engine>元素会用来处理<Service>中所有<Connector>接收到的请求,在<Engine>中可以定义多个<Host>元素作为虚拟主机。<Engine>Tomcat配置中第一个实现org.apache.catalina.Container的接口,因此可以在其中定义一系列的子元素如<Realm><Valve>

         < Connector >元素由org.apache.catalina.connector. Connector类来定义。< Connector>是接受客户端浏览器请求并向用户最终返回响应结果的组件。该元素位于< Service>元素中,可以定义多个,在我们的示例中配置了两个,分别接受AJP请求和HTTP请求,在配置中,需要为其制定服务的协议和端口号。

         <Host>元素由org.apache.catalina.Host接口来定义,默认实现为org.apache.catalina.core. StandardHost,该元素定义在<Engine>中,可以定义多个。每个<Host>元素定义了一个虚拟主机,它可以包含一个或多个Web应用(通过<Context>元素来进行定义)。因为<Host>也是容器类元素,所以可以在其中定义子元素如<Realm><Valve>

         <Context>元素由org.apache.catalina.Context接口来定义,默认实现类为org.apache.catalina.core. StandardContext。该元素也许是大家用的最多的元素,在其中定义的是Web应用。一个<Host>中可以定义多个<Context>元素,分别对应不同的Web应用。该元素的属性,大家经常会用到如pathreloadable等,可以在<Context>中定义子元素如<Realm><Valve>

         以上简单介绍了Tomcat元素的配置,使我们可能对这个庞大的产品有个整体的了解,后续会对每个部分进行详细的介绍,下部分会首先介绍Tomcat的启动流程。

13
14
分享到:
评论
7 楼 xjq2008 2014-03-06  
这是哪个版本的tomcat? 不同版本的有点不一样。。
6 楼 太阳部落 2013-06-25  
mark 一下tomcat 学习
5 楼 ifox 2013-03-12  
小菜来学习下哈~
4 楼 kiven 2012-11-26  
其实我不明白为什么那么多踩的,难道是不屑?我觉得应该多支持这种分析源代码的,然后进行讨论,大家都能提高。
3 楼 lengyun3566 2012-09-24  
a83313886 写道
支持一下,向楼主学习

互相学习,如有不足,请指正
2 楼 a83313886 2012-09-24  
支持一下,向楼主学习
1 楼 jinnianshilongnian 2012-08-25  
期待中

相关推荐

    Tomcat8.5服务器server.xml文件

    Tomcat8.5服务器server.xml文件,误删的可以下载,Tomcat服务器server.xml基本都是一样的,只是版本不一样

    为tomcat服务器配置https,tomcat需要设置的server.xml与web.xml配置

    在Tomcat的`conf`目录下,有两个主要的XML配置文件:`server.xml`和`web.xml`。`server.xml`是Tomcat的主要配置文件,而`web.xml`则定义了应用程序的行为。 在`server.xml`中,我们需要配置`&lt;Connector&gt;`元素来启用...

    Tomcat server.xml的配置

    Tomcat中server.xml的配置,因为很多刚入门的人可能会因为,错误修改或者删除而使Tomcat运行出现异常

    Tomcat 服务器server.xml的关键参数配置

    在Tomcat服务器中,可以通过修改`server.xml`文件中的`Connector`元素来配置服务器的监听端口。对于Tomcat 5.0.30版本来说,默认的HTTP监听端口是8080。如果希望将此端口更改为标准的HTTP端口80,可以在`Connector`...

    tomcat配置文件web.xml与server.xml解析

    server.xml 配置文件是 Tomcat 服务器的另一个重要配置文件,用于配置 Tomcat 服务器的服务器端口、主机名、 Context 路径等。 三、事件监听器和过滤器 事件监听器和过滤器是 Tomcat 服务器中的重要组件,用于监听...

    tomcatserver.xml配置详解.pdf

    根据提供的文件信息,可以看出文档内容是关于Tomcat服务器的配置文件server.xml的详细解读。server.xml是Tomcat中的核心配置文件,负责配置整个服务器的运行参数和连接器信息。下面将对Tomcat server.xml中可能包含...

    Tomcat的server.xml文件

    首先,`server.xml`文件位于Tomcat的`conf`目录下,它是Tomcat启动时加载的第一个配置文件。这个XML文件按照特定的结构定义了服务器的各个部分,包括`&lt;Server&gt;`, `&lt;Service&gt;`, `&lt;Connector&gt;`, 和 `&lt;Engine&gt;`等元素。...

    Tomcat配置文件server.xml说明.doc

    Tomcat配置文件server.xml说明.doc

    tomcat 配置文件 server.xml配置

    在探讨`server.xml`配置文件之前,让我们先明确一点:`server.xml`是Apache Tomcat服务器的核心配置文件,它控制着Tomcat的启动、运行和停止过程。对于任何希望深入理解和优化Tomcat性能的开发者来说,熟悉并掌握`...

    tomcat server.xml配置说明详解

    tomcat server.xml配置说

    详细解读server.xml文件

    在Apache Tomcat服务器中,`server.xml`是核心配置文件,它定义了服务器的整体结构、端口设置、数据源、连接器以及其他关键组件。本文将深入解析`server.xml`文件中的各个元素及其重要性,帮助你更好地理解和管理你...

    tomcat6 server.xml 详解

    server.xml是Tomcat的主要配置文件,它定义了服务器的全局属性,包括端口设置、连接器、Context(应用上下文)以及一系列的服务组件。以下是对主要配置元素的详细解析: 1. **Server**: Server元素是整个配置的...

    tomcat server.xml配置说明

    Tomcat Server.xml 文件是 Tomcat 服务器的核心配置文件,它定义了 Tomcat 服务器的整体结构和行为。在这个文件中,我们可以定义 Server、Service、Engine、Host 等元素,这些元素共同构成了 Tomcat 服务器的架构。 ...

    tomcat 7.0下的server.xml配置文件

    自己一不小心误删了本地tomcat下的配置文件中的server.xml文件,从而导致本地tomcat服务无法statup,于是把别人的同一版本的tomcat下的server.xml文件拷贝一份到原来的目录,然后就可以启动了。

    Tomcat5.5 的配置文件server.xml

    Tomcat5.5 的配置文件server.xml 真是的开发项目开发应用服务器配置

    tomcat配置讲解(server.xml)

    tomcat配置讲解(server.xml)

    tomcat服务器的Server.xml配置详解.docx

    Tomcat作为一款广泛应用的开源轻量级Web应用服务器,其核心配置文件Server.xml对于服务器的管理和优化至关重要。本文将深入解析Server.xml的结构和配置要素,帮助读者更好地理解和操作Tomcat服务器。 Server.xml...

    tomcat+redis负载均衡context.xml配置

    tomcat+redis负载均衡context.xml配置

    tomcat server.xml的典型配置

    而Server.xml文件是Tomcat的核心配置文件,它定义了服务器的各个组件及其配置,包括端口设置、连接器、Context等,对服务器的行为有着重大影响。在本文中,我们将深入探讨`URIEncoding="utf-8"`这一配置项,并围绕...

    Tomcat web.xml,server.xml中详细配置说明文档

    本文档将深入探讨Tomcat中的两个核心配置文件:`web.xml`和`server.xml`,并提供详细的配置说明和实例。 ### 一、Tomcat介绍 1.1 **Tomcat简介** Tomcat是开源的Servlet容器,它实现了Java Servlet和JavaServer ...

Global site tag (gtag.js) - Google Analytics