Tomcat 和 Spring MVC 是 Java Web 开发中两大核心组件,分别承担不同的角色:
一、Tomcat
-
定义
- Apache Tomcat 是一个开源的 Servlet 容器 (也称为 Servlet 引擎)+ JSP 引擎,实现了 Java EE(现称 Jakarta EE)规范中与 Web 相关的部分。
-
主要功能
-
监听 HTTP 请求(端口默认 8080),将请求交给对应的 Servlet 处理,最后把 Servlet 的响应(HTML、JSON、图片等)返回给客户端。
-
支持 JSP(JavaServer Pages),可以把 JSP 文件编译成 Servlet 并执行。
-
-
在 Spring Boot 中的地位
spring-boot-starter-web
默认会引入嵌入式 Tomcat。你打包成 JAR 直接运行时,实际上是 Tomcat 在后台启动并提供 Web 服务。
二、Spring MVC
-
定义
- Spring MVC(Model-View-Controller)是 Spring Framework 中的一个 Web 框架模块,基于经典的 MVC 设计模式,用来处理 Web 请求和响应。
-
核心组件
组件 职责 DispatcherServlet 作为前端控制器(Front Controller),接收所有 HTTP 请求并分发给具体的处理器(Controller)。 HandlerMapping 根据请求 URL、HTTP 方法等规则,找到对应的 Controller 方法。 Controller 你在代码中用 @Controller
或@RestController
注解的类,负责业务逻辑处理并返回 Model 或数据。ViewResolver 将 Controller 返回的视图名称(如 home
)解析为具体的 JSP、Thymeleaf 模板等,并渲染页面。ModelAndView 用于在 Controller 中携带要渲染到页面的数据(Model)和视图名称(View)。 -
工作流程
-
浏览器发起请求 → 2.
DispatcherServlet
拦截 → 3. 通过HandlerMapping
找到 Controller → -
执行 Controller 方法,返回数据或视图名 → 5.
ViewResolver
渲染 → 6. 响应结果返回给浏览器。
-
-
与 Spring Boot 的结合
-
Spring Boot 自动帮你注册好
DispatcherServlet
、默认的ViewResolver
(如 Thymeleaf)以及静态资源映射。 -
你只需在启动类或配置类加上
@EnableWebMvc
(可选),并编写带@Controller
/@RestController
的类和@RequestMapping
方法,就能快速构建 Web 接口或页面。
-
小结
-
Tomcat 是运行你的 Web 应用的 服务器容器,负责接收和转发 HTTP 请求;
-
Spring MVC 是构建应用内部 请求--处理--响应 流程的 框架,让你以注解+POJO 的方式组织 Web 业务逻辑。
两者配合:Tomcat 负责网络层面的通信,Spring MVC 负责应用层面的请求调度与业务处理。