龙空技术网

全网讲解最透彻:SpringMVC执行流程分析,仅此一篇

程序员杰哥 106

前言:

目前姐妹们对“mvc执行流程简述”大约比较重视,我们都想要知道一些“mvc执行流程简述”的相关知识。那么小编也在网上汇集了一些有关“mvc执行流程简述””的相关知识,希望大家能喜欢,兄弟们快快来学习一下吧!

1. SpringMVC执行流程

1.1 SpringMVC三大核心组件

1.HandlerMapping处理器映射器:建立地址与方法的映射。

HandlerMapping负责根据用户请求url找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

2.HandlerAdapter处理器适配器:根据地址调用方法。

Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。

3.ViewResolver 视图解析器:处理ModelAndView数据和视图。

ViewResolver通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

1.2 SpringMVC执行流程图

流程图

1.3 Spring执行流程具体步骤(参考图)

1.用户发送请求至前端控制器DispatcherServlet。

2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4.DispatcherServlet通过HandlerAdapter处理器适配器调用处理器。

5.执行处理器(Controller层,也叫后端控制器)。

6.Controller执行完成返回数据和视图(ModelAndView)。

7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

9.ViewReslover解析后返回具体的View视图(JSP / HTML)。

10.DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

11.DispatcherServlet响应用户,用户看到界面和数据。

1.4 总结流程

Spring MVC所有的请求都经过DispatcherServlet来统一分发。DispatcherServlet将请求分发给Controller之前,需要借助于Spring MVC提供的HandlerMapping定位到具体的Controller。

HandlerMapping接口负责完成客户请求到Controller映射。

Controller接口将处理用户请求,这和Java Servlet扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView(数据和视图)对象给DispatcherServlet前端控制器。从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。

返回的视图需要通过ViewResolver接口(视图解析器)在Web应用中负责查找View对象,从而将相应结果渲染给客户。

2. 创建SpringMVC的三大组件

SpringMVC中默认提供的三大组件有可能过时,我们可以手动设置这三大组件,一般只需要设置ViewResolver 视图解析器,设置它的前缀prefix和后缀suffix

2.1 手动一个个的设置处理器映射器(不推荐)

<!--方式1:手动一个个设置 -->  <!-- 处理器映射器 -->  <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>  <!--处理器适配器-->  <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

2.2 模型驱动配置处理器映射器和处理器适配器,配置视图解析器【***】

<!--方式2:配置处理器映射器和处理器适配器 -->  <!-- 在选择mvc标签时,一定要选择最后的路径是/mvc的选项 -->  <!-- 这行配置可以替换掉上边的两行配置(一步步设置) -->  <mvc:annotation-driven/>  <!-- 配置视图解析器 -->  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 前缀和后缀 相当于 //WEB-INF/jsp/Xxx.jsp-->  <!--定义页面路径的前缀--> <property name="prefix" value="/WEB-INF/jsp/"/>  <!--定义页面路径的后缀--> <property name="suffix" value=".jsp"/>  </bean>

2.3【注意】如果mvc标签无效,头文件模板。

<mvc:annotation-driven/>无效,可能是头文件不对,下面是一个参考。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns=";  xmlns:xsi="; xmlns:context="; xmlns:mvc="; xsi:schemaLocation="      ;>
总结:

SpirngMVC的执行流程,其实非常简单。 核心三大处理器处理器映射器(HandlerMapping) 处理URL找到对应处理器(Handler),并将其返回给前端控制器。

如果你还没有掌握这些技术,可以点赞+转发后私信回复【Java】来获取完整的体系资料。

标签: #mvc执行流程简述