Spring MVC执行流程
SpringMVC是隶属于Spring Web中的一部分, 属于表现层的框架.
其使用了MVC架构模式的思想, 将Web层进行职责解耦, 使用请求-响应模型简化Web开发

SpringMVC通过中央调度器DispatcherServlet,来调用MVC的三大件:Controller、Model、View。
保证MVC的每一个组件只与DispatcherServlet耦合, 彼此之间独立运行, 降低程序的耦合性。
具体执行逻辑如下:
- 浏览器提交请求到中央调度器.
- 中央调度器将请求转给处理器映射器.
- 处理器映射器根据请求, 找到请求对应的处理器, 并将其封装为处理器执行链返回给中央调度器.
- 中央调度器根据处理器执行链中的处理器, 找到能够执行该处理器的适配器.
- 适配器调用执行处理器.
- 处理器将处理结果以及要跳转的视图封装到一个对象ModelAndView中, 并将其返回给处理器适配器.
- 适配器将结果返回给中央调度器.
- 中央调度器调用视图解析器, 将ModelAndView中的视图名封装为视图对象.
- 视图解析器将封装了的视图对象返回给中央处理器.
- 中央调度器调用视图对象, 让其渲染, 即进行数据填充, 形成响应对象.
- 中央调度器响应浏览器.

DispatcherServlet
中央调度器, 它用来调用诸如处理器映射器, 适配器, 视图解析器等组件处理用户请求.
中央调度器的存在降低了组件之间的耦合.
HandlerMapping
处理器映射器, 负责根据用户请求找到对应的Handler, 即处理器, 并将处理器封装为处理器执行链返回给中央调度器.
HandleAdaptor
适配器模式, 可以扩展适配器来对更多类型的处理器进行执行, 中央调度器根据不同的处理器自动选择适配器, 以执行处理器.
Handler
处理器, 即后端控制器. 在DispatcherServlet控制下Handler调用Service层对具体用户请求进行处理.
Handler一般涉及的是用户具体的业务请求, 充当MVC中的Controller.
ViewResolver
视图解析器, 负责将处理结果生成View视图, ViewResolver首先将逻辑视图名解析为物理视图名, 即具体页面地址.
再生成View视图对象, 最后将处理结果通过页面形式展现给用户.
SpringMVC中提供了多种View视图类型, 例如: JstlView, RedirectView等等.
Spring MVC执行流程的更多相关文章
- 一文读懂Spring MVC执行流程
说到Spring MVC执行流程,网上有很多这方面的文章介绍,但是都不太详细,作为一个初学者去读会有许多不理解的地方,今天这篇文章记录一下我学习Spring MVC的心得体会 话不多说,先上图: ...
- Java——一文读懂Spring MVC执行流程
说到Spring MVC执行流程,网上有很多这方面的文章介绍,但是都不太详细,作为一个初学者去读会有许多不理解的地方,今天这篇文章记录一下我学习Spring MVC的心得体会 话不多说,先上图: Sp ...
- Spring MVC执行的流程
1.Spring MVC应用的开发步骤 a.在web.xml文件中定义前端控制器DispatcherServlet来拦截用户请求.由于Web应用是基于请求/响应架构的应用,所以 不管哪个MVC Web ...
- spring mvc处理流程概述
大部分Java应用都是Web应用,展现层是Web应用不可忽略的重要环节.Spring为展现层提供了一个优秀的Web框架-Spring MVC.和众多其他Web框架一样,它基于MVC设计理念,此外,它采 ...
- (4.1)Spring MVC执行原理和基于Java的配置过程
一.Spring MVC执行原理和基于Java配置的配置过程 (一)Spring MVC执行过程,大致为7步. 所有的请求都会经过Spring的一个单例的DispacherServlet. Dispa ...
- Spring MVC 编程流程步骤
Spring MVC 编程流程步骤 1. 建立Maven工程 2. 添加Spring MVC依赖 <dependencies> <dependency> <groupId ...
- spring Mvc 执行原理 及 xml注解配置说明 (六)
Spring MVC 执行原理 在 Spring Mvc 访问过程里,每个请求都首先经过 许多的过滤器,经 DispatcherServlet 处理; 一个Spring MVC工程里,可以配置多个的 ...
- Spring MVC执行原理和基于Java的配置过程
一.Spring MVC执行原理和基于Java配置的配置过程 (一)Spring MVC执行过程,大致为7步. 所有的请求都会经过Spring的一个单例的DispacherServlet. Dispa ...
- Spring MVC简介 2.5 Spring MVC执行的流程
package org.fkit.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http ...
随机推荐
- WinXP系统下Opencms的安装与配置
1.WinXP系统下安装opencms (1)mysql已安装5.1.40 cmd命令行:mysql -uroot -proot (2)OpenCMS在安装时要求MySQL系统变量“max_al ...
- Java经典编程题50道之四十九
计算某字符串中子串出现的次数. public class Example49 { public static void main(String[] args) { String s ...
- 权限认证 cookie VS token
权限认证 cookie VS token 我前公司的应用都是 token 授权的,现公司都是维护一个 session 确认登录状态的.那么我在这掰扯掰扯这两种权限认证的方方面面. 工作流程 先说 co ...
- Maven中模块的聚合以及对jar包的继承
我需要将之前的A B C三个模块聚合到一个一个工程中ABC项目中 pom.xml文件中应该这样配置 1.修改packaging里面的配置 <!-- 用于聚合这个项目的时候应该将packaging ...
- the c programing language 学习过程3
ControlFlow 控制流 specify 指定 compound statement 复合语句 cryptic有隐含意义的 ambiguity歧义 robust稳健 disintegratio ...
- Caffe可视化之VisualDL
Visual DL是由 PaddlePaddle 和 ECharts 合作推出的一款深度学习可视化工具,其能够可视化scalar.参数分布.模型结构.图像等.底层采用C++编写,上层SDK以pytho ...
- js获取文本的行数
<div class="txt" style="line-height:30px">我是文字<br>我是文字<br>我是文字 ...
- DAVINCI DM6446 开发攻略——V4L2视频驱动和应用分析
针对DAVINCI DM6446平台,网络上也有很多网友写了V4L2的驱动,但只是解析Montavista linux-2.6.10 V4L2的原理.结构和函数,深度不够.本文决定把Montavis ...
- WebService之CXF注解报错(三)
WebService之CXF注解 1.具体错误如下 五月 04, 2014 11:29:28 下午 org.apache.cxf.wsdl.service.factory.ReflectionServ ...
- (七)java类和对象
一个类定义一个新的数据类型,也就是定义了一个逻辑框架,定义了它的成员之间的关系.可以通过这种类型来声明该类型的对象,通过new关键词来实例化对象,也就是为该类型的对象动态的分配物理内存空间,这个分配过 ...