Tomcat 和 Spring MVC

TomcatSpring MVC 是 Java Web 开发中两大核心组件,分别承担不同的角色:


一、Tomcat

  1. 定义

    • Apache Tomcat 是一个开源的 Servlet 容器 (也称为 Servlet 引擎)+ JSP 引擎,实现了 Java EE(现称 Jakarta EE)规范中与 Web 相关的部分。
  2. 主要功能

    • 监听 HTTP 请求(端口默认 8080),将请求交给对应的 Servlet 处理,最后把 Servlet 的响应(HTML、JSON、图片等)返回给客户端。

    • 支持 JSP(JavaServer Pages),可以把 JSP 文件编译成 Servlet 并执行。

  3. 在 Spring Boot 中的地位

    • spring-boot-starter-web 默认会引入嵌入式 Tomcat。你打包成 JAR 直接运行时,实际上是 Tomcat 在后台启动并提供 Web 服务。

二、Spring MVC

  1. 定义

    • Spring MVC(Model-View-Controller)是 Spring Framework 中的一个 Web 框架模块,基于经典的 MVC 设计模式,用来处理 Web 请求和响应。
  2. 核心组件

    组件 职责
    DispatcherServlet 作为前端控制器(Front Controller),接收所有 HTTP 请求并分发给具体的处理器(Controller)。
    HandlerMapping 根据请求 URL、HTTP 方法等规则,找到对应的 Controller 方法。
    Controller 你在代码中用 @Controller@RestController 注解的类,负责业务逻辑处理并返回 Model 或数据。
    ViewResolver 将 Controller 返回的视图名称(如 home)解析为具体的 JSP、Thymeleaf 模板等,并渲染页面。
    ModelAndView 用于在 Controller 中携带要渲染到页面的数据(Model)和视图名称(View)。
  3. 工作流程

    1. 浏览器发起请求 → 2. DispatcherServlet 拦截 → 3. 通过 HandlerMapping 找到 Controller →

    2. 执行 Controller 方法,返回数据或视图名 → 5. ViewResolver 渲染 → 6. 响应结果返回给浏览器。

  4. 与 Spring Boot 的结合

    • Spring Boot 自动帮你注册好 DispatcherServlet、默认的 ViewResolver(如 Thymeleaf)以及静态资源映射。

    • 你只需在启动类或配置类加上 @EnableWebMvc(可选),并编写带 @Controller/@RestController 的类和 @RequestMapping 方法,就能快速构建 Web 接口或页面。


小结

  • Tomcat 是运行你的 Web 应用的 服务器容器,负责接收和转发 HTTP 请求;

  • Spring MVC 是构建应用内部 请求--处理--响应 流程的 框架,让你以注解+POJO 的方式组织 Web 业务逻辑。

两者配合:Tomcat 负责网络层面的通信,Spring MVC 负责应用层面的请求调度与业务处理。

相关推荐
万法若空4 小时前
【算法-查找】查找算法
java·数据结构·算法
HZZD_HZZD6 小时前
DL/T 645-2026新国标深度解读与智能电表协议适配实战:从帧结构变化到Java采集器升级的全链路改造方案
java·开发语言
山登绝顶我为峰 3(^v^)39 小时前
C/C++ 交叉编译方法
java·c语言·c++
一叶飘零_sweeeet9 小时前
Codex 与 Claude Code 深度拆解:两代 AI 编程智能体的技术本质与 Java 实战指南
java·ai·codex·claude code
Listen·Rain9 小时前
提示词和提示词模板
java·人工智能·spring boot
wuqingshun31415910 小时前
重写equals而不重写hashCode,会出什么问题?
java·开发语言
我今晚不熬夜10 小时前
Java语言实现Modbus协议通过用串口读取数据(以RTU为例)
java·网络协议
小锋java123411 小时前
Maven 4 要来了:15 年后,Java 构建工具迎来"彻底重构"
java·maven
卓怡学长11 小时前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea