0x00 参考

http://c.biancheng.net/spring_mvc/

0x01 MVC设计模式

MVC是Model、View和Controller的缩写,分别代表Web应用程序中的三种职责:

  • Model模型:用于存储数据以及处理用户请求的业务逻辑。
  • View视图:向控制器提交数据,显示模型中的数据。
  • Controller控制器:根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给哪个视图更新显示。

MVC设计不仅限于Java Web应用,还包括许多应用,比如前端、PHP、.NET 等语言。之所以那么做的根本原因在于解耦各个模块。

其中,经典的基于Servlet的MVC模式的具体实现如下:

  • 模型:一个或多个JavaBean对象,用于存储数据(实体模型,由JavaBean类创建)和处理业务逻辑(业务模型,由一般的Java类创建)。
  • 视图:一个或多个JSP页面,向控制器提交数据和为模型提供数据显示,JSP页面主要使用HTML标记和JavaBean标记来显示数据。
  • 控制器:一个或多个Servlet对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中,输出给视图显示。

0x02 Spring MVC简介

Spring MVC是Spring提供给Web应用的框架设计,是典型的MVC架构。

Spring MVC框架主要由DispatcherServlet、处理器映射、控制器、视图解析器、视图组成,其工作原理如图: