(一)、整体流程

SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。

具体步骤:
1、 首先用户发送请求到前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的 1、2 步骤;
2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在 Spring Web MVC 中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名);图中的 3、4、5 步骤;
3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的步骤 6、7;
4、 前端控制器再次收回控制权,将响应返回给用户,图中的步骤 8;至此整个结束。

(二)、核心流程

具体步骤:
第一步:发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找)
第三步:处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器对象),通过这种策略模式,很容易添加新的映射策略
第四步:前端控制器调用处理器适配器去执行Handler
第五步:处理器适配器HandlerAdapter将会根据适配的结果去执行Handler
第六步:Handler执行完成给适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView (ModelAndView是springmvc框架的一个底层对象,包括 Model和view)
第八步:前端控制器请求视图解析器去进行视图解析 (根据逻辑视图名解析成真正的视图(jsp)),通过这种策略很容易更换其他视图技术,只需要更改视图解析器即可
第九步:视图解析器向前端控制器返回View
第十步:前端控制器进行视图渲染 (视图渲染将模型数据(在ModelAndView对象中)填充到request域)
第十一步:前端控制器向用户响应结果

(三)总结 核心开发步骤
1、 DispatcherServlet 在 web.xml 中的部署描述,从而拦截请求到 Spring Web MVC
2、 HandlerMapping 的配置,从而将请求映射到处理器
3、 HandlerAdapter 的配置,从而支持多种类型的处理器
注:处理器映射求和适配器使用纾解的话包含在了注解驱动中,不需要在单独配置
4、 ViewResolver 的配置,从而将逻辑视图名解析为具体视图技术
5、 处理器(页面控制器)的配置,从而进行功能处理
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)

参考:https://www.cnblogs.com/leskang/p/6101368.html

还可阅读:

https://www.cnblogs.com/jiyukai/p/7629498.html

https://www.cnblogs.com/hujiapeng/p/5765636.html

转载于:https://www.cnblogs.com/arrows/p/10510392.html

springMVC的流程相关推荐

  1. SpringMVC运行流程分析

    一.运行流程图 下面是 SpringMVC 运行流程的分析图,包括了拦截器的调用过程,目标资源的处理以及异常处理. 二.运行流程中的相关组件 在上面的流程图中有几个比较重要的组件,下面大概描述一下其对 ...

  2. springmvc执行流程(简述易懂)

    Spring MVC框架的控制器 控制器的主要作用就是处理特定URL发过来的HTTP请求,然后进行业务逻辑处理,将结果返回给某个特定的视图. springmvc执行流程 1:客户端请求提交到Dispa ...

  3. springMVC请求流程详解

    SpringMVC框架是一个基于请求驱动的Web框架,并且使用了'前端控制器'模型来进行设计, 再根据'请求映射规则'分发给相应的页面控制器进行处理.核心流程: 第一步:发起请求到前端控制器(Disp ...

  4. SpringMVC 执行流程解析

    SpringMVC 执行流程解析 注:SpringMVC 版本 5.2.15 上面这张图许多人都看过,本文试图从源码的角度带大家分析一下该过程. 1. ContextLoaderListener 首先 ...

  5. springmvc工作流程_SpringMVC工作原理

    买了好多书,但是没有一本是看完的,这是看完的第一本书,虽然页数不多.技术早就用了老多遍了,还是总结一下吧! 一.MVC模式 MVC是 model.view.和controller的缩写,分别代表web ...

  6. SpringMVC工作流程描述(简易版本)

    1.SpringMVC工作流程图: 2.SpringMVC工作流程描述: (1)用户端将请求统一提交到DispatcherServlet: (2)DispatcherServlet会将请求交给Hand ...

  7. 【 第六章 拦截器,注解配置springMVC,springMVC执行流程】

    第六章 拦截器,注解配置springMVC,springMVC执行流程 1.拦截器: ①springMVC中的拦截器用于拦截控制器方法的执行. ②springMVC的拦截器需要实现HandlerInt ...

  8. SpringMVC开发流程

    SpringMVC开发流程 1. SpringMVC概述 1.1 SpringMVC概念 1.2 SpringMVC原理 1.3 SpringMVC优势 2. MVC模式回顾 3. 入门程序 3.1 ...

  9. springmvc处理流程

    SpringMVC核心处理流程: 1.DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器 2.HandlerMapping处理器映射器,根据请求 ...

  10. 口述完SpringMVC执行流程,面试官就让同事回家等消息了

    Srping MVC 执行流程真的是老生常谈的话题了,最近同事小刚出去面试,前面面试官相继问了几个 Spring 相关的问题,但当面试官问他,你知道 Srping MVC 的执行流程吗?小刚娴熟的巴拉 ...

最新文章

  1. cv2.error: OpenCV(4.0.0): dst.data == (uchar*)dst_ptr in function 'cvShowImage'
  2. SQLServer存储引擎——05.索引的结构和分类
  3. .dat数据文件怎么打开_U盘坏了怎么恢复数据?恢复数据的方法
  4. c++ 字符串数组长度排序_数组 | 后缀数组的求法及应用
  5. 简单使用Modelsim跑个仿真
  6. 决策树编程python_Python如何制定决策:编程中的控制流简介
  7. Linux操作系统使用基础03:Linux文件权限与目录配置
  8. java中选择排序,冒泡排序和二分法查找学习记录
  9. Luogu1156 垃圾陷阱
  10. 多图详解IT架构师完整知识体系及技术栈
  11. 基于ROS的语音控制机器人(一):基本功能的实现
  12. 数字图像处理基础(3)--图像合成
  13. R语言while循环计算圆周率
  14. 转载 sap FI-CO总账科目简析
  15. 微型计算机与接口技术答案,微机原理及接口技术-习题答案
  16. 基于Sentinel-2的杞县大蒜提取试验
  17. fatal:unable to create “D:/“ file existsanother git process seems to be running in this repository
  18. 树莓派蓝牙连接手机显示没有服务器,求助树莓派蓝牙连接问题
  19. Unity UGUI Button不响应鼠标点击的一种不常见原因
  20. 卧式铣床主传动系统设计建模及运动仿真

热门文章

  1. oracle dbms调度程序,Oracle 调度程序作业( dbms_scheduler )(zt)
  2. c语言有啥简单的小程序,c语言-简单小程序-简单算法
  3. jmeter接口测试----8用户定义的变量
  4. Redis笔记(七):Redis应用场景
  5. 并行程序设计模式--Master-Worker模式
  6. bootstrap学习5-栅格系统
  7. [LintCode] Reverse Pairs 翻转对
  8. LintCode: Median of two Sorted Arrays
  9. 将表达式树转换成中缀表达式☆
  10. MySQL数据库安装Version5.7.25