什么是 springMVC
springMVC 是 spring 框架的一个模块,springMVC 和 spring 无需通过中间整合层进行整合。springMVC 是一个基于 mvc 的 web 框架。
在 spring 中如下图所示:

springMVC 组件及工作流程
组件
springMVC 的主要组件大致有以下这些:
- 前端控制器 DispatcherServlet: 接收请求,响应结果,相当于转发器。该组件能减少其他组件之间的耦合度。
- 处理器映射器 HandlerMapping:根据请求的 url 查找 Handler。
- 处理器适配器 HandlerAdapter: 按照特定规则去执行 Handler。
- 处理器 Handler:指定要执行的程序。
- 视图解析器 View resolver:进行视图解析,根据视图名解析成真正的视图。
- 视图 View:View 是一个接口,实现类支持不同的 View 类型。
工作流程图

工作流程
1 发起请求到前端控制器 DispatcherServlet;
2 前端控制器请求 HandlerMapping 查找 Handler ,可以根据 xml 配置,注解进行查找;
3 处理器映射器 HandlerMapping 向前端控制器返回 Handler;
4 前端控制器调用处理器适配器去执行 Handler;
5 处理器适配器去执行 Handler;
6 Handler 执行完成给适配器返回 ModelAndView,其中 ModelAndView 是 springMVC 框架的一个底层对象,包括 Model 和 view;
7 处理器适配器向前端控制器返回 ModelAndView;
8 前端控制器去请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp);
9 视图解析器向前端控制器返回 View;
10 前端控制器进行视图渲染,视图渲染将模型数据(在 ModelAndView对象中)填充到 request 域;
11 前端控制器向用户响应结果。
简单来说,就是遵循 MVC软件架构模式。
入门程序
举个栗子,编写个程序来实现 springMVC 的功能。
在这里我们还是在 IntellJ IDEA 中使用 maven 来快速搭建开发环境。
打开 idea,创建新项目,选择 maven,勾选 create from archetype,选中 webapp选框。

一路选择后, maven便帮我们自动生成了一个简单的 web 文件夹,但这个并不是 maven 标准结构,我们选择 File -> Project Structure -> Modules,修改文件结构如下:

修改 pom.xml,添加 springMVC 及相关的依赖:
<dependencies> <!-- springmvc 框架 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework-version}</version> </dependency> <!-- jsp操作 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- servlet支持 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <!-- standard包 --> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.5
