Spring 3.x MVC 图解MVC整体流程
Spring mvc的生命周期
开始使用 spring mvc之前,我们必须需要了解下SPRING MVC的流程,如下图:
在看下图之前的一些说明: (下面介绍的HandlerMapping,HandlerAdapter,HandlerExceptionResovler,ViewResolver都有个order属性,因为这些接口每一个都可以注册多个实现,order代表他们的执行顺序,order越小的越先执行,一般先执行的匹配到了后面的就不会执行了)
DispatcherServlet: 整个Spring MVC的前端控制器,由它来接管来自客户端的请求
HandlerMapping: DispatcherServlet会通过它来处理客户端请求到各个(Controller)处理器的映射
HandlerAdapter: HandlerMapping会根据它来调用Controller里需要被执行的方法
HandlerExceptionResolver: spring mvc处理流程中,如果有异常抛出,会交给它来进行异常处理
ViewResolver: HandlerAdapter会把Controller中调用返回值最终包装成ModelAndView,ViewResolver会检查其中的view,如果view是一个字符串,它就负责处理这个字符串并返回一个真正的View,如果view是一个真正的View则不会交给它处理,为什么view即可以是字符串又会是View呢下面会进行解释
View: 对应MVC 中的V, 此接口只有一个方法 render,用于视图展现
ModelAndView 对于解决上面介绍ViewResoler或者下面图片的疑惑,这个类中的view这个属性是 Object 类型的,它可以是一个视图名也可以是一个实际的View,这点我们观察其源码可以很清楚的看出来
private Object view;
public void setViewName(String viewName) {
this.view = viewName;
}
public String getViewName() {
return (this.view instanceof String ? (String) this.view : null);
}
public void setView(View view) {
this.view = view;
}
public View getView() {
return (this.view instanceof View ? (View) this.view : null);
}
Spring mvc的流程图
如果看不全或者看不清图,请点击以下链接,由于图片太大,流程入口从中间上方的Client开始
http://pic002.cnblogs.com/images/2012/267998/2012010623530925.png
Spring 3.x MVC 图解MVC整体流程相关推荐
- 【Spring源码】一:整体流程
总流程 12 个方法 // Prepare this context for refreshing. prepareRefresh();// Tell the subclass to refresh ...
- Spring 框架基础(06):Mvc架构模式简介,执行流程详解
本文源码:GitHub·点这里 || GitEE·点这里 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集 ...
- Spring MVC 拦截器执行流程
Spring MVC-拦截器 今天就是把有关拦截器的知识做一个总结. 1.拦截器概述 1.1 什么是拦截器? Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(F ...
- spring mvc @RequestBody @ResponseBody 解析流程
一.此接口测试用例 @RequestMapping(value = "/save_user",produces = "application/xml;charset=ut ...
- Spring 源码分析(四) ——MVC(二)概述
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) from:Spring 源码分析(四) --MVC(二)概述 - 水门-kay的个人页面 - OSCHINA ...
- Spring思维导图(MVC篇)
写在前面 生活就像海洋,只有意志坚强的人才能到达彼岸. 已经很久没有发文章了呀,想必大家都挂念我了,哈哈. 温故而知新,今天一起来复习一下spring mvc的内容吧. spring mvc简介与运行 ...
- Spring.net与Asp.net Mvc结合示例《转载》
一.介绍 因为项目要用到Ioc框架,所以要为Ioc框架选型,优秀的Ioc框架好几款,例如:sping.net,castle,unity--当然还不止三款,还有其它的Ioc框架,castle跟unity ...
- 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架
搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 学习网址哦: 很不错的 http://www.cnblogs.com/fly_dragon/archive/2010/ ...
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo项目分析
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo,这个是一个在网上流传比较多的Spri ...
最新文章
- vue项目实现记住密码到cookie功能
- 【长文本处理】长文本划窗分割算法
- 使用MATLAB GUI创建图形用户界面GUI
- 分页插件PageHelper配置步骤(mybatis)
- 解读年度数据库性能:PostgreSQL的日志文件和数据加载
- iPhone 12系列详细屏幕参数前瞻:首批只有三星、LG屏幕 均为OLED面板
- Win10 安装 VS2015 失败解决办法
- Android WebView中图片自适应居中
- python map函数1分钟数据生成5分钟_用map函数来完成Python并行任务的简单示例
- 三层代码的bll dal 层优化
- oracle中同义词总结,ORACLE同义词总结
- 边缘检测法之Roberts算子
- libxml2 知:介绍
- TkMybatis的使用
- XMind初使用【常规操作快捷键】
- 【项目管理案例】第九期:如何做好项目整合管理
- WebGoat8 M17 Password Reset 密码重置 答案、思路、题解
- 有关计算机和音乐论文,电脑音乐论文
- 小白MacBook超级实战教程——装双系统WIN10
- 【SAP-CO】CO模块主要子模块相关概念
热门文章
- 使用RestTemplate访问restful服务时遇到的问题
- 【差分】bzoj 1676 [Usaco2005 Feb]Feed Accounting 饲料计算
- iOS 远程通知(Remote Notification)和本地通知(Local Notification)
- Boost asio学习笔记之二—— 网络编程
- 用netsh自动切换IP
- step5 . day4 网络编程 基于UDP协议的网络编程流程及API
- NodeJs基础之字节操作、路径操作和文本操作
- 怎样用jquery添加HTML代码
- Java基础03 构造器与方法重载
- 错误 1093 You can't specify target table 'table name' for update in FROM clause