Spring MVC 流程
1. 检查是否为上传文件。
2. 通过HandlerMapping获取HandlerExecutionChain:
DispatcherServlet 中包含:handlerMappings ,
遍历获取正确的:HandlerMapping(RequestMappingHandlerMapping ) ,
具体的handlerMapping中包含:handlerMap ;
handlermap中为键值对:path = 对应的controller,例如:/hello/hello.htm=com.mumu.controller.HelloController@85a1ef
得到请求对应的HandlerExecutionChain,HandlerExecutionChain中包含:
1). interceptors:
2). 对应的controller实例
3. HandlerAdapter:
1). 将com.mumu.controller.HelloController@85a1ef传给获取适配器方法,遍历DispatcherServlet的handlerAdapters ,判断启用的是哪种Adapter,
继承Controller的还是注解的
2). 根据合适的Adater获取ServletHandlerMethodResolver:
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter@156b510 的 methodResolverCache:
{class com.mumu.controller.HelloController=org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodResolver@15c2d4e}
3). ServletHandlerMethodResolver,在它里面存储了方法和注解的关系
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodResolver@15c2d4e
[public java.lang.String com.mumu.controller.HelloController.hello3(javax.servlet.http.HttpServletRequest)=[/hello3.htm], public java.lang.String
com.mumu.controller.HelloController.hello2(java.lang.String,org.springframework.ui.Model)=[/hello2.htm], public java.lang.String
com.mumu.controller.HelloController.hello(java.lang.String,java.util.Map)=[/hello1.htm],
public java.lang.String com.mumu.controller.HelloController.hello(java.lang.String)=[/hello.htm]]
4. 将上面信息汇总,反射调用方法,获取返回值
5. 返回值交给视图解析器去解析:InternalResourceViewResolver
Spring MVC 流程的更多相关文章
- Spring MVC流程
这是spring mvc框架结构图,图片是很早在网上撸过来的,具体在哪忘了…… 早期学习Springmvc 并没有具体了解过,只知道这样用很爽,最近了解下基本结构流程及组件所在…… 执行流程 Spri ...
- spring mvc流程理解
1.controller处理的终究就是一个结果,默认是modelandview对象,controller里自己随便调用service或者dao,终究都还是在controller里有返回值. 2. 在 ...
- (一)spring MVC基本概念和流程
MVC的概念 Model(模型):包含数据和行为.不过现在一般都分离开来:Value Object(数据) 和 服务层(行为). View(视图):负责进行模型的展示,一般就是展示给用户的界面. Co ...
- Spring MVC——项目的开发流程
创建项目(IDEA下) 打开IDEA,我们开始创建一个简单的Spring MVC项目,流程如下: 这里要注意一下,我们是基于Maven开发项目,当然是要配置Maven环境的,如果大家之前从来没有配置过 ...
- Spring MVC 工作原理和流程、注解
Spring MVC 是实现MVC设计模式的企业级开发框架,是Spring框架的一个子模块,无需整合,开发起来更加便捷. MVC设计模式 MVC是一种设计模式,它将应用程序分为 Controller. ...
- 基于XML配置的Spring MVC 简单的HelloWorld实例应用
1.1 问题 使用Spring Web MVC构建helloworld Web应用案例. 1.2 方案 解决本案例的方案如下: 1. 创建Web工程,导入Spring Web MVC相关开发包. Sp ...
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)
在上一篇文章中我详细的介绍了如何搭建maven环境以及生成一个maven骨架的web项目,那么这章中我将讲述Spring MVC的流程结构,Spring MVC与Struts2的区别,以及例子中的一些 ...
- Spring MVC测试框架
原文链接:http://jinnianshilongnian.iteye.com/blog/2004660 Spring MVC测试框架详解——服务端测试 博客分类: springmvc杂谈 spri ...
- Spring MVC测试框架详解——服务端测试
随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的.从Spring 3.2开始Spring了Spring Web测试框架,如果版本低于3.2,请使用sp ...
随机推荐
- WPF 隧道路由事件
阅读本文前,请先了解 冒泡路由事件:http://www.cnblogs.com/andrew-blog/p/WPF_BubbledEvent.html 隧道路由事件的工作方式和冒泡路由事件相同,但方 ...
- MVC框架图
http://www.cnblogs.com/zgynhqf/archive/2010/11/19/1881449.html MVC框架图 http://www.cnblogs.com/zhang ...
- shell脚本学习总结10--系统函数调用
1.打印出彩色的格式 [root@new sbin]# cat demo.sh #/bin/bash . /etc/init.d/functions read -p "Pleas input ...
- JSP内置对象——out,get与post
JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以的内置对象.JSP九大内置对象:out,request,response,session,application,page,pageC ...
- ORA-00845 MEMORY_TARGET not supported on this system解决办法
ORA-00845: MEMORY_TARGET not supported on this system报错解决 Oracle 11g数据库修改pfile参数后启动数据库报错ora-00845 SQ ...
- c#基础 第五讲
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- UIWindow和UIScreen
UIWindow和UIScreen 目录 概述 职责 实用操作 概述 UIWindow职责 包含了应用程序的可视化的内容 为视图和其他应用程序对象在触摸事件中提供了关键性的作用 与视图控制器一起协作来 ...
- nginx提高加载静态文件速度
1.本来对于静态网页,我们不需要放在应用容器中,原因一时由于应用服务器是用来解析动态网页的,针对静态网页本来就性能不高,而且还会占用应用容器的资源,所以我们专门使用nginx用来解析静态网页. ...
- traceroute tracert 路由器地址 清单 192.168.2.1 网关路由器地址
[root@a ~]# traceroute www.ijntv.cntraceroute to www.ijntv.cn (42.81.61.31), 30 hops max, 60 byte pa ...
- End-to-End Speech Recognition in English and Mandarin
w语音识别.噪音.方言,算法迭代. https://arxiv.org/abs/1512.02595 We show that an end-to-end deep learning approach ...