1.Spring MVC - 框架介绍
2.Spring MVC - 启动过程详解

1.Spring Web MVC框架介绍

Spring框架提供了构造Web应用程序的全能MVC模块。

Spring框架图:

Spring Web MVC是一种基于Java实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们简化日常web系统的开发。

2.SpringMVC接口解释

2.1 DispatcherServlet接口

Spring提供的前端控制器,所有的请求都有经过它来统一分发。

在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。

2.2 HandlerMapping接口

能够完成客户请求到Controller映射。

2.3 Controller接口

需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。

一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。

从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;

从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。

2.4 ViewResolver接口

Spring提供的视图解析器(ViewResolver)在Web应用中查找View对象,从而将相应结果渲染给客户。

2.5 View接口

View接口表示一个响应给用户的视图,例如jsp文件,pdf文件,html文件等。

3.SpringMVC运行原理

3.1 Http请求提交到DispatcherServlet

客户端的Http请求提交到DispatcherServlet。

3.2 DispatcherServlet寻找处理器

由DispatcherServlet控制器查询一个或多个HandlerMapping,找到并保存url请求和处理函数间的mapping关系。

3.3 DispatcherServlet适配处理器

DispatcherServlet通过HandlerAdapter来实际调用Controller。

3.4.Controller调用业务逻辑处理

Controller页面控制器接收到请求之后进行功能处理,首先需要收集、绑定请求参数到一个对象(命令对象),并进行验证,然后将该对象委托给业务对象进行处理(service层);业务对象处理之后控制器将返回一个ModelAndView(模型数据和逻辑视图名)。

3.5 ModelAndView

ModelAndView类别就如其名称所示,是代表了MVC Web程序中Model与View的对象,不过它只是方便一次返回这两个对象的holder。

Handler返回的ModelAndView中不包含真正的视图,只返回一个逻辑视图名称。

3.6 ViewResolver(视图解析器)

DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。

ViewResolver就会把ModelAndView中的视图名称,解析为真正的视图View对象。

ViewResolver接口声明了resolverViewName方法,这个方法的主要功能是根据ModelAndView中给定的viewName信息,再结合相关的配置,创建出合适类型的View对象。

3.7 根据Model渲染视图

ViewResolver接口是在DispatcherServlet中进行调用的,当DispatcherServlet调用完Controller后,会得到一个ModelAndView对象,然后DispatcherServlet会调用render方法进行视图渲染。

3.8 返回渲染后的View

渲染后的View返回给客户端浏览器。

4.Request请求的生命周期

更多推荐

Spring MVC - 框架介绍