SpringMVC 执行流程:

  

执行流程简单分析:

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

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

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

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

  5.处理器适配器调用执行处理器

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

  7.处理器适配器直接将结果返回给中央调度器

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

  9.视图解析器将封装了的视图对象返回给中央调度器

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

  11.中央调度器响应浏览器

API简要说明

  1.DispathcerServlet

    中央调度器,也称为前端控制器,在 MVC 架构模式中充当控制器 C,DispatcherServlet 是整个流程的控制中心,

    由它调用诸如处理器映射器、处理器适配器、视图解析器等其它组 件处理用户请求。中央调度器的存在降低了组件之间的耦合度。

  2.HandlerMapping

    处理器映射器,负责根据用户请求找到相应的将要执行的 Handler,即处理器。即用于

    完成将用户请求映射为要处理该请求的处理器,并将处理器封装为处理器执行链传给中央调 度器。

  3.HandlerAdapter

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

    中央调度器会根据不同的处理器自动为处理 器选择适配器,以执行处理器。

  4.Handler

    处理器,也称为后端控制器,在 DispatcherServlet 的控制下 Handler 调用 Service 层对具 体的用户请求进行处理。

    由于 Handler 涉及到具体的用户业务请求,所以一般情况下需要程 序员根据业务需求自己开发 Handler。

  5.ViewResolver

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

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

    SpringMVC 框架提供了很多的 View 视图类型,包括:JstlView、RedirectView 等。一般 情况下需要通过页面标签或页面模版技术

    将模型数据通过页面展示给用户,需要由程序员根 据业务需求开发具体的页面。

DispathcerServlet的默认配置

  在DispathcerServlet的默认配置DispathcerServlet.properties文件中定义了一些默认映射器,适配器,解析器等

  查看这个配置文件可知:
  

2.SpringMVC执行流程的更多相关文章

  1. springmvc执行流程详细介绍

    1.什么是MVC MVC是Model View Controller的缩写,它是一个设计模式 2.springmvc执行流程详细介绍 第一步:发起请求到前端控制器(DispatcherServlet) ...

  2. springMVC执行流程及原理

    spring的MVC执行原理 1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求 进行真正的处理工作. 2.DispatcherSer ...

  3. SpringMvc执行流程及底层代码流程

    SpringMVC执行流程   01.客户端发送请求被我们在web.xml中配置DispatcherServlet(核心控制器)拦截: 默认执行DispatcherServlet中的 protecte ...

  4. 面试高频SpringMVC执行流程最优解(源码分析)

    文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star! 搜索关注微信公众号 码出Offer 领取各种学习资料! SpringMVC执行流程 SpringMVC概述 Spri ...

  5. SpringMVC执行流程总结

    SpringMVC 执行流程: 用户发送请求至前端控制器 DispatcherServlet DispatcherServlet 收到请求调用处理映射器 HandlerMapping 处理映射器根据请 ...

  6. 【阅读SpringMVC源码】手把手带你debug验证SpringMVC执行流程

    ✿ 阅读源码思路: 先跳过非重点,深入每个方法,进入的时候可以把整个可以理一下方法的执行步骤理一下,也可以,理到某一步,继续深入,回来后,接着理清除下面的步骤. ✿ 阅读本文的准备工作,预习一下Spr ...

  7. Servlet、Struts2、SpringMVC执行流程

    Servlet 有以下四个阶段: 1.加载和实例化 Servlet容器负责加载和实例化Servlet. 当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Ser ...

  8. SSM-SpringMVC-01:SpringMVC是什么?SpringMVC执行流程

     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- SpringMVC简介: SpringMVC也叫Spring Web  mvc,属于表现层的框架.Sprin ...

  9. springMVC执行流程及架构

    目录 springMVC简单执行流程 springMVC框架 注解实现 springMVC简单执行流程 springMVC框架 执行流程: 1.用户发送请求至前端控制器DispatcherServle ...

随机推荐

  1. Markdown 图片的简单处理

    0. 前言 最近写 md 文章的时候发现,在 markdown 里插入一些很长的图片的时候,会显得很不好看,于是去查了一下如何实现 markdown 里图片的并排显示,参考了各个博客内的内容和 mar ...

  2. 18 Flutter仿京东商城项目 商品详情顶部tab切换 顶部下拉菜单 底部浮动导航

    ProductContent.dart import 'package:flutter/material.dart'; import '../services/ScreenAdaper.dart'; ...

  3. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_9.RabbitMQ研究-工作模式-发布订阅模式-消费者

    消费者需要写两个消费者 定义邮件的类 复制以前的代码到邮件类里面进行修改 最上面 声明队列的名称和交换机的名称 监听修改为email 的队列的名称 手机短信接收端 复制一份email的接收端的代码 改 ...

  4. kafka----简单的脚本命令重点

    kafka命令如下: kafka-shell基本命令 在节点hadoop-2,hadoop-3,hadoop-5,启动kafka 启动命令如下 kafka-server-start.sh /usr/l ...

  5. vue+大文件断点续传

    根据部门的业务需求,需要在网络状态不良的情况下上传很大的文件(1G+).其中会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长,请求超时:3,传输中断,必须重新上传导致前功尽弃.解 ...

  6. WordPress创建多个page页面模板文件

    一般我们使用WordPress创建多个page页面模板文件,有两种方法: 一种是,创建page-$id.php文件 这样的文件是通过WordPress默认的链接查询来创建page页面模板文件,就是使用 ...

  7. Windows下遍历所有GIT目录更新项目脚本

    将下面代码保存为.bat文件 @echo off set cdir=%~dp0 for /f "delims=" %%i in ('dir /ad/b/s "%cdir% ...

  8. 终端复用器tmux基础使用

    简介对于经常操作Linux系统的同学来说,远程连接Linux服务器使用最多的工具是SecureCRT或者Xshell,而将此时的环境称为终端环境.Tmux是两个单词的缩写,即“Terminal Mul ...

  9. Red And Green

    #include <stdio.h> #include <string.h> #define LENGTH 50 /* * 1.字符序列中有一个字符肯定是分界点,它的左边全为红 ...

  10. [LuoguP2163][SHOI2007]园丁的烦恼_CDQ分治

    园丁的烦恼 题目链接:https://www.luogu.org/problem/P2163 数据范围:略. 题解: 树套树过不去,那就$CDQ$分治好了. 有点小细节,但都是$CDQ$分治必要的. ...