Spring MVC工作流程图

图一

图二

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 --spring MVC原理相关推荐

  1. Spring MVC的工作原理,我们来看看其源码实现

    前言 开心一刻 晚上陪老丈人吃饭,突然手机响了,我手贱按了免提--哥们:快出来喝酒!哥几个都在呢!我:今天不行,我现在陪老丈人吃饭呢.哥们:那你抓紧喝,我三杯白酒,把我岳父放倒了才出来的,你也快点.看 ...

  2. 请谈一下Spring MVC的工作原理是怎样的?

    请谈一下Spring MVC的工作原理是怎样的? ①客户端的所有请求都交给前端控制器DispatcherServlet来处理,它会负责调用系统的其他模块来真正处理用户的请求. ②DispatcherS ...

  3. spring mvc原理_Spring MVC的工作原理,我们来看看其源码实现

    来源:https://www.cnblogs.com/youzhibing/p/10695012.html 作者:youzhibing2904 遗留问题 在关于利用maven搭建ssm的博客,我们一起 ...

  4. spring MVC 及 AOP 原理

    SpringMVC工作原理 https://www.cnblogs.com/xiaoxi/p/6164383.html spring MVC 原理 https://blog.csdn.net/y199 ...

  5. 【Spring】Spring MVC原理及配置详解

    [Spring]Spring MVC原理及配置 1.Spring MVC概述: Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO ...

  6. Spring MVC的工作原理和机制

    Spring  MVC的工作原理和机制 参考: springMVC 的工作原理和机制 - 孤鸿子 - 博客园 https://www.cnblogs.com/zbf1214/p/5265117.htm ...

  7. spring boot + spring mvc 原理解析

    前言:spring mvc 是当前最为流行的一种java WEB 框架.在还没有spring boot以前,通常搭配tomcat等容器进行web项目的开发.而现在spring全家桶越来越完善.慢慢脱离 ...

  8. 在controller中调用指定参数给指定表单_第005课:Spring Boot 中MVC支持

    Spring Boot 的 MVC 支持主要介绍实际项目中最常用的几个注解,包括 @RestController. @RequestMapping.@PathVariable.@RequestPara ...

  9. spring(7)spring mvc 的高级技术

    [0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  "spring(7)spring mvc 的高级技术 ...

  10. Spring Mvc + Spring + Mybatis3 搭建Web工程详解

    Spring MVC + Spring + Mybatis3 搭建Web工程原理 可能需要用到参考: Maven创建web项目:http://blog.csdn.net/liangmaoxuan/ar ...

最新文章

  1. idea 查看jsp是否被引用_全网最全的IDEA热部署方案,看完再也不用加班了!
  2. NServiceBus教程-消息传递与处理
  3. 史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心
  4. kmp算法的c语言,KMP算法 纯C实现
  5. shell if多个条件判断_萌新关于Excel VBA中IF条件判断语句的一点心得体会
  6. linux下安装配置apache+php,linux下安装apache与php;Apache+PHP+MySQL配置攻略
  7. Idea / Eclipse中使用Lombok
  8. 细数嵌入式开发与通用系统开发的不同
  9. 计算机科学与技术的应用图,安徽农业大学计算机科学与技术视图及其应用.ppt...
  10. ProgressDialog弹出时的底色变暗(转)
  11. 基于php计算机等级考试系统毕业设计网站作品
  12. DB2数据库常用基本操作命令
  13. JSP九大内置对象详解
  14. 【Registration of 3D Point Clouds with Low Overlap】
  15. 电子电路基础 (12)——功率放大电路原理分析
  16. ubuntu系统设置开机启动项
  17. 电影文件的合并与分割
  18. n-gram代码实现源码
  19. 在线网络打字系统_打字比赛系统软件
  20. How Gradual Typing System Helps Us

热门文章

  1. Zsh与Oh-My-Zsh的安装与设置
  2. 八爪鱼,那些我踩过的坑
  3. Quartus II SignalTap使用
  4. 软件这么多,我还是爱这款
  5. 织梦模板修改后上传服务器,织梦模板更换后后台上传图片默认路径如何更改
  6. Pr两个视频合并后无法使用AU编辑音频的解决方法
  7. 怎么主动发起话题_】主动和男生聊天技巧有哪些 3招教你如何制造话题
  8. Matlab数学建模笔记
  9. 『Android基础入门』APP打包发布
  10. unravel AI图片动起来