【java开发Spring篇】之SpringMVC的执行流程

156 阅读3分钟

前言: java后台开发中SpringMVC的执行流程是个绕不去的坎,此文章仅代表鄙人的总结和理解,如有错漏,欢迎指正...

废话不多说,直接上图...

一、SpringMVC的执行流程解析

1、一个请求匹配前端控制器 DispatcherServlet 的请求映射路径(在 web.xml中指定), WEB 容器将该请求转交给 DispatcherServlet 处理

2、DispatcherServlet 接收到请求后, 将根据 请求信息 交给 处理器映射器 (HandlerMapping)

3、HandlerMapping 根据用户的url请求 查找匹配该url的 Handler,并返回一个执行链

4、DispatcherServlet 再请求 处理器适配器(HandlerAdapter) 调用相应的 Handler 进行处理并返回 ModelAndView 给 DispatcherServlet

5、DispatcherServlet 将 ModelAndView 请求 ViewReslover(视图解析器)解析,返回具体 View

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

7、DispatcherServlet 将页面响应给用户

二、组件说明:

DispatcherServlet:前端控制器
用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心, 由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

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

Handler:处理器
Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。 由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

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

ViewResolver:视图解析器
View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址, 再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

View:视图
springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。 一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

完整详细的执行流程就是以上的过程,但是在学习的过程中往往不一定能记忆、理解、和清晰的表达出SpringMVC的执行流程。 老狐狸整理了一张简易版的流程图,供大家理解表达:


结语:以往都是看别人的博客进行学习技术,其中不乏有精华博客也有吊儿郎当的CV大法文章,所以决定将自己所学所用所整理的知识分享给大家,主要还是想为了后浪们少走些弯路,多些正能量的博客,如有错漏,欢迎指正,仅希望大家能在我的博客中学到知识,解决到问题,那么就足够了。谢谢大家!(转载请注明原文出处)