tomcat各个组件功能

Server提供一个接口,由1至多个Service组成,让其它程序可以访问到这个Service集合,同时维护各个Service的生命周期,包括如何初始化,如何结束服务,如何找到别人请求的服务。

Service又由1-n个Connector及单个Container组成,只是在Container和Connector外多包了一层,提供各种服务

Connector组件是可选择替换的,负责接收浏览器发过来的TCP连接请求,创建Request/Response,分配线程,将创建的对象传递给Container来处理请求

Container是容器的父接口,由四个容器组成,分别是Engine,Host,Context,Wrapper。其中Engine包含Host,Host包含Context,Content包含Wrapper,一个Servlet class对应一个Wrapper

Engine容器是作为顶级Container组件来设计的,由Host组成,其作用相当于一个Container的门面。有了Engine,请求的处理过程变为:浏览器发出请求,Connector接受请求,将请求交由Container(这里是Engine)处理,Container(Engine来担当)查找请求对应的Host并将请求传递给它,Host拿到请求后查找相应的应用上下文环境,准备servlet环境并调用service方法。

Host容器是Engine的子容器,一个Host在Engine中代表一个虚拟主机,这个主机可以运行多个应用,他负责安装和展开这些应用,并且标识这个应用,以便能够区分他们。它的子容器通常是Context,他除了关联子容器外,还保存一个主机应有的信息。Host不是必需的,但是要运行war程序,就必须要使用Host,因为在war中必有web.xml文件,这个文件解析就需要Host,如果有多个Host就需要定义一个top容器Engine,而Engine没有父容器,一个Engine就代表一个完整的Servlet引擎

Context代表Servlet的Context,它具备Servlet运行的基本环境,理论上只要有Context就能运行Servlet,简单的Tomcat可以没有Engine和Host。其最重要的功能就是管理Servlet实例,Servlet实例在Context中是以Wrapper出现的。

Wrapper代表一个Servlet,它负责管理Servlet,包括装载,初始化,执行以及资源回收。它是最底层的容器。

服务器接口 org.apache.catalina.Server

生命周期接口 org.apache.catalina.Lifecycle

监听并接收请求 org.apache.catalina.connector.Connector

处理请求 org.apache.catalina.Container

Web应用 org.apache.catalina.Context(继承了Container)

虚拟主机 org.apache.catalina.Host(继承了Container)

服务接口 org.apache.catalina.Service

Engine org.apache.catalina.Engine

对于Tomcat服务器来说,除了Server代表它自己以外,其它组件都是功能组件,都有其职责范围。Service为最顶层的组件,可以添加Connector和Container组件。Engine是Container的最顶层组件,可以添加Host组件,但不能添加父组件。Host组件的父组件是Engine,Host下面包含有Context组件。

浏览器发出请求,Connector接受请求,将请求交由Container处理,Container查找请求对应的Host并将请求传递给它,Host拿到请求后查找相应的应用上下文环境,准备servlet环境并调用service方法。

组件的生命周期由包含它的父组件控制,所以调用组件的start方法也就是调用其包含的子组件的start方法

时间: 2024-12-28 16:05:02

tomcat各个组件功能的相关文章

Tomcat基本组件、其功能和处理请求的过程

一.Tomcat是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的组件是Catalina Servlet容器,其他的组件按照一定的格式要求配置在这个顶层容器中 Tomcat的各个组件是在<TOMCAT_HOME>\conf\server.xml文件中配置的,如下: XML配置文件结构 <Server>                     顶层类元素:一个配置文件中只能有一个<Server>元素,可包含多个Service. <Service> 

Windows 7或者 server 小技巧 添加 IIS和FTP 组件功能

Windows 7或者 server 小技巧  添加 IIS和FTP 组件功能 在万能的 控制面版 ,添加删除 组件中 . 在IE中输入  http://127.0.0.1 或者 http://localhost 打开如下图片,即表示安装成功. 在控制面版,管理工具中可以打开 IIS管理器.

Mina的各个组件功能

Mina的各个组件功能: (1.)  IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立. (Mina底层使用JAVA NIO, 因此它是典型的使用Reactor模式架构的,采用事件驱动编程 , Mina运行用户自定义线程模型,可以是单线程.多线程.线程池等 , 跟JAVA Socket不一样, Mina是非阻塞的Socket,它内部已经保证了对各个连接(session)的业务和数据的隔离,采用轮询机制为各个session分配CPU资源,

antd源码分析之——标签页(tabs 2.Tabs关键组件功能实现)

由于ant Tabs组件结构较复杂,共分三部分叙述,本文为目录中第二部分(高亮) 目录 一.组件结构 antd代码结构 rc-ant代码结构 1.组件树状结构 2.Context使用说明 3.rc-tabs中只在example.test中使用的组件说明 二.Tabs关键组件功能实现 1.Tabs(antd) 2.RcTabs 3.Sentinel哨兵 4.InkTabBarNode 三.Tabs的滚动效果 ScrollableTabBarNode 二.Tabs关键组件功能实现 1.Tabs(an

tomcat架构各个组件功能

tomcat组件与功能说明 Server:顶层组件,代表一个servlet容器的实体,server组件会在一个指定端口接收命令,比如shutdown 命令会停止服务. Service:service组件包括一到多个connector组件,这些connector组件将收到的请求发往同一个engine组件 Executor:提供一个线程池,可以给tomcat中的组件使用.比如connector组件可以配置使用executor Connector:与客户端直接交互的通讯组件.接收请求,返回响应给客户端

原生js实现vue组件功能

在如今VUE盛行的情况下,我们一直在惊叹于VUE的组件的功能,却不知道,原生js早就已经支持了这个功能. 最近在公开课学到的,js还有很多很多需要探索学习. 下面是一个简单的例子 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>创建标签</title> </head> <body> <x-product>测试

Tomcat的优点/功能及安装

概述 Tomcat运行时占用的系统资源小,扩展性好,支持负载均衡与邮件服务等开发应用系统常用的功能:Tomcat是一个开源的web服务器 ;Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选.&& 对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求.实际上Tomcat部分是Apache服务器的扩展,所以当你运行tomcat时,它实际上作为一个Apache独立

2019.9.22 tomcat访问控制管理功能使用

注意:测试功能,生产环境不要用 Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用. 在默认情况下是处于禁止状态的.如果需要开启这个功能,就需要配置管理用户,即配置tomcat-user.xml文件. 列如我们点右上角的  Server  Status   会弹出这个提示 [[email protected] ~]# vim /usr/local/tomcat8/conf/tomcat-users.xml          //修改文件 <role ro

STL 六大组件, 功能与运用概要

1. 容器(constainers) 现成的模版形式的数据结构, 如 vector, deque, set, map... 主要用来存放数据; 2. 算法(algorithms) 我倾向于叫做泛型算法, 常见的有 sort, search, copy, erase... 主要用函数模板实现; 3. 迭代器(iterators) 虽然 C++ 是 C 的超集, 但是一个指针满天飞的 programer 从某种意义上来说不是一个好的 C++er. 迭代器主要扮演容器预算法间的媒介, 所谓的 "泛型指