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

相关推荐
李崧正13 分钟前
Java技术分享:Lambda表达式与函数式编程
java·开发语言·python
老了,不知天命15 分钟前
鳶尾花項目JAVA
java·开发语言·机器学习
二哈赛车手21 分钟前
新人笔记---实现简易版的rag的bm25检索(利用ES),以及RAG上传时的ES与向量数据库双写
java·数据库·笔记·spring·elasticsearch·ai
winner888124 分钟前
从零吃透C++命名空间、std、#include、string、vector
java·开发语言·c++
AI人工智能+电脑小能手33 分钟前
【大白话说Java面试题】【Java基础篇】第26题:Java的抽象类和接口有哪些区别
java·开发语言·面试
bzmK1DTbd42 分钟前
SOLID原则在Java中的实践:单一职责与开闭原则
java·开发语言·开闭原则
winner88811 小时前
C++ 命名空间、虚函数、抽象类、protected 权限全套通俗易懂精讲(附与 Java 对比)
java·开发语言·c++
直奔標竿1 小时前
Java开发者AI转型第二十五课!Spring AI 个人知识库实战(四)——RAG来源追溯落地,拒绝AI幻觉
java·开发语言·人工智能·spring boot·后端·spring
qq_589568101 小时前
java基础学习,案例练习,即时通讯
java·开发语言·学习
逸Y 仙X2 小时前
文章十九: ElasticSearch Full Text 全文本查询
java·大数据·数据库·elasticsearch·搜索引擎·全文检索