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 请求流程。

相关推荐
孫治AllenSun18 分钟前
【MDC】使用 MDC 封装一个 LogMdcUtil 工具类
java·spring boot·后端
济*沧*海26 分钟前
BaseMapper的介绍
java·windows·tomcat
plainGeekDev33 分钟前
依赖管理 → Version Catalog
android·java·kotlin
淘源码d2 小时前
医学影像云PACS系统——PACS诊断工作站
java·源码·影像处理·医院管理系统·影像工作站·云pacs系统·dicom 标准通信
NiceCloud喜云3 小时前
Anthropic 一周三连发:Cowork 多端、Fable 5 按需付费、J-space 论文的技术解读
java·服务器·网络·人工智能·ai
SamDeepThinking3 小时前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试
momo3 小时前
JAVA基础知识
java·开发语言
就叫_这个吧4 小时前
Activiti7工作流入门+案例应用
java·activiti7·工作流
Z_W_H_4 小时前
minikube start --driver=docker --memory=4000mb出现PROVIDER_DOCKER_NEWGRP
java·docker·minikube
折哥的程序人生 · 物流技术专研4 小时前
第3篇:手写促销策略引擎(满减、打折、立减)
java·设计模式·策略模式·开闭原则·编程实战·扩充系列·促销引擎