MVC思想将一个应用分成3个基本部分:Model(模型)、View(视图)和Controller(控制器),让三个部分以最低的耦合进行协同工作,从而提高应用的可扩展性及可维护性。

Spring MVC是一款优秀的基于MVC思想的应用框架,它是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架。

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

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

    基于Servlet的MVC模式。

  • 模型:一个或多个JavaBean对象,用于存储数据(实体模型,由JavaBean类创建)和处理业务逻辑(业务模型,由一般的Java类创建)。

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

image.png
Spring MVC框架是高度可配置的,包含多种视图技术,例如JSP技术、Velocity、Tiles、iText和POI。

Spring MVC框架并不关心使用的视图技术,也不会强迫开发者只使用JSP技术。

image.png
Spring MVC的工作流程:
(1)客户端请求提交到DispatcherServlet;
(2)由DispatcherServlet控制器寻找一个或多个HandlerMapping,找到处理请求的 Controller;
(3)DispatcherServlet将请求提交到Controller;
(4)Controller调用业务逻辑处理后返回ModelAndView;
(5)DispatcherServlet寻找一个或多个ViewResolver视图解析器,找到ModelAndView指定的视图;
(6)视图负责将结果显示到客户端。