`
holdbelief
  • 浏览: 697134 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat的体系结构

阅读更多

Tomcat的体系结构

Tomcat服务器是由一系列可配置的组件构成的,其中核心组件是Catalina Servlet容器,它是所有其他Tomcat组件的顶层容器。Tomcat各组件之间的层次关系如图1-20所示。

 


图片 
图1-20  Tomcat组件之间的层次结构

 


我们下面简单介绍一下各组件在Tomcat服务器中的作用。

(1)Server

Server表示整个的Catalina Servlet容器。Tomcat提供了Server接口的一个默认实现,这通常不需要用户自己去实现。在Server容器中,可以包含一个或多个Service组件。

(2)Service

Service是存活在Server内部的中间组件,它将一个或多个连接器(Connector)组件绑定到一个单独的引擎(Engine)上。在Server中,可以包含一个或多个Service组件。Service也很少由用户定制,Tomcat提供了Service接口的默认实现,而这种实现既简单又能满足应用。

(3)Connector

连接器(Connector)处理与客户端的通信,它负责接收客户请求,以及向客户返回响应结果。在Tomcat中,有多个连接器可以使用。

(4)Engine

在Tomcat中,每个Service只能包含一个Servlet引擎(Engine)。引擎表示一个特定的Service的请求处理流水线。作为一个Service可以有多个连接器,引擎从连接器接收和处理所有的请求,将响应返回给适合的连接器,通过连接器传输给用户。用户允许通过实现Engine接口提供自定义的引擎,但通常不需要这么做。

(5)Host

Host表示一个虚拟主机,一个引擎可以包含多个Host。用户通常不需要创建自定义的Host,因为Tomcat给出的Host接口的实现(类StandardHost)提供了重要的附加功能。

(6)Context

一个Context表示了一个Web应用程序,运行在特定的虚拟主机中。什么是Web应用程序呢?在Sun公司发布的Java Servlet规范中,对Web应用程序做出了如下的定义:“一个Web应用程序是由一组Servlet、HTML页面、类,以及其他的资源组成的运行在Web服务器上的完整的应用程序。它可以在多个供应商提供的实现了Servlet规范的Web容器中运行”。一个Host可以包含多个Context(代表Web应用程序),每一个Context都有一个唯一的路径。用户通常不需要创建自定义的Context,因为Tomcat给出的Context接口的实现(类StandardContext)提供了重要的附加功能。
下面我们通过图1-21来帮助读者更好地理解Tomcat服务器中各组件的工作流程。

要了解这些组件的其他信息,可以看下面的页面:

 %CATALINA_HOME%\webapps\docs\architecture\overview.html
我们可以在conf目录下的server.xml文件中对这些组件进行配置,读者打开server.xml文件,就可以看到元素名和元素之间的嵌套关系,与Tomcat服务器的组件是一一对应的,server.xml文件的根元素就是<Server>。关于server.xml配置文件中的各元素及其属性的含义,请参看附录C。

 

 
(点击查看大图)图1-21  Tomcat各组件的工作流程

 

在Tomcat中,提供了各组件的接口及其实现类,如果你要替换Tomcat中的某个组件,只需要根据该组件的接口或类的说明,重写该组件,并进行配置即可。图1-22是Tomcat各组件的类图。

 
(点击查看大图)图1-22  Tomcat的组件类图

 

在类图的接口名或类名下面是该接口或该类所在的包,这些接口和类都在%CATALINA_HOME%\lib\catalina.jar文件中。对Tomcat服务器的实现感兴趣的读者,可以从http://tomcat.apache.org/download-60.cgi上下载Tomcat的源代码。

由于Apache软件基金会并不是一个商业性的组织,所以文档更新的速度有时候跟不上版本更新的速度。在Tomcat 6.0.16中,就可以发现文档与其源码实现有不一致的地方。从Tomcat 5.5开始,Tomcat的实现中就已经去掉了org.apache.catalina.Connector接口及其相关的实现类,而直接以org.apache.catalina.connector.Connector类来代替。我们在看Tomcat的文档时,最好结合其API文档一起看,这样才能保证了解的信息是完整和准确的。

分享到:
评论

相关推荐

    【Tomcat 体系结构介绍】

    NULL 博文链接:https://gaojingsong.iteye.com/blog/2389970

    图解 Tomcat 体系结构

    Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器。 Apache Tomcat 是一款非常著名的开源 Servlet/...让我们先来浏览一下 Tomcat 体系结构中的六个主要概念: Server Service Engine Host Connector Context

    Tomcat体系结构与插件配置教程图解

    主要介绍了Tomcat体系结构与插件配置教程图解,包括发布程序的过程和tomcat服务器体系结构,需要的朋友可以参考下

    tomcat+jsp内幕详解

    tomcat目录结构、tomcat启动分析、tomcat体系结构、jsp运行原理

    Apache_Tomcat_IIS_JK.整合doc

    1.1. Windows下Apache与Tomcat的... Tomcat体系结构与JK插件的工作 操作: windows下tomcat与IIS的集成 windows下tomcat与Apache的集成 Linux下tomcat与Apache的集成(Vmware下) 内容详细,含英文原文和中文翻译。

    Tomcate服务器培训文档

    1.Tomcat产品介绍 2.Tomcat安装 3.Tomcat配置、部署、管理 4.Tomcat体系结构 5.Tomcat优化 6.Tomcat安全保护 7.Tomcat负载均衡和集群

    tomcat深入剖析.pdf

    《深入剖析Tomcat》以Tomcat 4和Tomcat 5两个版本为基础,从建立一个最简单的连接开始,深入介绍Tomcat的体系结构。从连接器到最终的JMX管理,循序渐进,层层深入。每一章有配有相关代码,既是对理论内容的具体展现...

    主程序子过程体系结构风格

    讲述了体系结构风格中数据流风格当中的一种—主程序与子过程

    tomcat6、7、8、9, maven3.5

    Apache Tomcat 3.3是Apache Tomcat 3.x体系结构的最新延续; 它比3.2.4更先进,这是“老”的生产质量释放。 版本3.2.4是“旧的”生产质量版本,现在仅在维护模式。 版本3.1.1是旧版本。 所有的Apache Tomcat 3.X版本...

    毕业设计.zipjava本论文主要研究JSP技术以及JSP技术实现基于Web的三层体系结构的应用,实现了动态网页对数据库的查询、

    java本论文主要研究JSP技术以及JSP技术实现基于Web的三层体系结构的应用,实现了动态网页对数据库的查询、统计、更新等功能。目的是应用计算机网络、数据库、Internet技术、以Tomcat为服务器,JSP、JAVA作为主要开发...

    KWIC体系结构代码实现

    KWIC问题的具体代码实现,包括管道过滤器、基于事件调用、主程序子过程等共五种体系结构风格

    基于J2EE架构的生产管理系统设计

    系统基于B/S 多层Web 体系结构,在J2EE 平台上利用开源架构JSF、Spring、 Hibernate 等技术进行开发。按照软件工程方法,对造纸生产过程进行需求分析。使 用UML 建模工具,通过类图、用例图等对系统进行总体设计。...

    java笔试题算法-secure-tomcat-datasourcefactory:标准TomcatDataSourceFactory的替代品

    密码体系结构中的标准类来执行解密。 因此,安装在 JVM 中的所有算法都可以使用。 默认情况下,所有 JVM 供应商都必须支持 . 有关任何进一步的算法支持,请查阅供应商的文档。 该库也可以从命令行运行,以生成在 ...

    MicroServiceExpression:MicroService体系结构示例

    MicroService体系结构示例:解决简单算术表达式运算((a+b) * (a+b)) 它能做什么? 该微服务与其他2个微服务(MicroServiceAdd和MicroServiceMultiply)进行交互以解决表达式。 想法是查看2个微服务如何相互交互...

    一个基于J2EE的B/S结构的简单学生管理系统

    一个基于J2EE的B/S结构的简单学生管理系统的实现,想学习的可以进来看一下。

    《J2EE体系结构及程序设计》实验教学大纲2018

    本实验大纲包含以下实验:MyEclipse+Tomcat开发环境的安装与配置、HTML静态网页的设计、Servlet应用技术、JSP的基本语法练习、MySQL数据库与表的创建、用Struts2实现MVC模式、Hibernate框架配置及开发、HQL语句的...

    struts2 例子

    其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为...

    使用多层体系结构构建REST风格的Web服务和动态Web应用程序

    简介场景组件设置环境创建数据库在Eclipse中配置Tomcat服务器在Eclipse中创建Web项目ncarUsers从文章下载导入文件实现域对象实现数据访问层实现业务逻辑层实现表示层客户机应用程序在Eclipse中运行应用程序内部原理...

Global site tag (gtag.js) - Google Analytics