DispatcherServlet执行流程
spring MVC中的DispatcherServlet执行流程图如下:
文章插图
DispatcherServlet执行流程图
1、用户发送请求至前端控制器DispatcherServlet 。
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器 。
3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找) , 生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet 。
4、 DispatcherServlet调用HandlerAdapter处理器适配器 。
5、HandlerAdapter经过适配调用具体的处理器(Controller , 也叫后端控制器) 。
【DispatcherServlet执行流程】6、Controller执行完成返回ModelAndView 。
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet 。
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器 。
9、ViewReslover解析后返回具体View.
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中) 。
11、DispatcherServlet响应用户 。
spring MVC 9大组件:
1.HandlerMapping
HandlerMapping是用来查找Handler的 , 也就是处理器 。 标注了@RequestMapping的每个方法都可以看成是一个handler , Handler负责实际的请求处理 。 在请求到达后 , HandlerMapping的作用就是找到请求对应的Handler , 可以是类 , 也可以是方法 。
2.HandlerAdapter
HandlerAdapter是适配器 , 因为spring MVC中Handler是任何形式的 , 只要能处理请求即可 , 但是Servlet的doService方法的是固定形式的 , HandlerAdapter的作用就是让固定的Servlet处理方法调用Handler 。
3.HandlerExceptionResolver
HandlerExceptionResolver的作用就是根据异常设置ModelAndView , 主要用来处理handler
产生的异常 。
4. ViewResolver
ViewResolver作用是将String类型的视图名和Locale解析为View类型的视图 。
5.RequestToViewNameTranslator
RequestToViewNameTranslator这个组件的作用就是从请求中获取ViewName , 因为有些Handler处理完成后 , 没有设置View , 也没有ViewName , 因此需要这个组件来获取ViewName 。
6.LocaleResolver
LocaleResolver组件主要用来从请求中解析Locale , Locale表示一个区域 。
7.ThemeResolver
ThemeResolver这个组件主要用来解析主题 。 主题就是样式 , 图片及它们所形成的的显示效果的集合 。
8.MultipartResolver
MultipartResolver用来处理上传请求 , 将普通的request封装成MultipartHttpServletRequest 。
9.FlashMapManager
FlashMapManager用于管理FlashMap , FlashMap用于在redirect重定向中传递参数 。
- 美国跨境物流空运FBA双清到门是什么操作流程呢?
- 在IDEA中执行Flink应用时如何访问Dashboard?
- vue前端下载Excel文档配置流程
- Spring Bean加载流程分析(通过 XML 方式加载)
- 数据中台帮助数字化转型从流程优先走向数据优先
- SpringBoot运行流程源码分析:run方法流程及监听器
- Python 用自然语言/流程图描述算法并实现
- SpringBoot构造流程源码分析:Web应用类型推断
- 新功能Chrome Actions:直接在地址栏执行清理缓存等操作
- 经济观察网|内部数据流程打通带来考验,揭开美的工业互联网2.0面纱:平台架构包含四层能力