文章目录
一、Spring MVC概述
1.1 MVC设计模式
MVC(Model-View-Controller)是一种经典的软件架构模式,将应用程序分为三个核心组件:
- Model:数据模型,负责业务逻辑和数据管理
- View:视图层,负责数据展示
- Controller:控制器,处理用户请求并协调Model和View
1.2 Spring MVC特点
- 基于DispatcherServlet的前端控制器模式
- 灵活的配置方式(注解驱动)
- 强大的数据绑定和验证机制
- 支持多种视图技术(JSP、Thymeleaf等)
- 与Spring框架无缝集成
二、Spring MVC核心组件
2.1 架构流程图解
[客户端] --> [DispatcherServlet]
--> [HandlerMapping]
--> [Controller]
--> [ModelAndView]
--> [ViewResolver]
--> [视图]
2.2 核心组件说明
- DispatcherServlet:前端控制器,统一处理请求
- HandlerMapping:请求到处理器的映射
- Controller:业务逻辑处理器
- ViewResolver:视图解析器
- HandlerAdapter:处理器适配器
- Model:数据模型容器
三、环境搭建与配置
3.1 Maven依赖
<dependencies>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.20</version>
</dependency>
<!-- Servlet API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
3.2 传统XML配置 vs JavaConfig
XML配置示例:
<!-- web.xml -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc.xml</param-value>
</init-param>
</servlet>
JavaConfig实现:
@Configuration
@EnableWebMvc
@ComponentScan("com.example.controller")
public class WebConfig implements WebMvcConfigurer {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
四、控制器开发实践
4.1 基础控制器示例
@Cont