浅谈SpringMvc的执行原理

158 阅读1分钟

SpringMvc核心组件

在了解SpringNvc执行顺序之前,我们先来简单介绍一下会涉及到的SpringMvc核心组件。

前端控制器:DispatcherServlet

DispatcherServlet就是SpringMvc的前端控制器,它本质上也是一个HttpServlet。它用于接收所有请求,并将请求分发到对应的Handler中。

处理器映射器:HandlerMapping

HandlerMapping负责解析用户请求,判断要执行哪个handler方法。

处理器适配器:HandlerAdapter

执行handler方法来处理业务。

控制器:Controller

一个控制器可以存在多个handler方法,用来对请求进行处理,并返回ModelAndView对象。

ModelAndView

包含视图名称以及一些模型属性的对象

视图解析器:ViewResolver

接收ModelAndView对象,解析后返回具体视图

SpringMvc执行原理

看下图

运行过程如下:

  1. 浏览器发送Http请求,前端控制器DispatcherServlet进行接收

  2. DispatcherServlet接收到请求之后,调用HandlerMapping解析请求,判断要执行哪个handler方法

  3. DispatcherServlet调用HandlerAdapter执行对应的handler方法

  4. handler方法执行完成之后,返回ModelAndView对象

  5. DispatcherServlet将ModelAndView对象传给ViewResolver视图解析器

  6. ViewResolver解析完成后返回具体View

  7. DispatcherServlet根据View渲染视图

  8. DispatcherServlet响应用户