Tomcat

 Tomcat

Apache Tomcat 是 Apache 软件基金会维护的开源Java Servlet 容器(同时支持 JSP 引擎),核心定位是运行 Java Web 应用(如基于 Spring Boot、SSM 框架开发的应用),实现 Java EE(Jakarta EE)规范中的 Web 组件(Servlet、JSP、WebSocket 等),是 Java 生态中最普及的 Web 服务器之一。

核心定位与价值

Tomcat 的核心作用是 “承载 Java Web 应用并处理 HTTP 请求”,解决的核心问题是:将开发者编写的 Java Web 代码(如 Servlet 处理业务、JSP 渲染页面)转化为可通过浏览器 / 客户端访问的服务。其核心价值包括:

开源免费:无商业授权成本,社区活跃,文档丰富

轻量易部署:体积小(约 100MB 左右),配置简单,支持快速启动与应用部署

规范兼容:严格遵循 Jakarta Servlet、Jakarta JSP 等规范,适配主流 Java Web 框架(Spring Boot、Spring MVC 等)

灵活扩展:支持自定义线程池、连接器(Connector)、虚拟主机等,满足不同场景需求

核心架构与关键组件

Tomcat 架构分层清晰,核心组件按 “顶层到应用层” 依次为 Server → Service → Connector + Engine → Host → Context,各组件协同处理请求:

组件核心职责
Server顶层容器,代表整个 Tomcat 实例,可包含多个 Service(实际场景中通常仅 1 个)
Service关联 “连接器” 与 “引擎”,负责将请求从 Connector 传递到 Engine 处理
Connector接收客户端 HTTP 请求(如浏览器请求),支持不同协议(HTTP/1.1、AJP 等),默认端口 8080
Engine核心 “请求处理器”,接收 Connector 传递的请求,分发到对应虚拟主机(Host)
Host虚拟主机,对应一个域名(如 localhostwww.example.com),可部署多个 Web 应用
ContextWeb 应用上下文,对应一个具体的 Java Web 应用(如一个 Spring Boot 项目打包的 WAR/JAR 包),是 Servlet、JSP 等组件的实际运行容器

请求流程:

客户端(浏览器)发送 HTTP 请求到 Tomcat 的 Connector(如 http://localhost:8080/myapp

Connector 接收请求,传递给 Service 关联的 Engine

Engine 根据请求域名(如 localhost)找到对应 Host

Host 根据请求路径(如 /myapp)找到对应 Context(即 myapp 应用)

Context 中的 Servlet 处理业务逻辑,生成响应(如 HTML、JSON),按原路径返回客户端

核心功能与关键配置

核心功能

运行 Java Web 应用:支持部署两种格式应用包 

        WAR 包:传统 Java Web 应用格式(需放入 Tomcat 的 webapps 目录,启动时自动解压);

        JAR 包:Spring Boot 应用常用格式(内置 Tomcat 时可直接运行,无需外部 Tomcat);

处理 HTTP 请求:默认通过 HTTP/1.1 连接器(端口 8080)接收请求,支持 HTTPS(需配置证书)、AJP(用于与 Nginx 等反向代理配合);

管理 Servlet 生命周期:自动完成 Servlet 的初始化(init())、服务(service())、销毁(destroy()),开发者无需关注底层细节;

JSP 编译:将 JSP 页面(含 Java 代码的 HTML)编译为 Servlet 类,再执行并返回渲染后的页面。

 关键配置

修改默认端口:编辑 conf/server.xml,找到 HTTP 连接器配置,修改 port 属性(如将 8080 改为 8081):

<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

部署 Web 应用

直接复制 WAR 包到 webapps 目录(启动 Tomcat 时自动部署,访问路径为 http://ip:port/包名);

手动配置 Context(编辑 conf/server.xml,指定应用路径和本地目录)。

配置虚拟主机:编辑 conf/server.xml,添加 Host 节点(如配置 www.test.com 对应本地应用):

<Host name="www.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
  <Context path="/" docBase="myapp" reloadable="true"/> <!-- 根路径映射到 myapp 应用 -->
</Host>

使用场景

Java Web 开发调试:开发阶段(如用 IDEA、Eclipse)集成 Tomcat,快速启动应用并调试代码(支持热部署,修改代码后无需重启 Tomcat);

中小规模生产环境部署:对于访问量不大的 Java Web 应用(如企业内部系统、小型官网),直接使用 Tomcat 作为独立 Web 服务器;

与反向代理配合(大规模场景):高并发场景下,用 Nginx 作为前端反向代理(处理静态资源、负载均衡、SSL 终止),将动态请求(如 /api)转发给后端多个 Tomcat 实例,提升整体性能与可用性。

与Nginx的对比

维度TomcatNginx
核心定位Java Servlet 容器(运行 Java Web 应用)HTTP 服务器 / 反向代理(处理静态资源、负载均衡)
支持语言仅 Java(Web 应用)无(仅转发请求,不运行业务代码)
擅长场景Java Web 应用运行、中小规模动态服务静态资源托管、高并发反向代理、负载均衡

快速入门

下载安装:官网(tomcat.apache.org)下载对应版本(如 Tomcat 10,需匹配 Java 版本:Tomcat 10 需 JDK 11+),解压到本地目录(避免中文路径)

启动 Tomcat

Windows:双击 bin/startup.bat

Linux/Mac:执行 bin/startup.sh(需先赋予权限:chmod +x bin/*.sh);启动后访问 http://localhost:8080,看到 Tomcat 欢迎页即成功;

部署应用:将 Spring Boot 项目打包为 WAR 包(需修改 pom.xml 为 WAR 打包),复制到 webapps 目录,重启 Tomcat,访问 http://localhost:8080/项目名

关闭 Tomcat

Windows:双击 bin/shutdown.bat

Linux/Mac:执行 bin/shutdown.sh

总结

Tomcat 是 Java Web 生态的 “基石”,核心优势是开源、轻量、规范兼容,适合 Java Web 应用的开发调试与中小规模生产部署;大规模场景下可与 Nginx 配合实现负载均衡。对于 Java 开发者,Tomcat 是必知必会的基础服务器,也是学习 Java Web 规范(如 Servlet)的重要工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值