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会通过它来处理客户端请 ...
随机推荐
- 关于移动端click事件绑定的一个细节
click是最常见的点击事件,但是对于移动终端,比如手机,一般都是以touch事件代替的,而click事件在手机也是生效的,只是会有1-2秒左右的延迟,那么当你想要用click而非touch事件的时候 ...
- Head First HTML CSS XHTML笔记
最近在看点前端的东西,看到了这本入门级的好书 <head></head>中的title和style <q></q> inline元素 在<p> ...
- 肯爹的 StringUtils.isNumeric(String str)
在项目中遇到一处bug,调试的结果竟然是StringUtils.isNumeric(String str) 在捣鬼(采用的是org.apache.commons.lang.StringUtils),下 ...
- 问题解决——在STL的queue中使用自定义类
本文原创,转载请保证文章的完整性,并显要的注明出处. 本文链接:http://blog.csdn.net/wlsgzl/article/details/38843513 平时很少用STL,就算用,也基 ...
- 【log4net】配置
第一步在 AssemblyInfo 添加如下代码 第二步:在web.config添加如下代码: <log4net> <root> <level value=" ...
- struts2 redirect 配置动态传递参数
<action name="actionName" class="com.towerking.TestAction" method="execu ...
- A python tool to static sim.log duration time
When working ALU IMS Patch team, we need to static the SU duration to add it to the patch report, th ...
- Sample: Write And Read data from HDFS with java API
HDFS: hadoop distributed file system 它抽象了整个集群的存储资源,可以存放大文件. 文件采用分块存储复制的设计.块的默认大小是64M. 流式数据访问,一次写入(现支 ...
- dipole antenna simulation by FEKO
新建变量 建立模型 设置频率 馈电设置为wire port ,Edge 选中振子,从中心馈电. 设置输入信号 Mesh. run solver.在post feko中查看相关结果
- 记忆化搜索 codevs 2241 排序二叉树
codevs 2241 排序二叉树 ★ 输入文件:bstree.in 输出文件:bstree.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 一个边长为n的正三 ...