SpringMVC系列(十四)Spring MVC的运行流程
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的运行流程相关推荐
- springmvc三十二:spring mvc的运行流程
1. 所有的请求,前端控制器(DispatcherServlet)收到请求,调用doDispatch进行处理 2. 根据HandlerMapping中保存的请求映射信息找到,处理当前请求的,处理器执行 ...
- Redis系列(十四)、Redis6新特性之RESP3与客户端缓存(Client side caching)
Redis6引入新的RESP3协议,并以此为基础加入了客户端缓存的新特性,在此特性下,大大提高了应用程序的响应速度,并降低了数据库的压力,本篇就带大家来看一下Redis6的新特性:客户端缓存. 目录 ...
- Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录
文章目录 一.前言 二.清除git仓库的所有提交记录 本节速览 清除git仓库的所有提交记录 一.前言 参考安装Git 详细安装教程 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多 ...
- Reflex WMS入门系列十四:在Reflex系统上创建一个Receipt
Reflex WMS入门系列十四:在Reflex系统上创建一个Receipt 很多情况下,使用Reflex WMS系统的企业都会使用某个ERP系统,比如SAP,Oracle EBS等,用以支持企业供应 ...
- 面试官:Spring MVC的处理流程是怎样的?
提起Spring MVC,你的第一印象是什么?一个简化Web开发的轻量级框架?实际上,现代开发过程中,开发流程与开发效率的不断提高,同时伴随着Restful与Json相结合的方式的兴起,使得多个设备跨 ...
- Spring MVC的处理流程详解
本文来说下Spring MVC 的处理流程是怎样的 文章目录 Spring MVC概述 Spring MVC的处理流程 曾经的王者-Servlet 想要更进一步 Spring MVC-两级控制器方式 ...
- Spring MVC中数据绑定流程和原理
Spring MVC不支持表单日期字符串和日期类型之间的转换 Spring MVC数据绑定的流程(Spring MVC通过反射 机制对目标处理方法进行解析) 1.Spring MVC将ServletR ...
- 接收请求处理流程_从Tomcat入口了解Spring MVC的请求处理流程(2)问题答疑
在上一篇 从Tomcat入口了解Spring MVC的请求处理流程 中主要介绍了spring mvc如何使用以及spring的DispatcherServlet加载细节以及URL映射配置,但是还是遗留 ...
- 请简述Spring MVC的执行流程
需要面试文档可S我 今天我给大家介绍一下Spring MVC的详细执行流程.我把Spring MVC的执行流程划分为三个阶段,配置阶段.初始化阶段和运行阶段. 我整理了一张完整的执行流程图,需要高清图 ...
最新文章
- ThreadPoolExecutor使用错误导致死锁
- JSP+Servlet+Ajax实现用户增删改查的例子
- Swift语言中如何使用JSON数据教程
- Python安装、配置图文详解
- TeeChart.Direct2D.dll的使用
- oracle锁表怎么解决,Oracle锁表问题的简捷处理技巧
- 试析C#编程语言的特点及功能
- 微软中国回应关闭实体直营店:中国市场保持正常营运
- 分析单点登录(流程图与数据安全)
- 金蝶K3 Wise单据导入导出工具使用说明
- zyb的面试 Hdu6468
- 计算机所有以太网适配的ip,以太网没有有效的ip配置怎么办
- 给初学者推荐的10个Python免费学习网站!赶紧收藏吧!
- dic={key:“字典”}
- c#中的关键字out是什么意思?ref是什么意思?它们有什么区别?
- 网关服务器性能,服务网关API路由导致的性能问题分析
- 双目摄像头标定和数据
- undeclared name问题,一定要仔细啊
- 网易云音乐搜索引擎 python+whoosh---(2)搜索引擎
- 国内申请NewBing账号【不排队】
热门文章
- mysql启动提示 access denied for user root@localhost(using password:YES) 解决办法总结
- java决策_机Java解决决策表
- 协议圣经 五 rtsp client
- 【clickhouse】clickhouse 单机安装 集群安装
- 【Flink】Flink Checkpoint 问题排查实用指南
- 【Elasticsearch】使用自适应副本选择改进弹性搜索的响应延迟
- Maven : maven异常记录-must be unique maven duplicate declaration of version
- Flink : Flink run yarn 报错 could not build the program from jar file -ynm
- 95-080-046-源码-启动-flink-daemon.sh
- 【hadoop】ipc.Client: Retrying connect to server: xxx:8020. Already tried 37 time(s) RetryPolicy[Multi