Spring MVC的工作流程

时间:2023-03-10 05:29:28
Spring MVC的工作流程

前端控制器(DispatcherServlet): (不需要我们开发)接收请求,响应结果,相当于转发器,*处理器。减少了其它组件之间的耦合度。

springmvc.xml是SpringMVC的一个全局配置文件,配置

处理器映射器(HandlerMapping): (不需要我们开发) 根据请求的 url 查找 Handler
处理器适配器(HandlerAdapter): 按照特定规则(HandlerAdapter要求的规则)去执行Handler
视图解析器(ViewResolver): (不需要我们开发)根据逻辑视图名解析成真正的视图(view)
Handler(处理器,平常叫做controller): 编写Handler时按照 HandlerAdapter 的要求去做,这样适配器才可以去正确执行Handler

<!-- 注解映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- 注解适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>  

<!-- 实际开发时,使用mvc:annotation-driven,它代替了上边注解映射器和注解适配器配置,而且默认加载很多的参数绑定方法, 比如json转换解析器
-->
<!--  <mvc:annotation-driven></mvc:annotation-driven>-->  

第一步:发起请求到前端控制器(DispatcherServlet)
   二  :前端控制器(DispatcherServlet) 请求 处理器映射器(HandlerMapping) 查找 Handler(可以根据 xml 配置、注解进行查找)。
   三  :处理器映射器(HandlerMapping) 向 前端控制器(DispatcherServlet) 返回 Handler

第四步:前端控制器(DispatcherServlet) 调用 处理器适配器(HandlerAdapter) 去执行 Handler

五步:处理器适配器(HandlerAdapter) 执行 Handler
   六步:Handler 执行完成后 给 处理器适配器(HandlerAdapter) 返回 ModelAndView
   七步:处理器适配器(HandlerAdapter) 向 前端控制器 返回 ModelAndView(ModelAndView 是 springmvc 框架的一个底层对象,包括 Model 和 view)

第八步:前端控制器 请求 视图解析器(ViewResolver) 去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
   九步:视图解析器向前端控制器返回 View

第十步:前端控制器进行视图渲染,将 模型数据(在 ModelAndView 对象中)填充到 request 域
   十一步:前端控制器向用户响应结果