Tomcat——Tomcat启动流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat——Tomcat启动流程相关的知识,希望对你有一定的参考价值。

参考技术A 步骤:

由于所有的组件均存在初始化、启动、停止等生命周期方法,拥有生命周期管理的特
性, 所以Tomcat在设计的时候, 基于生命周期管理抽象成了一个接口 Lifecycle ,而组
件 Server、Service、Container、Executor、Connector 组件 , 都实现了一个生命周期
的接口,从而具有了以下生命周期中的核心方法:

上面我们提到的Server、Service、Engine、Host、Context都是接口, 下图中罗列了这
些接口的默认实现类。当前对于 Endpoint组件来说,在Tomcat中没有对应的Endpoint
接口, 但是有一个抽象类 AbstractEndpoint ,其下有三个实现类: NioEndpoint、
Nio2Endpoint、AprEndpoint , 这三个实现类,分别对应于前面讲解链接器 Coyote
时, 提到的链接器支持的三种IO模型:NIO、NIO2、APR,Tomcat8.5版本中,默认采
用的是 NioEndpoint。

ProtocolHandler:Coyote协议接口,通过封装Endpoint和Processor , 实现针对具体
协议的处理功能。Tomcat按照协议和IO提供了6个实现类。

源码入口

从启动流程图中以及源码中,我们可以看出Tomcat的启动过程非常标准化, 统一按照生
命周期管理接口Lifecycle的定义进行启动。首先调用init() 方法进行组件的逐级初始化操
作,然后再调用start()方法进行启动。

每一级的组件除了完成自身的处理外,还要负责调用子组件响应的生命周期管理方法,
组件与组件之间是松耦合的,因为我们可以很容易的通过配置文件进行修改和替换。

参考:
https://www.cnblogs.com/wansw/p/10232613.html

tomcat学习笔记Tomcat源码剖析

Tomcat源码剖析

tomcat启动流程

在这里插入图片描述

tomcat请求处理流程

tomcat请求处理流程:当一个servlet请求到来的时候,tomcat是通过怎么样的机制定位到servlet并且执行的。
例:url:localhost:8080/demo/test
connector-》engine-》host(localhost)-》context(demo)-》wrapper(test)
这里组合起来有一个mapper组件,mapper(映射)组件完成url和host、context、wrapper等容器的映射。
在这里插入图片描述

mapper组件体系结构

在这里插入图片描述

以上是关于Tomcat——Tomcat启动流程的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat——Tomcat启动流程

02-Tomcat&Http

Tomcat启动流程简析

XAMPP tomcat 服务未以错误启动,因为“Tomcat 启动/停止并出现错误,返回代码:1”

tomcat学习笔记Tomcat源码剖析

tomcat学习笔记Tomcat源码剖析