首页 > 其他分享 >DispatcherServlet工作原理,处理流程

DispatcherServlet工作原理,处理流程

时间:2022-09-04 01:34:22浏览次数:73  
标签:控制器 请求 流程 视图 处理程序 原理 DispatcherServlet 模型

工作原理

DispatcherServlet工作原理

1. 当DispatcherServlet接到请求时,他先回查找适当的处理程序来处理请求。DispatcherServlet通过一个或者多个处理程序映射,将每个请求映射到处理程序中。处理程序映射配置在web应用程序的上下文中,是实现了HandlerMapping接口的Bean。它负责为请求返回一个适当的处理程序(也就是Controller)。处理程序映射通常根据请求的URL将请求映射到处理程序(Controller)。 

2. 一旦DispatcherServlet选择了适当的控制器,它就会调用这个控制器来处理请求。 

3. 控制器处理完请求后,会将模型和视图名(有时候是视图对象)返回给DispatcherServlet。模型包含了控制器要传递给视图进行显示的属性。如果返回的是视图名称,它会被解析成视图对象再进行呈现。绑定模型和视图的基本类是ModelAndView

4. 当DispatcherServlet接收到模型和视图名称时,它会将逻辑视图名称解析成视图对象再进行呈现。DispatcherServlet从一个或者多个视图解析器中解析视图。视图解析器配置在Web应用程序上下文中,是实现了ViewResolver接口的Bean。它的任务是根据逻辑视图名称返回试图对象。

5. 一旦DispatcherServlet将视图名称解析称为试图对象,它就会呈现视图对象,并传递控制器返回的模型。视图的任务是将模型属性展示给用户。

处理流程

在配置好DispatcherServlet之后,当请求交由该DispatcherServlet处理时,其处理流程如下:

1、构造WebApplicationContext被作为属性绑定到请求上以备控制器和其他元素使用。绑定的默认key为DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE。

2、绑定地区解析器到请求上以备解析地区时使用,比如生成视图和准备数据时等等。如果不需要解析地区,则无需使用。

3、绑定主题解析器到请求上以备视图等元素加载主题时使用。

4、如果配置了文件流解析器,则会检测请求中是否包含文件流,如果包含,则请求会被包装为MultipartHttpServletRequest供其他元素做进一步处理。这一部分将会在后面的章节中进行详细说明。

5、搜索合适的处理器处理请求。找到的话,与该处理器相关联的执行链(前拦截器、后拦截器、控制器等)会被执行以准备模型数据或生成视图。

6、如果返回了模型对象,下一步就会进行视图的渲染。如果没有任何模型对象返回,例如因为安全的原因被前拦截器或后拦截器拦截了请求,那么就没有视图会生成,因为该请求已经结束了。

标签:控制器,请求,流程,视图,处理程序,原理,DispatcherServlet,模型
From: https://www.cnblogs.com/bkycnd/p/16654130.html

相关文章

  • DispatcherServlet初始化顺序详解
    1. Web容器启动时将调用HttpServletBean的init方法publicabstractclassHttpServletBeanextendsHttpServletimplementsEnvironmentAware{@Overridepubli......
  • 0.一套实战的流程
    引入场景依赖https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter查看自动配置了哪些(选做)自己分......
  • 11.自动配置原理入门-自动配置流程-场景
    简单分析一下场景中的自动配置的流程就拿springboot-autoconfiguration中的web场景来简单分析进入web的servlet中的DispatcherServletAutoConfiguration    第......
  • UAC实现原理
    UAC实现原理:当用户登录系统成功后,系统会为用户生成一个accessToken。该用户调用的每一个进程都会有一个AccessTokencopy。当进程要访问某个securableobject时,系统会......
  • Django CBV源码执行流程
         ......
  • 【组成原理-存储】存储器的相关知识
    目录1主存储器1.1随机存储器RAM1.2只读存储器ROM1.3串行访问存储器1.4多模块存储器2字长和存储容量2.1存储单位2.2字长补充:不同机器下的数据类型长度2.3存储容......
  • 10.自动配置原理入门
    @SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters={@Filter(type=FilterType.CUSTOM,classes=TypeExcludeFilter.class),......
  • 4.了解自动配置原理-自动配置
    1.当导入某个场景,比如web场景,就会自动导入web相关的所有依赖   tomcat也导入了,那就说明tomcat是内嵌到springboot中了 自动配好SpringMVC引入SpringMVC全......
  • 3.了解自动配置原理-依赖版本管理
    在编写springboot的时候只需要导入starter-web,关于wab的所有依赖都进来了,为什么会进来1.父项目做依赖管理在每个项目中的pom.xml都会存在这么一个配置依赖管理<p......
  • 项目管理流程实例
    每个公司的项目管理流程都不尽相同,但是都值得参考,画出流程不意味就是条条框框了,而是让大家有章可循,流程不是限制效率而是促进整体效率,并且流程是需要持续迭代优化的。 ......