SpringMVC架构&组件&执行流程
SpringMVC架构:
组件:
DIspatcherServlet:前端控制器。相当于mvc模式的c,是整个流程控制的中心,负责调用其他组件处理用户的请求,降低了组件之间的耦合性。
HandlerMapping:处理器映射器。负责根据url找到Handler即处理器,SpringMVC提供了不同的映射器实现不同映射方式如配置文件方式,实现接口方式,注解方式。
HandleAdapter:处理器适配器。通过HandlerAdapter对处理器Handler进行执行,这是适配器模式的应用。
Handler:处理器。是继DispacherSevlet前端控制器的后端控制器,在DispatcherServlet的控制下,Handler对具体的用户请求进行处理,返回ModelAndView给适配器,由适配器再返回给前端控制器。
ViewResolver:视图解析器。负责将处理结果生成view视图,ViewResolver首先根据逻辑视图名解析成物理视图名,即具体的页面地址,再生成view视图对象,最后对View进行渲染将结果通过页面展示给用户。
View视图:SpringMVC框架提供了很多的View视图类型的支持,比如:jstlView等待,常用视图是jsp.
架构流程:
1 用户发送请求到前端控制器DispacherServlet
2 DispacherServlet收到请求调用HandleMapping处理映射器
3 处理映射器根据请求url找到具体的处理器,生成处理器对象以及处理器拦截器并返回给DispacherServlet
4 DispatcherServlet通过HandlerAdaptec处理器适配器调用处理器
5 执行处理器(Controller),执行得到ModelAndView,返回给DispacherServlet
6 DispatcherServlet将ModelAndView传给ViewResolver视图解析器,解析后返回具体View
7 DispatcherServlet对view进行渲染视图(将模型数据填充至视图中),响应给用户
组件扫描器:省去在Spring容器中配置每个Controller类的繁琐。配置之后在Controller类上添加@Controller注解即可。
注解驱动:免去配置注解器映射器和注解器适配器的繁琐
视图解析器:配置试图的前缀和后缀
SpringMVC架构&组件&执行流程的更多相关文章
- 步步深入MySQL:架构->查询执行流程->SQL解析顺序!
一.前言 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序 ...
- springMVC的架构与执行流程
SpringMVC术语 前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU. 处理器映射器(HandlerMapping):根据URL去查找处理器 处理器(Han ...
- Mybatis功能架构及执行流程
原文地址:http://blog.51cto.com/12222886/2052647 一.功能架构设计 功能架构讲解: 我们把Mybatis的功能架构分为三层: (1) API接口层:提供给外部使用 ...
- springmvc与struts2执行流程比较
之前写过一篇struts2的执行流程的文章了,这里对struts2的流程就不做过多的分析,这篇文章主要分析spring-mvc的执行流程以 及struts2与spring-mvc的差别. 1.stru ...
- MapReduce架构与执行流程
一.MapReduce是用于解决什么问题的? 每一种技术的出现都是用来解决实际问题的,否则必将是昙花一现,那么MapReduce是用来解决什么实际的业务呢? 首先来看一下MapReduce官方定义: ...
- SpringMVC学习笔记:SpringMVC框架的执行流程
一.MVC设计模式 二.SpringMVC框架介绍 三.SpringMVC环境搭建 四.SpringMVC框架的请求处理流程及体系结构
- SpringMVC启动和执行流程
Spring框架大家用得很多,相当熟悉,但是我对里面的运作比较好奇,例如bean的加载和使用,和我们定义的配置文件有什么联系;又例如aop在什么时候起作用,原理又是怎样.经过一个了解后,整理了启动和执 ...
- SpringMVC拦截器执行流程
1:MyInterceptor1.MyInterceptor2这2个拦截器都放行 MyInterceptor1......preHandleMyInterceptor2......preHandle ...
- mysql(一)--mysql架构和执行流程
1. 一条查询 SQL 语句是如何执行的? 我们的程序或者工具要操作数据库,第一步要做什么事情? 跟数据库建立连接. 1.1. 通信协议 首先,MySQL 必须要运行一个服务,监听默认的 3306 ...
随机推荐
- Yii2.0如何建立公共方法
yii2-advanced版本 common 目录为公共资源目录,我们可以把定义的方法放在这个目录下,在此目录下我们随意建立一个文件比如”helps”目录,因为考虑到公共方法可能会有功能上的划分类,所 ...
- C 语言实例 -求分数数列1/2+2/3+3/5+5/8+...的前n项和
程序分析:抓住分子与分母的变化规律:分子a:1,2,3,5,8,13,21,34,55,89,144...分母b:2,3,5,8,13,21,34,55,89,144,233...分母b把数赋给了分子 ...
- IDEA 导出可执行jar包【转载】
1,在项目上鼠标右键 --> Open Module Settings,或者[shift+ctrl+alt+s] 2, Artifacts --> + --> JAR --> ...
- C语言:统计整型变量m中各数字出现的次数,-去掉一个最高分和一个最低分,然后求平均值,(注意最低分和最高分可能有多个数并列)
//统计整型变量m中各数字出现的次数,并存放在数组a中,其中,a[0]存放0出现的次数,a[1]存放1出现的次数. #include <stdio.h> ]) { int i; ; i&l ...
- next_permutation的使用-Hdu1027
Ignatius and the Princess II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ( ...
- 「CF1142B」Lynyrd Skynyrd
传送门 Luogu 解题思路 发现一个性质: 对于排列的任何一个循环位移,排列中的同一个数的前驱肯定是不变的. 而且,如果一个排列的循环位移是某一个区间的子序列,那么这个循环位移的结尾的 \(n-1\ ...
- 【Go语言系列】第三方框架和库——GIN:GIN介绍
1.Gin 是什么? Gin 是一个用 Go (Golang) 编写的 HTTP web 框架. 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高 ...
- AOP的基本认识
一.AOP的概念 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善. ...
- 【代码审计】XDCMS 报错注入
审计的都是之前很老的一些的CMS,把学习的过程分享出来,如果有正在和我一起学习的兄弟们,希望看到文章之后会有所收获 ------------------------------------------ ...
- org.springframework.data.redis.RedisConnectionFailureException
org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested ...