Spring MVC的工作流程
前端控制器(DispatcherServlet): (不需要我们开发)接收请求,响应结果,相当于转发器,中央处理器。减少了其它组件之间的耦合度。
springmvc.xml是SpringMVC的一个全局配置文件,配置
处理器映射器(HandlerMapping): (不需要我们开发) 根据请求的 url 查找 Handler
处理器适配器(HandlerAdapter): 按照特定规则(HandlerAdapter要求的规则)去执行Handler
视图解析器(ViewResolver): (不需要我们开发)根据逻辑视图名解析成真正的视图(view)
Handler(处理器,平常叫做controller): 编写Handler时按照 HandlerAdapter 的要求去做,这样适配器才可以去正确执行Handler
<!-- 注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!-- 注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> <!-- 实际开发时,使用mvc:annotation-driven,它代替了上边注解映射器和注解适配器配置,而且默认加载很多的参数绑定方法, 比如json转换解析器 --> <!-- <mvc:annotation-driven></mvc:annotation-driven>-->
第一步:发起请求到前端控制器(DispatcherServlet)
二 :前端控制器(DispatcherServlet) 请求 处理器映射器(HandlerMapping) 查找 Handler(可以根据 xml 配置、注解进行查找)。
三 :处理器映射器(HandlerMapping) 向 前端控制器(DispatcherServlet) 返回 Handler
第四步:前端控制器(DispatcherServlet) 调用 处理器适配器(HandlerAdapter) 去执行 Handler
五步:处理器适配器(HandlerAdapter) 执行 Handler
六步:Handler 执行完成后 给 处理器适配器(HandlerAdapter) 返回 ModelAndView
七步:处理器适配器(HandlerAdapter) 向 前端控制器 返回 ModelAndView(ModelAndView 是 springmvc 框架的一个底层对象,包括 Model 和 view)
第八步:前端控制器 请求 视图解析器(ViewResolver) 去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
九步:视图解析器向前端控制器返回 View
第十步:前端控制器进行视图渲染,将 模型数据(在 ModelAndView 对象中)填充到 request 域
十一步:前端控制器向用户响应结果
Spring MVC的工作流程的更多相关文章
- Spring Bean的生命周期、Spring MVC的工作流程、IOC,AOP
1.Spring Bean的生命周期? (1)构造方法实例化bean. (2)构造方法设置对象属性. (3)是否实现aware接口,三种接口(BeanNameAware,BeanFactoryAwar ...
- Spring MVC的工作原理和机制
Spring MVC的工作原理和机制 参考: springMVC 的工作原理和机制 - 孤鸿子 - 博客园https://www.cnblogs.com/zbf1214/p/5265117.html ...
- Spring MVC的工作原理,我们来看看其源码实现
前言 开心一刻 晚上陪老丈人吃饭,突然手机响了,我手贱按了免提……哥们:快出来喝酒!哥几个都在呢!我:今天不行,我现在陪老丈人吃饭呢.哥们:那你抓紧喝,我三杯白酒,把我岳父放倒了才出来的,你也快点.看 ...
- 【Java面试】介绍下Spring IoC的工作流程
Hi,我是Mic 一个工作了4年的粉丝,在面试的时候遇到一个这样的问题. "介绍一下Spring IOC的工作流程" 他说回答得不是很好,希望我能帮他梳理一下. 关于这个问题,我们 ...
- 描述Spring Web MVC的工作流程
Spring Web MVC的共工作流程如下: 1.浏览器发出Spring mvc请求,请求给前端控制器 DispatcherServlet处理. 2.控制器通过HandlerMapping维护的请求 ...
- Spring MVC整体处理流程
一.spring整体结构 首先俯视一下spring mvc的整体结构 二.处理流程 1.请求处理的第一站就是DispatcherServlet.它是整个spring mvc的控制核心.与大多数的jav ...
- Spring MVC请求执行流程
学习Spring MVC时间有点长了,但是最近打算找工作,需要重新了解下,所以又去温故知新了.Spring MVC就是用来写web的框架,简化你写web的一些不必要的流程,让程序员能专注于业务逻辑也就 ...
- Spring MVC执行的流程
1.Spring MVC应用的开发步骤 a.在web.xml文件中定义前端控制器DispatcherServlet来拦截用户请求.由于Web应用是基于请求/响应架构的应用,所以 不管哪个MVC Web ...
- spring mvc 详细执行流程
名词解释 DispatcherServlet:整个spring MVC的前端控制器,由它来接管来自客户端的请求. HandlerMapping:DispatcherServlet会通过它来处理客户端请 ...
随机推荐
- Effective Java 39 Make defensive copies when needed
Principle It is essential to make a defensive copy of each mutable parameter to the constructor. Def ...
- MySQL 中的 FOUND_ROWS() 与 ROW_COUNT() 函数
移植sql server 的存储过程到mysql中,遇到了sql server中的: IF @@ROWCOUNT < 1 对应到mysql中可以使用 FOUND_ROWS() 函数来替换. 1. ...
- Sql Server 高频,高并发访问中的键查找死锁解析
死锁对于DBA或是数据库开发人员而言并不陌生,它的引发多种多样,一般而言,数据库应用的开发者在设计时都会有一定的考量进而尽量避免死锁的产生.但有时因为一些特殊应用场景如高频查询,高并发查询下由于数据库 ...
- PowerDesigner概述(系统分析与建模)以及如何用PowerDesigner快速的创建出这个数据库
PowerDesigner是Sybase公司推出的一个集成了企业架构,UML(统一建模语言)和数据库的CASE(计算机辅助软件工程)工具.它 不仅可以用于系统设计和开发的不同阶段(即业务分析,概念模型 ...
- JavaScript中判断为整数的多种方式
之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer). JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的d ...
- phpcmsv9 标题颜色显示问题
在解决标题颜色问题之前首先要注意到 标题字段为title,副标题为fu_title. 如果一个文章想在首页推荐,又想在栏目首页推荐,并且这两个推荐位置的标题长度不一样,那只能用副标题区别,这样就可以在 ...
- 按照索引的细化提取骨架算法的java实现
近期研究验证码识别,也就看了一些图像识别的资料,其中一种字体细化提取骨架的算法网上没有java版的实现,所以就选取了一个python实现版本进行java代码的改写.. python版实现的地址: ht ...
- 译:Google的大规模集群管理工具Borg(二)------ Borg架构
3.Borg 架构 一个Borg的cell由一系列的机器组成,通常在cell运行着一个逻辑的中央控制器叫做Borgmaster,在cell中的每台机器上则运行着一个叫Borglet的代理进程.而Bor ...
- shell script 学习笔记-----if,for,while,case语句
1.if内的判断条件为逻辑运算: 2.if内的判断条件为目录是否存在,文件是否存在,下图先检验目录/home/monster是否存在,然后再检测/home/monster中的file.txt文件是否存 ...
- poj1459 Power Network (多源多汇最大流)
Description A power network consists of nodes (power stations, consumers and dispatchers) connected ...