springmvc的运行流程分析

前几篇文章对springmvc讲解的很清楚,大家看下,有问题,我们再一起讨论.

其实springmyuxvc最为重要是它的运行流程,接着,我们来分析一下,其运行过程,废话不多说,看图说话:

分析如下:

1,用户发起请求到前端控制器(DispatchService)

2,前端控制器通过HandlerMapping找到Handler(即是Action)

3,HandlerMapping返回HandlerExecutionChain(执行链),该执行链包含两部分内容,(Handler对象,拦截器数组)

4,前端控制器通过HandlerAdapter(适配器)执行Handle对象

5,处理具体的业务逻辑

6,Handler处理完业务逻辑返回ModelAndView(view:视图的名称,不是真正的视图对象)

7,讲ModelAndView返回到前端控制器

8,前端控制器通过ModelAndView中的视图名称在视图解析器(viewResoller)中查找真正的视图

9,返回真正的视图对象

10,渲染视图

11,12,返回用户相响应

注意:

jsp其实也是一个视图

适配器会执行所以实现Comtroller接口的类,即通过适配器找到HelloComtroller.${msg}这就是一个简单的视图渲染的过程

时间: 2024-10-03 13:45:33

springmvc的运行流程分析的相关文章

Struts运行流程分析与声明式验证

strust2运行流程分析 1.发送一个HttpServletRequest给StrutsPrepareAndExecuteFilter 2.StrutsPrepareAndExecuteFilter询问ActionMapper:该请求是否是一个Struts2请求(即是否返回一个非空的ActionMapping对象) 3.若ActionMapper认为该请求是一个Struts2请求,则StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy 4.Actio

thttpd和cgilua安装与运行流程分析

安装 参考如下博文安装thttpd软件 http://blog.csdn.net/21aspnet/article/details/7045845 http://blog.csdn.net/dragoncheng/article/details/5614559 thttpd配置文件: [email protected]:/usr/local/bin# cat /usr/local/thttpd/conf/ etc/  logs/ man/  sbin/ www/  [email protecte

MapReduce运行流程分析

研究MapReduce已经有一段时间了.起初是从分析WordCount程序开始,后来开始阅读Hadoop源码,自认为已经看清MapReduce的运行流程.现在把自己的理解贴出来,与大家分享,欢迎纠错. 还是以最经典的WordCount程序作为基础,来分析map阶段.reduce阶段和最复杂的shuffle阶段. 文本1:hello world                                      文本2:map reduce hello hadoop            

SparkSteaming运行流程分析以及CheckPoint操作

本文主要通过源码来了解SparkStreaming程序从任务生成到任务完成整个执行流程以及中间伴随的checkpoint操作 注:下面源码只贴出跟分析内容有关的代码,其他省略 1 分析流程 应用程序入口: val sparkConf = new SparkConf().setAppName("SparkStreaming") val sc = new SparkContext(sparkConf) val ssc = new StreamingContext(sc, Seconds(b

yii框架详解 之 CWebApplication 运行流程分析

在 程序入口处,index.php 用一句 Yii::createWebApplication($config)->run();  开始了app的运行. 那么,首先查看 CWebApplication 的 构造函数,如下: public function __construct($config=null) { Yii::setApplication($this); // set basePath at early as possible to avoid trouble if(is_string

SpringMvc的运行流程

一.先用文字描述 1.用户发送请求到DispatchServlet 2.DispatchServlet根据请求路径查询具体的Handler 3.HandlerMapping返回一个HandlerExcutionChain给DispatchServlet HandlerExcutionChain:Handler和Interceptor集合 4.DispatchServlet调用HandlerAdapter适配器 5.HandlerAdapter调用具体的Handler处理业务 6.Handler处

[原创]java WEB学习笔记70:Struts2 学习之路-- struts2拦截器源码分析,运行流程

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

转:[gevent源码分析] 深度分析gevent运行流程

[gevent源码分析] 深度分析gevent运行流程 http://blog.csdn.net/yueguanghaidao/article/details/24281751 一直对gevent运行流程比较模糊,最近看源码略有所得,不敢独享,故分享之. gevent是一个高性能网络库,底层是libevent,1.0版本之后是libev,核心是greenlet.gevent和eventlet是亲近,唯一不同的是eventlet是自己实现的事件驱动,而gevent是使用libev.两者都有广泛的应

Monkey源码分析之运行流程

在<MonkeyRunner源码分析之与Android设备通讯方式>中,我们谈及到MonkeyRunner控制目标android设备有多种方法,其中之一就是在目标机器启动一个monkey服务来监听指定的一个端口,然后monkeyrunner再连接上这个端口来发送命令,驱动monkey去完成相应的工作. 当时我们只分析了monkeyrunner这个客户端的代码是怎么实现这一点的,但没有谈monkey那边是如何接受命令,接受到命令又是如何处理的. 所以自己打开源码看了一个晚上,大概有了概念.但今天