文档章节

SpringMVC工作原理和工作流程

effto
 effto
发布于 2016/04/21 13:25
字数 796
阅读 1325
收藏 3

SpringMVC框架介绍 
1) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。 
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 
2) Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。 
SpringMVC原理图 
这里写图片描述 
SpringMVC接口解释 
DispatcherServlet接口: 
Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。 
HandlerMapping接口: 
能够完成客户请求到Controller映射。 
Controller接口: 
需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。 
Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前 端控制器,ModelAndView中包含了模型(Model)和视图(View)。 
从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。 
ViewResolver接口: 
Spring提供的视图解析器(ViewResolver)在Web应用中查找View对象,从而将相应结果渲染给客户。 
SpringMVC运行原理 
1. 客户端请求提交到DispatcherServlet 
2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller 
3. DispatcherServlet将请求提交到Controller 
4. Controller调用业务逻辑处理后,返回ModelAndView 
5. DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图 
6. 视图负责将结果显示到客户端 
DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项: 
1. 截获符合特定格式的URL请求。 
2. 初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。 
3. 初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。



© 著作权归作者所有

effto
粉丝 3
博文 56
码字总数 28418
作品 0
长春
私信 提问
[北京] 搜狐招聘Java技术Leader, 架构师, 资深工程师

搜狐公司, www.sohu.com 具体邮件联系 felixzhang@sohu-inc.com 咨询 msn: cloud@cnscud.com 常规薪水范围 10K-30K 牛人上不封顶 --------------------------------------- · Java项目经理 ......

飞云小侠
2012/02/02
1K
7
搜狐(北京) 高薪招聘 Java 项目经理/架构师/WEB开发工程师

北京搜狐 高薪招聘 Java 项目经理/架构师/WEB开发工程师 有意请联系我 或帮忙转发 联系方式 cnscud@gmail.com msn:cloud@cnscud.com 多谢支持 注明来自 oschina.net更好, 谢谢 薪水范围 10-2...

飞云小侠
2011/05/08
819
7
说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?

面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ、ES、Redis、Dubbo,上来先问你一些思考性的问题、原理,比如 kafka 高可用架...

李红欧巴
04/20
148
1
Spring Session 工作原理

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/KCOFv0nRuymkX79-RZi9eg 作者:张正林 HTTP协议本身是无状态的,为了保存会话信息,浏览器Cookie通过SessionID标识会话请...

2020Labs
07/30
0
0
Springmvc+mybatis+restful+bootstrap框架整合

Spring MVC工作流程图 图一 图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获; 2. DispatcherServlet对请求URL进行解析,得到请求资...

qq59410a0b9a625
2018/06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部