SpringMvc核心组件
在了解SpringNvc执行顺序之前,我们先来简单介绍一下会涉及到的SpringMvc核心组件。
前端控制器:DispatcherServlet
DispatcherServlet就是SpringMvc的前端控制器,它本质上也是一个HttpServlet。它用于接收所有请求,并将请求分发到对应的Handler中。
处理器映射器:HandlerMapping
HandlerMapping负责解析用户请求,判断要执行哪个handler方法。
处理器适配器:HandlerAdapter
执行handler方法来处理业务。
控制器:Controller
一个控制器可以存在多个handler方法,用来对请求进行处理,并返回ModelAndView对象。
ModelAndView
包含视图名称以及一些模型属性的对象
视图解析器:ViewResolver
接收ModelAndView对象,解析后返回具体视图
SpringMvc执行原理
看下图
运行过程如下:
-
浏览器发送Http请求,前端控制器DispatcherServlet进行接收
-
DispatcherServlet接收到请求之后,调用HandlerMapping解析请求,判断要执行哪个handler方法
-
DispatcherServlet调用HandlerAdapter执行对应的handler方法
-
handler方法执行完成之后,返回ModelAndView对象
-
DispatcherServlet将ModelAndView对象传给ViewResolver视图解析器
-
ViewResolver解析完成后返回具体View
-
DispatcherServlet根据View渲染视图
-
DispatcherServlet响应用户