springmvc核心流程

核心流程及配置

核心流程

执行流程

  • 用户发送请求到DispatcherServlet前端控制器,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制
  • DispatcherServlet调用HandlerMapping映射处理器,根据url找到具体的处理器,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)返回给DispatcherServlet,通过策略模式,很容易添加新的映射策略
  • DispatcherServlet通过HandlerAdapter处理适配器来调用处理器,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配设计模式的应用,从而很容易支持很多类型的处理器
  • HandlerAdapter进行处理器功能处理方法的调用(参数绑定和转换),HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理,并返回一个ModelAndView对象
  • DispatcherServlet将ModelAndView对象传给ViewResolver视图解析器进行处理,ViewResolver将把逻辑视图解析为具体的View,通过这种策略模式,很容易更换其他视图技术
  • View进行渲染,View会根据传进来的Model模型进行渲染,此处的Model实际是一个Map
  • 返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户

spring3.2新功能

基础抽象类AbstractDispatcherServletInitializer可以进行配置DispatcherServlet,而不必使用web.xml来进行配置,同样,对于基于java方式的配置,可以使用AbstractAnnotationConfigDispatcherServletInitializer

https://zhhll.icu/2020/框架/springmvc/基础/1.springmvc核心流程/

本文由mdnice多平台发布

相关推荐
七星静香8 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员9 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU9 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie612 分钟前
在IDEA中使用Git
java·git
Elaine20239127 分钟前
06 网络编程基础
java·网络
G丶AEOM29 分钟前
分布式——BASE理论
java·分布式·八股
落落鱼201330 分钟前
tp接口 入口文件 500 错误原因
java·开发语言
想要打 Acm 的小周同学呀31 分钟前
LRU缓存算法
java·算法·缓存
镰刀出海34 分钟前
Recyclerview缓存原理
java·开发语言·缓存·recyclerview·android面试
阿伟*rui3 小时前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel