Spring工作流程描述
      1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
      2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;
      3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)
       4.  提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
      HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息
      数据转换:对请求消息进行数据转换。如String转换成Integer、Double等
      数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等
      数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中
      5.  Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;
      6.  根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;
      7. ViewResolver 结合Model和View,来渲染视图
      8. 将渲染结果返回给客户端。
Spring工作流程描述
    为什么Spring只使用一个Servlet(DispatcherServlet)来处理所有请求?
     详细见J2EE设计模式-前端控制模式
    Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?

符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。

Spring MVC 流程图相关推荐

  1. Spring MVC 流程图解析

    Spring MVC 流程图解析 Spring MVC工作流程图 图一 图二  SpringMVC工作流程描述 DispatcherServlet,HandlerMapping,HandlerExec ...

  2. Struts1、Struts2、Spring MVC 流程图,对比

    Struts1.Struts2.Spring MVC框架的区别 2011-01-23 15:12:32|  分类:Struts |  标签:struts1  struts2  spring  mvc框 ...

  3. Spring MVC工作流程图

    Spring MVC工作流程图 图一 图二  Spring工作流程描述       1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获:   ...

  4. Spring MVC原理

    摘要: Spring MVC工作流程图 springMVC工作流程图 图一 图二 开发工具 1.Eclipse IDE:采用Maven项目管理,模块化. 2.代码生成:通过界面方式简单配置,自动生成相 ...

  5. 写出我的第一个框架:迷你版Spring MVC

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:张丰哲 https://www.jianshu.com/p/ ...

  6. Spring MVC 原理探秘 - 一个请求的旅行过程

    1.简介 在前面的文章中,我较为详细的分析了 Spring IOC 和 AOP 部分的源码,并写成了文章.为了让我的 Spring 源码分析系列文章更为丰富一些,所以从本篇文章开始,我将来向大家介绍一 ...

  7. spring mvc 总结

    为什么80%的码农都做不了架构师?>>>    一.前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 ...

  8. spring mvc mysql配置_spring mvc配置数据库连接

    ACM 配置中心实战:Spring + MyBatis + Druid + ACM 很多基于 Spring MVC 框架的 Web 开发中,Spring + MyBatis + Druid 是一个黄金 ...

  9. Spring MVC - 配置Spring MVC

    写在前面的话: 现在开始一段新的学习历程:Spring MVC.还是按照原来的三步走学习模式(what.why.how)进行讲解. 1.Spring MVC是什么(what) Spring MVC属于 ...

最新文章

  1. hdu 5384 Danganronpa(字典树)
  2. 信息学奥赛一本通(1317:【例5.2】组合的输出)
  3. struts2启动报错com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
  4. 关于 System.getProperty
  5. 查询收尾、带子查询的数据更新、视图 4.12数据库课程实验
  6. 万能遥控程序c语言,51单片机万能红外遥控解码程序
  7. 【kafka】二、kafka安装
  8. c# 使用System.Media.SoundPlayer播放wav格式的声音文件
  9. 【mysql】 踩坑记录之derived(派生表)
  10. 不同类型怎么选择服务器
  11. 读书百客:《浣溪沙·谁念西风独自凉》赏析
  12. 网页 SEO 优化(搜索引擎优化)
  13. ML之ME/LF:机器学习之风控业务中常用模型监控指标CSI(特征稳定性指标)的简介、使用方法、案例应用之详细攻略
  14. ArcGIS基础实验操作100例--实验76按格网统计点要素
  15. 网易蜗牛读书产品体验报告(1.9.6版本)
  16. CTFshow-web爆破
  17. 三维GIS在现实领域的应用
  18. 转行做产品经理,应该具备那些条件?
  19. 查询每个单号物流时,如何将快递代收件归类为签收件
  20. Object类型转数组

热门文章

  1. oracle判断数据出现交叉,Oracle!你必须要知道的Knowledge points(一)
  2. 数据结构之树【完善中】
  3. 如何将Word与Endnote再次相互关联?
  4. js实现图片加载特效(从左到右,百叶窗,从中间到两边)
  5. 你的main函数规范吗?
  6. elementui的upload组件怎么获取上传的文本流、_抖音feed流直播间引流你还不会玩?实操讲解...
  7. ckeditor java 上传_CKEditor粘贴图片自动上传到服务器(Java版)
  8. 路由器下一跳地址怎么判断_网络基本功三:细说路由器
  9. docker重启后容器消失_docker设置固定ip地址
  10. 世上最简单的mysql_mysql这样学最简单|基本操作上