本文是根据慕课网-《Spring MVC 起步》总结的知识点,包括:
- Spring MVC 基本概念
- Spring MVC 项目搭建
- 用Spring MVC 进行开发
- 如何用Controller响应请求
- 如何实现数据绑定
- 如何文件上传
1. MVC概念
参考:http://c.biancheng.net/view/4391.html

MVC模型
介绍:
- MVC 是进行web开发通用架构方式
- 核心思想是 业务数据抽取同业务数据呈现相分离
- MVC是一种架构模式: 程序分层、分工合作、既相互独立,又协同工作
MVC 是 Model、View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责。
- 模型:用于存储数据以及处理用户请求的业务逻辑。
- 视图:向控制器提交数据,显示模型中的数据。
- 控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给哪个视图更新显示。
MVC 实现:
- 模型:一个或多个 JavaBean 对象,用于存储数据(实体模型,由 JavaBean 类创建)和处理业务逻辑(业务模型,由一般的 Java 类创建)。
- 视图:一个或多个 JSP 页面,向控制器提交数据和为模型提供数据显示,JSP 页面主要使用 HTML 标记和 JavaBean 标记来显示数据。
- 控制器:一个或多个 Servlet 对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的 JavaBean,并将处理结果存放到实体模型 JavaBean 中,输出给视图显示。
2. MVC 工作流程:

Spring MVC 工作原理
- 客户端请求提交到 DispatcherServlet。
- 由 DispatcherServlet 控制器寻找一个或多个 HandlerMapping,找到处理请求的 Controller。
- DispatcherServlet 将请求提交到 Controller。
- Controller 调用业务逻辑处理后返回 ModelAndView。
- DispatcherServlet 寻找一个或多个 ViewResolver 视图解析器,找到 ModelAndView 指定的视图。
- 视图负责将结果显示到客户端
Spring MVC 接口
SpringMVC工作原理图 含 4 个 Spring MVC 接口,即 含 4 个 Spring MVC 接口,即 DispatcherServlet、HandlerMapping、Controller 和 ViewResolver。
- DispatcherServlet接口 : Spring MVC 所有的请求都经过 DispatcherServlet 来统一分发,在 DispatcherServlet 将请求分发给 Controller 之前需要借助 Spring MVC 提供的 HandlerMapping 定位到具体的 Controller。
- HandlerMapping接口 :接口负责完成客户请求到 Controller 映射。
- Controller接口 :将处理用户请求。Controller 处理完用户请求,将返回 ModelAndView 对象给 DispatcherServlet 前端控制器,ModelAndView 中包含了模型(Model)和视图(View)。
注: 从宏观角度考虑,DispatcherServlet 是整个 Web 应用的控制器;从微观考虑,Controller 是单个 Http 请求处理过程中的控制器,而 ModelAndView 是 Http 请求过程中返回的模型(Model)和视图(View)。- ViewResolver 接口(视图解析器):在 Web 应用中负责查找 View 对象,从而将相应结果渲染给客户。