Tomcat运行原理

article/2025/9/14 0:38:33

Tomcat服务器本质

  1. Tomcat是运行在JVM中的一个进程。通过处理scoket通信 (Socket) 来运行。
  2. Web项目的本质,是一大堆的资源文件和方法。Web项目没有入口方法(main方法),意味着Web项目中的方法不会自动运行起来。
  3. Web项目部署进Tomcat的webapp中,那就是希望Tomcat去调用写好的方法去为客户端返回需要的资源和数据。
  4. Tomcat一定有一个main方法。Tomcat可以运行起来,并调用写好的方法。
  5. 对于Tomcat而言,它并不知道我们会有什么样的方法,这些都只是在项目被部署进webapp下后才确定的,由此分析,必然用到了Java的反射来实现类的动态加载、实例化、获取方法、调用方法。但是我们部署到Tomcat的中的Web项目必须是按照规定好的接口来进行编写,以便进行调用。

Tomcat体系架构

在这里插入图片描述

  1. Service组件
    Service主要用于关联一个引擎和与此引擎相关的连接器,每个连接器通过一个特定的端口和协议接收入站请求交将其转发至关联的引擎进行处理。各Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。
  2. Connector组件
    Tomcat应该考虑工作情形并为相应情形下的请求分别定义好需要的连接器才能正确接收来自于客户端的请求。一个引擎可以有一个或多个连接器,以适应多种请求方式。
  3. Engine组件
    Engine是Servlet处理器的一个实例,即servlet引擎
  4. Host组件
    位于Engine容器中,用于接收请求并进行相应处理的主机或虚拟主机
  5. Context组件
    Context在某些意义上类似于apache中的路径别名,一个Context定义用于标识tomcat实例中的一个Web应用程序

Tomcat 处理一个HTTP请求的过程

在这里插入图片描述

  1. 用户在浏览器中输入网址localhost:8080/test/index.jsp,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得;
  2. Connector把该请求交给它所在的Service的Engine(Container)来处理,并等待Engine的回应;
  3. Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host;
  4. Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理);
  5. path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL Pattern为*.jsp的Servlet,对应于JspServlet类;
  6. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost(),执行业务逻辑、数据存储等;
  7. Context把执行完之后的HttpServletResponse对象返回给Host;
  8. Host把HttpServletResponse对象返回给Engine;
  9. Engine把HttpServletResponse对象返回Connector;
  10. Connector把HttpServletResponse对象返回给客户Browser

参考(https://www.cnblogs.com/small-boy/p/8042860.html)


http://chatgpt.dhexx.cn/article/2Dw1cKtl.shtml

相关文章

tomcat原理简要分析,java

tomcat原理 tomcat位置 tomcat实际上是部署在服务器上的; tomcat作用 tomcat服务器是一个Servlet和JSP容器,它响应HTML页面的访问请求。 实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时&#…

谈谈TOMCAT原理和机制

从服务器说起,一台装了操作系统(linux、unix、win等等)的物理机或者虚拟机不能称之为真正的服务器,因为服务器是能对外界提供服务的计算机,要能成为服务器必须借助其他软件的支持比如:tocmat、apache、IIS、nginx、jet…

Tomcat工作原理

本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4。Tomcat 的基本设计思路和架构是具有一定连续性的。 Tomcat 总体结构 Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了 Tom…

tomcat启动原理

前言 一直在用Tomcat,但是对其启动原理一直没去研究,这里准备去面试,可能会问道。于是总结了下启动原理。完全凭感觉去揣测,没工夫看源码。因此错误之处希望大家批评指正,大家共同进步。我想这也是在忙碌中进步最快的…

深入剖析Tomcat原理

深入剖析Tomcat原理 一、 Tomcat源码部署和运行(intellij IDEA) 1、下载tomcat源码,以tomcat-8为例 链接: https://tomcat.apache.org/ 2、源码部署到IDEA中 ①创建新的空工程 ②解压源码压缩包到该工程的目录(目录名最好是非…

Springboot内置Tomcat原理

SpringBoot的启动主要是通过实例化SpringApplication来启动的,启动过程主要做了以下几件事情:配置属性、获取监听器,发布应用开始启动事件初、始化输入参数、配置环境,输出banner、创建上下文、预处理上下文、刷新上下文、再刷新上…

【springboot】自动整合Tomcat原理

通过前面我们会SpringBoot的自动配置机制、Starter机制、启动过程的底层分析,我们拿一个实际的业务案例来串讲一下,那就是SpringBoot和Tomcat的整合。 我们知道,只要我们的项目添加的starter为:spring-boot-starter-web&#xff…

总结:SpringBoot内嵌Tomcat原理

一、介绍 一般我们启动web服务都需要单独的去安装tomcat,而Springboot自身却直接整合了Tomcat,什么原理呢? 二、原理 SpringBoot应用只需要引入spring-boot-starter-web中这个依赖,应用程序就默认引入了tomcat依赖,其…

Tomcat的架构原理

一、前言 Tomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP程序的首选。同时它是运行在JVM中的一个进程,包含Web容器,相当于是Web容器和JVM之间的中间件。 二、…

浅析tomcat原理

浅析tomcat原理 上上个星期,看了一下how tomcat works这本书,今天捡起来看一会,发现忘得有点快,特地写点东西,加深一下记忆。因为书讲的是tomcat4,5的内容,比较旧了,所以和最新的to…

Tomcat底层原理

一、Tomcat启动时到底对我们的应用程序做了什么? 当我们把一个应用程序的war包放到Tomcat的webapps目录后,启动Tomcat,然后就可以通过浏览器发送Http请求访问该war包内的Servlet了。 这个过程包括: 1、启动Tomcat 2、Tomcat处理H…

tomcat的工作原理以及简介

Tomcat简介 Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器, 1.Tomcat是运行在JVM中的一个进程。它定义为【中间件】,顾名思义,是一个…

tomcat组成及工作原理

1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet container. (Singleton) 1.2 - Service A Service element represents the combination of one or more Connector components that share a single Engine Servic…

Tomcat工作原理介绍

Web应用程序都是靠Web服务器运行的,Tomcat是常用的Web服务器(兼具Servlet容器HTTP服务器功能)之一,此篇博客将从工作原理上来认识Tomcat。Tomcat作为Web服务器需要处理两类核心任务:处理 Socket 连接,负责网络字节流与Request和Re…

tomcat原理解析(一):一个简单的实现

一 概述 前段时间去面试,被人问到了tomcat实现原理。由于平时没怎么关注容器的实现细节,这个问题基本没回答上来。所以最近花了很多时间一直在网上找资料和看tomcat的源码来研究里面处理一个HTTP请求的流程。网上讲tomcat的帖子比较多,大多都…

Tomcat工作原理之运行机制

一、Tomcat运行原理分析1.Tomcat是运行在JVM中的一个进程。它定义为【中间件】,顾名思义,是一个在Java项目与JVM之间的中间容器。 2.Web项目的本质,是一大堆的资源文件和方法。Web项目没有入口方法(main方法),,意味着…

tomcat 工作原理

大致的架构是 jsptomcatmysql,记录tomcat学习一点笔记。 Tomcat是Servlet运行环境(容器),每个servlet执行init(),service(),destory() 以下是servlet的作用 Servlet的调用 Tomcat的工作模式3种:独立Servlet&#xff0c…

Tomcat的原理及架构

转自:https://zhuanlan.zhihu.com/p/35398064 俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂&#xf…

Tomcat基本原理

1.Tomcat核心: Http服务器Servlet容器 组件分工: 连接器Connector:处理 Socket 连接,负责网络字节流与 Request 和 Response 对象的转化。容器Container:加载和管理 Servlet,以及具体处理 Request 请求。 …

tomcat的工作原理

本文源自转载:你还记得 Tomcat 的工作原理么 一、Tomcat 整体架构 Tomcat 是一个免费的、开源的、轻量级的 Web 应用服务器。适合在并发量不是很高的中小企业项目中使用。 二、文件目录结构 以下是 Tomcat 8 主要目录结构 三、功能组件结构 Tomcat 的核心功能有…