Spring MVC的运行流程图:

1.首先看能不能发送请求到Spring MVC的DispatcherServlet的url-pattern
2.如果能发送请求,就看在Spring MVC中是否存在对应的映射
不存在映射:就看是否配置了<mvc:default-servlet-handler/>,如果没有配置<mvc:default-servlet-handler/>就在控制台打印错误日志:No mapping found for HTTP request with URI [/xx/xx] in DispatcherServlet,同时转向404页面;如果配置了<mvc:default-servlet-handler/>就转向目标资源
存在映射:由HandlerMapping获取HandlerExectionChain对象,获取HandlerAdaper对象,调用拦截器的Prehandle方法,调用目标handler的目标方法得到ModelAndView对象
3.调用拦截器的postHandle方法
存在异常:由异常解析器HandleExceptionResolver组件处理异常,得到新的ModelAndView对象,由视图解析器ViewReslover组件根据ModelAndView对象得到实际的view渲染视图
不存在异常:由视图解析器ViewReslover组件根据ModelAndView对象得到实际的view渲染视图
4. 调用拦截器的afterCompletion方法

说明:

  • 用户请求首先发送到前端控制器DispatcherServlet,DispatcherServlet根据请求的信息来决定使用哪个页面控制器Controller(也就是我们通常编写的Controller)来处理该请求。找到控制器之后,DispatcherServlet将请求委托给控制器去处理。
  • 接下来页面控制器开始处理用户请求,页面控制器会根据请求信息进行处理,调用业务层等等,处理完成之后,会把结果封装成一个ModelAndView返回给DispatcherServlet。
  • 前端控制器DispatcherServlet接到页面控制器的返回结果后,根据返回的视图名选择相应的视图模板(ViewReslover),并根据返回的数据进行渲染。
  • 最后前端控制器DispatcherServlet将结果返回给用户。

转载于:https://www.cnblogs.com/leeSmall/p/7860473.html

SpringMVC系列(十四)Spring MVC的运行流程相关推荐

  1. springmvc三十二:spring mvc的运行流程

    1. 所有的请求,前端控制器(DispatcherServlet)收到请求,调用doDispatch进行处理 2. 根据HandlerMapping中保存的请求映射信息找到,处理当前请求的,处理器执行 ...

  2. Redis系列(十四)、Redis6新特性之RESP3与客户端缓存(Client side caching)

    Redis6引入新的RESP3协议,并以此为基础加入了客户端缓存的新特性,在此特性下,大大提高了应用程序的响应速度,并降低了数据库的压力,本篇就带大家来看一下Redis6的新特性:客户端缓存. 目录 ...

  3. Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录

    文章目录 一.前言 二.清除git仓库的所有提交记录 本节速览 清除git仓库的所有提交记录 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 ...

  4. Reflex WMS入门系列十四:在Reflex系统上创建一个Receipt

    Reflex WMS入门系列十四:在Reflex系统上创建一个Receipt 很多情况下,使用Reflex WMS系统的企业都会使用某个ERP系统,比如SAP,Oracle EBS等,用以支持企业供应 ...

  5. 面试官:Spring MVC的处理流程是怎样的?

    提起Spring MVC,你的第一印象是什么?一个简化Web开发的轻量级框架?实际上,现代开发过程中,开发流程与开发效率的不断提高,同时伴随着Restful与Json相结合的方式的兴起,使得多个设备跨 ...

  6. Spring MVC的处理流程详解

    本文来说下Spring MVC 的处理流程是怎样的 文章目录 Spring MVC概述 Spring MVC的处理流程 曾经的王者-Servlet 想要更进一步 Spring MVC-两级控制器方式 ...

  7. Spring MVC中数据绑定流程和原理

    Spring MVC不支持表单日期字符串和日期类型之间的转换 Spring MVC数据绑定的流程(Spring MVC通过反射 机制对目标处理方法进行解析) 1.Spring MVC将ServletR ...

  8. 接收请求处理流程_从Tomcat入口了解Spring MVC的请求处理流程(2)问题答疑

    在上一篇 从Tomcat入口了解Spring MVC的请求处理流程 中主要介绍了spring mvc如何使用以及spring的DispatcherServlet加载细节以及URL映射配置,但是还是遗留 ...

  9. 请简述Spring MVC的执行流程

    需要面试文档可S我 今天我给大家介绍一下Spring MVC的详细执行流程.我把Spring MVC的执行流程划分为三个阶段,配置阶段.初始化阶段和运行阶段. 我整理了一张完整的执行流程图,需要高清图 ...

最新文章

  1. ThreadPoolExecutor使用错误导致死锁
  2. JSP+Servlet+Ajax实现用户增删改查的例子
  3. Swift语言中如何使用JSON数据教程
  4. Python安装、配置图文详解
  5. TeeChart.Direct2D.dll的使用
  6. oracle锁表怎么解决,Oracle锁表问题的简捷处理技巧
  7. 试析C#编程语言的特点及功能
  8. 微软中国回应关闭实体直营店:中国市场保持正常营运
  9. 分析单点登录(流程图与数据安全)
  10. 金蝶K3 Wise单据导入导出工具使用说明
  11. zyb的面试 Hdu6468
  12. 计算机所有以太网适配的ip,以太网没有有效的ip配置怎么办
  13. 给初学者推荐的10个Python免费学习网站!赶紧收藏吧!
  14. dic={key:“字典”}
  15. c#中的关键字out是什么意思?ref是什么意思?它们有什么区别?
  16. 网关服务器性能,服务网关API路由导致的性能问题分析
  17. 双目摄像头标定和数据
  18. undeclared name问题,一定要仔细啊
  19. 网易云音乐搜索引擎 python+whoosh---(2)搜索引擎
  20. 国内申请NewBing账号【不排队】

热门文章

  1. mysql启动提示 access denied for user root@localhost(using password:YES) 解决办法总结
  2. java决策_机Java解决决策表
  3. 协议圣经 五 rtsp client
  4. 【clickhouse】clickhouse 单机安装 集群安装
  5. 【Flink】Flink Checkpoint 问题排查实用指南
  6. 【Elasticsearch】使用自适应副本选择改进弹性搜索的响应延迟
  7. Maven : maven异常记录-must be unique maven duplicate declaration of version
  8. Flink : Flink run yarn 报错 could not build the program from jar file -ynm
  9. 95-080-046-源码-启动-flink-daemon.sh
  10. 【hadoop】ipc.Client: Retrying connect to server: xxx:8020. Already tried 37 time(s) RetryPolicy[Multi