• Tomcat结构(转)


    资料:http://wenku.baidu.com/view/20720e78a26925c52cc5bfd6.html Tomcat系统架构

    http://wenku.baidu.com/view/9a9a8f0102020740be1e9bbc.html  Tomcat源码研究

    http://wenku.baidu.com/view/0792cd264b35eefdc8d33343.html  Tomcat工作原理深入详解

    Tomcat是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的组件是Catalina Servlet容器,其他的组件按照一定的格式要求配置在这个顶层容器中。
    Tomcat的各个组件是在<TOMCAT_HOME>confserver.xml文件中配置的,Tomcat服务器默认情况下对各种组件都有默认的实现,下面通过分析server.xml文件来理解Tomcat的各个组件是如何组织的。

    server.xml文件的基本组成结构如下。

    <Server>                       顶层类元素:一个配置文件中只能有一个<Server>元素,可包含多个Service。
        <Service>                  顶层类元素:本身不是容器,可包含一个Engine,多个Connector。
            <Connector/>        连接器类元素:代表通信接口。
               <Engine>           容器类元素:为特定的Service组件处理所有客户请求,可包含多个Host。
                  <Host>           容器类元素:为特定的虚拟主机处理所有客户请求,可包含多个Context。
                     <Context>   容器类元素:为特定的Web应用处理所有客户请求。
                     </Context>
                   </Host>
                  </Engine>
         </Service>
    </Server>
    以上的类XML的代码就是server.xml文件的基本组成结构,一个元素代表一个组件。下面分别介绍这些组件。
    1 . Server组件
    Server组件对应<Server>元素,它是配置文件的最顶层元素,代表一个服务器。一个配置文件中只能有一个<Server>元素。
    2 . Service组件
    Service组件是一些Connector组件的集合,它本身不是一个容器,所以在这里不能定义日志等组件。一个Service组件中只能有一个Engine组件,可以包含多个Connector组件。
    3 Connector组件
    Connector组件表示一个接口,通过这个接口接收客户的请求,然户发送给其他的容器组件,最后再把服务器的响应结果传递给客户。
    4 容器类元素
    上面介绍的3个组件本身并不能处理客户请求,也不能生成响应。在Tomcat中只有3个组件是可以处理客户请求并生成响应的,这3个组件分别是Engine、Host和Context组件。这3个组件分别代表了不同的服务范围,通过嵌套关系可以知道3个组件的范围有如下的关系:Engine>Host>Context。
        Engine组件下可以包含多个Host组件,它为特定的Service组件处理所有客户请求。
        一个Host组件代表一个虚拟主机,一个虚拟主机中可以包含多个Web应用(Context组件)。
        Context组件代表一个Web应用。
    Tomcat的各个组件关系,可以用下图描述。
     




    一个Java Web application在Tomcat中与一个Context元素对应,也就是说一个Context元素定义了一个Java Web application,它们是一一对应的关系。
    在一个Java Web应用中可以包含如下内容:
        Servlet
        JSP页面
        Java类
        静态资源(HTML文档、图片等)
        描述Web应用的描述文件
    客户每次提出请求时指定要访问的资源,如果客户没有指定具体资源,Tomcat使用默认的资源响应客户,显示文件夹中的资源列表或者提示错误。

    计划、执行、每天高效的活着学着
  • 相关阅读:
    5.9
    5.8
    5.4
    04--深入探讨C++中的引用
    01--Qt扫盲篇
    00--Qt Creator 你必须要掌握的快捷操作
    02--读书笔记之:C++ Primer (第4版)及习题
    01--[转]C++强大背后
    01--数据结构——动态链表(C++)
    04-手把手教你把Vim改装成一个IDE编程环境(图文)
  • 原文地址:https://www.cnblogs.com/huxiaoyun90/p/3259458.html
Copyright © 2020-2023  润新知