一、MVC设计模式概念
- Controller:负责接收并处理请求,最终响应给客户端
- Model:模型数据,业务逻辑
- View:呈现模型,与用户进行交互
二、SpringMVC介绍
2.1 什么是SpringMVC
目前最流行的实现MVC设计模式的开发框架。
属于Spring框架的一个后续产品。Spring框架的一个子模块,二者可以很好的结合使用,不需要整合。
2.2 SpringMVC核心组件
- DispatcherServlet:前置控制器
- Handler:处理器,完成具体的业务逻辑
- HandlerMapping:将请求映射到Handler
- HandlerInterceptor:处理器拦截器
- HandlerExecutionChain:处理器执行链
- HandlerAdapter:处理器适配器
- ModelAndView:装载模型数据和视图信息
- ViewResolver:视图解析器
2.3 SpringMVC实现流程
- 客户端请求被DispatcherServlet接收
- DispatcherServlet将请求映射到Handler
- 生成Handler以及HandlerInterceptor
- 返回HandlerExecutionChain(Handler+HandlerInterceptor)
- DispatcherServlet通过HandlerAdapter执行Handler的业务方法
- Handler将返回一个ModelAndView(包括逻辑视图、模型数据)
- DispatcherServlet通过ViewResolver进行解析,将逻辑视图转换为物理视图并完成模型数据的填充
- ViewResolver返回填充了模型数据的View,最终由DispatcherServlet响应给客户端
三、SpringMVC入门案例
3.1 SpringMVC基础配置
3.1.1 pom.xml中导入springmvc依赖的jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
3.1.2 web.xml中配置前置控制器
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置springmvc.xml路径-->
<init-param>
<