Tomcat 入门与核心原理

目录

[一、什么是 Tomcat?](#一、什么是 Tomcat?)

[二、Tomcat 能做什么?](#二、Tomcat 能做什么?)

[三、Tomcat 与 Web 应用的关系](#三、Tomcat 与 Web 应用的关系)

[四、Tomcat 的核心组件](#四、Tomcat 的核心组件)

[1. Connector(连接器)](#1. Connector(连接器))

[2. Container(容器体系)](#2. Container(容器体系))

[3. Servlet 容器](#3. Servlet 容器)

[五、Tomcat 的请求处理流程](#五、Tomcat 的请求处理流程)

[六、Tomcat 与 Spring Boot 的关系](#六、Tomcat 与 Spring Boot 的关系)

[1. 传统方式](#1. 传统方式)

[2. Spring Boot 方式](#2. Spring Boot 方式)

[七、Tomcat 与其他服务器对比](#七、Tomcat 与其他服务器对比)

[八、Tomcat 的线程模型](#八、Tomcat 的线程模型)

[九、Tomcat 常见配置项](#九、Tomcat 常见配置项)

十、常见误区

[1. Tomcat ≠ Web 服务器](#1. Tomcat ≠ Web 服务器)

[2. Tomcat 不等于 Spring](#2. Tomcat 不等于 Spring)

十一、总结


在 Java Web 开发中,只要涉及到 Web 项目,Tomcat 几乎是绕不开的组件

无论是传统的 Spring MVC 项目,还是 Spring Boot 内嵌服务器,本质上都离不开 Tomcat。

一、什么是 Tomcat?

Tomcat 是一个轻量级的 Java Web 容器,由 Apache 基金会维护。

一句话概括:Tomcat 是用来运行 Java Web 应用的服务器。

更准确地说:

  • 它实现了 Servlet、JSP 等 Java Web 规范
  • 提供 HTTP 请求的接收与处理能力

二、Tomcat 能做什么?

Tomcat 主要负责:

  • 监听端口,接收 HTTP 请求
  • 创建 Servlet 容器
  • 调用 Servlet 处理请求
  • 将响应返回给客户端

Tomcat 不处理业务逻辑,只负责请求转发和生命周期管理。

三、Tomcat 与 Web 应用的关系

典型请求流程:

浏览器请求

Tomcat 接收请求

DispatcherServlet

Controller

返回响应

在 Spring MVC 中,Tomcat 是最外层入口。

四、Tomcat 的核心组件

Tomcat 的整体架构可以简化为:

TypeScript 复制代码
Server
 └── Service
      ├── Connector
      └── Engine
           └── Host
                └── Context

1. Connector(连接器)

  • 负责监听端口
  • 接收 HTTP 请求
  • 将请求交给容器处理

2. Container(容器体系)

负责 Servlet 的管理和调用,包括:

  • Engine:处理多个 Host
  • Host:虚拟主机(域名)
  • Context:Web 应用
  • Wrapper:Servlet

3. Servlet 容器

  • 管理 Servlet 生命周期

  • 调用 service() 方法

五、Tomcat 的请求处理流程

简化流程如下:

  1. 客户端发送 HTTP 请求
  2. Connector 接收请求
  3. 请求进入 Engine
  4. 通过 Host 定位应用
  5. 通过 Context 定位 Servlet
  6. 调用 Servlet 处理请求
  7. 返回响应给客户端

六、Tomcat 与 Spring Boot 的关系

1. 传统方式

  • 项目打成 WAR 包
  • 部署到外部 Tomcat

2. Spring Boot 方式

  • 内嵌 Tomcat
  • 应用即服务器
  • 启动即运行

Spring Boot 默认内嵌 Tomcat。

七、Tomcat 与其他服务器对比

对比 Tomcat Jetty Undertow
成熟度 较新
性能 稳定 很高
易用性
默认支持 Spring Boot 默认 可选 可选

八、Tomcat 的线程模型

  • 使用线程池处理请求
  • 一个请求对应一个线程
  • 线程数量可配置

线程数配置直接影响并发能力。

九、Tomcat 常见配置项

  • 端口号(server.port)
  • 最大线程数
  • 连接超时时间
  • 最大连接数

十、常见误区

1. Tomcat ≠ Web 服务器

Tomcat 是 Servlet 容器 + HTTP 服务器

2. Tomcat 不等于 Spring

  • Tomcat 是运行环境
  • Spring 是开发框架

十一、总结

Tomcat 是 Java Web 应用的运行基础,负责接收请求并驱动整个 Web 请求流程。

相关推荐
皮皮林5513 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河3 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程6 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅8 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者9 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺9 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart10 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP11 小时前
MyBatis-mybatis入门与增删改查
java
孟陬14 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端