具体执行逻辑如下:

浏览器提交请求到中央调度器.

中央调度器将请求转给处理器映射器.

处理器映射器根据请求, 找到请求对应的处理器, 并将其封装为处理器执行链返回给中央调度器.

中央调度器根据处理器执行链中的处理器, 找到能够执行该处理器的适配器.

适配器调用执行处理器.

处理器将处理结果以及要跳转的视图封装到一个对象ModelAndView中, 并将其返回给处理器适配器.

适配器将结果返回给中央调度器.

中央调度器调用视图解析器, 将ModelAndView中的视图名封装为视图对象.

视图解析器将封装了的视图对象返回给中央处理器.

中央调度器调用视图对象, 让其渲染, 即进行数据填充, 形成响应对象.

中央调度器响应浏览器.

DispatcherServlet

中央调度器, 它用来调用诸如处理器映射器, 适配器, 视图解析器等组件处理用户请求.

中央调度器的存在降低了组件之间的耦合.

HandlerMapping

处理器映射器, 负责根据用户请求找到对应的Handler, 即处理器, 并将处理器封装为处理器执行链返回给中央调度器.

HandleAdaptor

适配器模式, 可以扩展适配器来对更多类型的处理器进行执行, 中央调度器根据不同的处理器自动选择适配器, 以执行处理器.

Handler

处理器, 即后端控制器. 在DispatcherServlet控制下Handler调用Service层对具体用户请求进行处理.

Handler一般涉及的是用户具体的业务请求, 充当MVC中的Controller.

ViewResolver

视图解析器, 负责将处理结果生成View视图, ViewResolver首先将逻辑视图名解析为物理视图名, 即具体页面地址.

再生成View视图对象, 最后将处理结果通过页面形式展现给用户.

SpringMVC中提供了多种View视图类型, 例如: JstlView, RedirectView等等.

https://www.cnblogs.com/xiaotie666/p/9347372.html

Java SpringMVC框架学习(三)springMVC的执行流程的更多相关文章

  1. Java之路(三) 控制执行流程

    Java的控制语句设计的关键字有if-else while do-while for return break和switch. Java虽然保留goto关键字,但不支持goto语句. 1.true和f ...

  2. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  3. 手写SpringMVC框架(三)-------具体方法的实现

    续接前文 手写SpringMVC框架(二)结构开发设计 本节我们来开始具体方法的代码实现. doLoadConfig()方法的开发 思路:我们需要将contextConfigLocation路径读取过 ...

  4. SpringMVC框架学习笔记(1)——HelloWorld

    搭建SpringMVC框架 1.添加jar包 jsp-api.jar servlet-api.jar jstl.jar commons-logging-1.1.1.jar spring-beans-4 ...

  5. (转)SpringMVC学习(三)——SpringMVC的配置文件

    http://blog.csdn.net/yerenyuan_pku/article/details/72231527 读者阅读过SpringMVC学习(一)——SpringMVC介绍与入门这篇文章后 ...

  6. Java集合框架学习(一)List

    先附一张Java集合框架图. 从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Coll ...

  7. JAVA并行框架学习之ForkJoin

    当硬件处理能力不能按照摩尔定律垂直发展的时候,选择了水平发展,多核处理器已经广泛应用.未来随着技术的进一步发展,可能出现成百上千个处理核心,但现有的程序运行在多核心处理器上并不能得到较大性能的提升,主 ...

  8. Java集合框架学习

    集合框架 集合框架的目标 该框架必须是高性能的.基本集合(动态数组,链表,树,哈希表)的实现必须是高效的. 该框架允许 不同类型的集合,以类似的方式工作,具有高度的互操作性. 对一个集合的扩展和适应必 ...

  9. 【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.4.类加载及执行子系统的案例与实战

    1.概述 在Class文件格式与执行引擎这部分中 : 用户不能控制的:Class文件以何种格式存储,类型何时加载. 如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为 用户能控制的:字 ...

  10. 【深入理解JAVA虚拟机】第三部分.虚拟机执行子系统.3.函数调用与执行

    这章原名叫“虚拟机字节码执行引擎”,实际就是讲的函数如何调用和执行的. 1.概述 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力, 其区别是物理机的执行引擎是直接建立在处理器. 硬 ...

随机推荐

  1. 阿里云 ECS 监控报警设置

    1.阿里云监控项说明 https://helpcdn.aliyun.com/document_detail/43505.html 2.监控设置 3.报警规则 4.设置阈值 5.确定即可. 6.效果图

  2. python3解析网页经过base64编码后的图片

    有时候我们打开网页看到的图片不是普通的url,例如:www.baidu.com/static/2.jpg,而是经过base64方式加密过的路径:例如:data:img/jpg;base64,/9j/4 ...

  3. vsftp在防火墙开启需要开放的端口

    1.开放tcp端口 firewall-cmd --zone=public --add-port=20/tcp --permanent firewall-cmd --zone=public --add- ...

  4. [转]申瓯 JSY2000-06 程控电话交换机呼叫转移设置

    说明:若申瓯程控电话交换机分机有事不在位置上或遇忙分机正忙时为使某些重要来话不丢失,可设置将呼入本机的电话转移至其他分机及公网固定电话或手机.电话交换机使用了本功能不管分机用户在什么地方都能接听到办公 ...

  5. Allegro怎么对元器件进行对齐

    Allegro怎么对元器件进行对齐? Ø选择操作模式,点击菜单栏setup-Application Mode,然后选择Placement Edit模式,进行操作: Ø然后Find面板勾选器件选项,sy ...

  6. 一个Boss直聘机器人, 自动回复发简历

    goBoss 基佬github地址 这是基于go语言编写的一款boss直聘机器人软件(牛人版).附上Python版本, 无需配置Go环境, 我会提供windows和macos的可执行程序.不喜勿喷O( ...

  7. kettle开源项目部署文档

    kettle开源项目部署文档 1.kettle简介 kettle是一款国外开源的ETL(Extract Transform Load)工具,纯java编写,可以在Windows.Linux.Unix上 ...

  8. FFMpeg笔记(六) 滤镜命名规则及使用libavfilter对视频尺寸进行裁切

    在ffmpeg框架中,滤镜(filter)功能通过libavfilter库实现. 一个filter可以同时有多个输入和输出.以图为例: 图中的一系列操作共使用了四个filter,分别是    spli ...

  9. 在Linux系统中安装caffe

    学习深度学习已经很久了,但一直没有自己动手安装过caffe,因为工作需要,需要在linux系统中安装caffe,因此,在这里对安装过程进行记录. caffe配置起来比tensorflow更麻烦一些,我 ...

  10. Bootstrap 样式设计 栅格系统

    .col-xs- 超小屏幕 手机 (<768px) .col-sm- 小屏幕 平板 (≥768px) .col-md- 中等屏幕 桌面显示器 (≥992px) .col-lg- 大屏幕 大桌面显 ...