SpringMVC学习--springmvc原理
- 简介
springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmvc是一个基于mvc的web框架。
spring的结构图:
- mvc在b/s下的应用
1、 用户发起request请求至控制器(Controller),控制接收用户请求的数据,委托给模型进行处理;
2、 控制器通过模型(Model)处理数据并得到处理结果,模型通常是指业务逻辑;
3、 模型处理结果返回给控制器;
4、 控制器将模型数据在视图(View)中展示,web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的;
5、 控制器将视图response响应给用户,通过视图展示给用户要的数据或处理结果。
- springmvc的工作原理图
流程描述:
1、 用户发送请求至前端控制器DispatcherServlet
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、 DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
5、 执行处理器(Controller,也叫后端控制器)。
6、 Controller执行完成返回ModelAndView
7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、 ViewReslover解析后返回具体View
10、 DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
11、 DispatcherServlet响应用户
组件描述:
1、DispatcherServlet:前端控制器
用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。
2、HandlerMapping:处理器映射器
HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
3、Handler:处理器
Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。
4、HandlAdapter:处理器适配器
通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
5、View Resolver:视图解析器
View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。 springmvc框架提供了很多的View视图类型,包括:jstlView、freemarkerView、pdfView等。
一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。
SpringMVC学习--springmvc原理相关推荐
- SpringMVC学习----SpringMvc快速入门
SpringMVC简介 它是基于MVC开发模式的框架,用来优化控制器.它是Spring家族的一员.它也具备IOC和AOP. 什么是MVC? 它是一种开发模式,它是模型视图控制器的简称.所有的web应用 ...
- SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)
相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上一篇文章中SpringMVC的处理流程吗? 这个图大致描述了SpringMVC的整个处理流程,这个流程图还是相对来 ...
- [SpringMVC]SpringMVC学习笔记一: springmvc原理及实例解析.
前言: 今天来回顾下SpringMVC的开发原理, 使用图文并茂的方式 来解析其中的内幕, 我相信懂了其中的运行机制后, 对于面试中SpringMVC大家都可以说so easy了. 一, 图示法 第二 ...
- springmvc学习笔记--ueditor和springmvc的集成
springmvc学习笔记--ueditor和springmvc的集成 前言: 在web开发中, 富文本的编辑器真心很重要. 有电商店铺的打理, 新闻稿/博客文章/论坛帖子的编辑等等, 这种所见即所的 ...
- SpringMVC学习-helloSpringMVC
SpringMVC学习-helloSpringMVC执行原理理解 原理理解 新建一个Moudle,添加web支持 确定导入了SpringMVC的依赖! <dependencies>< ...
- 狂神说SpringMVC学习笔记
目录 P1.前言 1.回顾MVC 1.1.什么是MVC 1.2.Model1时代 1.3.Model2时代 1.4.回顾Servlet 2.什么是SpringMVC 2.1.概述 2.2.中心控制器 ...
- SpringMVC学习心得
文章目录 一.回顾MVC 1.什么是MVC 2.什么是springmvc? 3.为什么学习springmvc? 二.springmvc 1.第一次配置 2.通过java注解配置实现 3.RestFul ...
- JavaEE 企业级分布式高级架构师(四)SpringMVC学习笔记(4)
SpringMVC学习笔记 高级应用篇 ControllerAdvice @ControllerAdvice @ModelAttribute 作用于方法 作用于方法参数 @InitBinder @Ex ...
- SpringMVC学习笔记_01
SpringMVC学习笔记_01 1.JAVAEE体系结构 JAVAEE体系结构图如下所示: 2.什么是springmvc? 什么是mvc? Model1 Model2 SpringMVC是什么? S ...
最新文章
- 5 月书讯 | 程序员的历史课,是时候补补了
- 【知识星球】重要小结与涨价预告
- 【学术相关】是什么让女性在计算机史上“隐身”了?
- 计网 --- 域名服务系统:因特网的目录服务
- Android两个注意事项.深入了解Intent和IntentFilter(两)
- ETL之Kettle
- Windows下安装配置jdk
- 为什么现在又流行服务端渲染html?
- 【渝粤教育】电大中专计算机职业素养 (6)作业 题库
- Sublime Merge for Mac(git客户端软件)2064
- 关于全球同服和亚马逊Global Accelerating
- 松散四叉树+网格法实现
- Mybatis常见技巧
- 【渝粤题库】广东开放大学 发展与教育心理学 形成性考核
- 谷歌浏览器打印不弹出预览直接打印机打印
- 那些惊艳了我的第三方插件收集
- 1278 相离的圆(任务调度,贪心)
- MATLAB图像平移、旋转、缩放、裁剪
- 2008年度回顾:决胜路由应用时代
- Android11 Launcher添加网格布局设置(3x3,4x4,5x5)
热门文章
- TCP/IP四层模型及各层协议首部详述(包含IOS7层)
- QT TextEdit设置背景、明文加密、弹出网站、弹出自定义对话框、gif动态图片、程序启动动画、打包程序、关闭事件
- Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查...
- cogs1799 [国家集训队2012]tree(伍一鸣)
- install maven3 on ubuntu
- [转]Java序列化的高级认识
- 1.struts1.x基本action的配置与使用
- 1盎司等于多少克 |1克等于多少盎司|盎司和克得换算关系
- 什么是贝叶斯定理?朴素贝叶斯有多“朴素”?终于有人讲明白了
- angular自带的一些api_Angular API