SpringMVC的核心思想,概念及特点
学习目标
MVC思想
1、什么叫MVC?
MVC叫,模型-视图-控制器(MVC)是一个中所周之的以设计界面应用程序为基础的设计思想。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(service或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。控制器收集这些数据及准备模型在视图层展示。MVC模式的核心思想是将业务逻辑从界面中分离处来,允许它们单独改变而不会相互影响。
通常模型是封装想要在视图中显示的数据,其只是设置数据;视图只是展示数据,其不做业务逻辑控制,数据是数据模型准备的,数据模型的数据会在视图中展示,所以视图只负责显示数据,模型负责准备数据;控制器是用来接收请求,调用具体的业务逻辑方法,并且将数据返回给视图。
2、常见MVC框架运行性能比较
Jsp + servlet > strutsl > springmvc > struts2 + freemarker > struts2,ognl,值栈。
开发效率上,基本正好相反。值得强调的是,SpringMVC开发效率和struts2不相上下,但从目前来看,SpringMVC的流行度已远远超过struts2。
SpringMVC框架概念与特点
1、SpringMVC是什么?
SpringMVC是Spring家族中的一个web成员,它是一种基于Java的实现了Web MVC设计思想的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求=响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发的。
SpringMVC是服务到工作者思想的实现。中央控制器是DispatcherServlet;应用控制器分为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;支持本地化/国际化(Locale)及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。
2、SpringMVC能帮我们做什么?
- 让我们能非常简单的设计出干净的Web层;
- 进行更简洁的Web层的开发;
- 天生与Spring框架集成(如:IOC容器、AOP等);
- 提供强大的约定大于配置的契约式编程支持;
- 能简单的进行Web层的单元测试;
- 支持灵活的URL到页面控制器的映射;
- 非常容易与其他视图技术集成,如:jsp、Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);
- 非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;
- 支持灵活的本地化等解析;
- 更加简单的异常处理;
- 对静态资源的支持;
- 支持Restful风格;
SpringMVC的核心思想,概念及特点相关推荐
- 王阳明心学的基础概念和核心思想
简介 王阳明(1472年-1529年),字仲弓,号阳明,是明代著名的哲学家.思想家和军事家.他的思想被称为"心学",是中国思想史上的重要流派之一. 心学核心概念 王阳明心学的基础概 ...
- RAID2.0核心思想:数据保护与物理资源管理域分离
记得在2013年末的时候,开始将存储虚拟化为主导的数据保护技术归纳为RAID2.0.从市场的角度来看,这个一个非常好的概念,一方面可以延续传统RAID的思想,大家可以很容易明白这是一种数据保护技术:另 ...
- Lesson 8.1Lesson 8.2 决策树的核心思想与建模流程CART分类树的建模流程与sklearn评估器参数详解
Lesson 8.1 决策树的核心思想与建模流程 从本节课开始,我们将介绍经典机器学习领域中最重要的一类有监督学习算法--树模型(决策树). 可此前的聚类算法类似,树模型也同样不是一个模型,而是一类模 ...
- 小马哥spring编程核心思想_Spring源码高级笔记之——Spring核心思想
Spring核心思想 注意:IOC和AOP不是spring提出的,在spring之前就已经存在,只不过更偏向于理论化,spring在技术层次把这两个思想做了非常好的实现(Java) 第1节loC 1. ...
- 小马哥spring编程核心思想_Spring核心思想理解
前言 在拉勾教育Java高薪训练营再次学习了spring,再次感叹spring的核心思想.强调一下,IOC和AOP是一个技术思想(理论),并不是spring提出的,spring在技术层次把这两个思想做 ...
- 经典|图解Linux内存性能优化核心思想
hi,大家好,今天分享一篇内存性能优化的文章,文章用了大量精美的图深入浅出地分析了Linux内核slab性能优化的核心思想,slab是Linux内核小对象内存分配最重要的算法,文章分析了内存分配的各种 ...
- vue概述、vue文件特点、vue核心思想、双向数据流、单文件、启动一个vue项目、声明式渲染
vue介绍: Vue:当前较火的MVVM框架,轻量.简介.高效.组件化.数据驱动,模块和渲染函数的弹性选择,简单的语法及项目创建,渲染速度极快,基于Virtual Dom,利用虚拟DOM实现快速渲染: ...
- Dynamic Graph CNN for Learning on Point Clouds(DGCNN)论文阅读笔记——核心思想:EdgeConv细析
DGCNN 前言与声明 因为关心的领域主要是配准,对于分类等网络的架构设计分析并没有侧重太多,主要侧重的是EdgeConv的思想. 文中图片全部来自于PointNet,PointNet++,DGCNN ...
- Raft协议选举核心思想
本文来说下Raft协议选举核心思想 文章目录 核心思想 小结 核心思想 核心的设计原理:谁的超时时间最短谁就有非常大的概率为领导角色 默认的情况下每个节点都是为跟随者角色 每个节点随机生成一个选举的超 ...
最新文章
- 插槽 查看硬盘状态_摄影路上的“全能”伴侣 | LaCie DJI Copilot 移动硬盘
- 印度视觉设计师Rishab平面设计作品,简直太美了!
- vue 多个filters_vue自定义filters过滤器
- Unity3D 自定义数据格式
- mac idea在mybatis xml文件里引入全限定类名报红解决
- JMS(Java消息服务)与消息队列ActiveMQ基本使用(一)
- svn打分支与分支合并回主干
- 李天平: 技术以外的功夫
- 深入浅出SpringSecurity
- 科目三考场视频最新专业高清+实地模拟考试陪练车
- 普元信息技术java面试题,普元java实习笔试题
- Flutter键盘弹出造成布局异常解决
- 什么是MyBatis?怎么操作MyBatis?
- mysql lucene 结合_Lucene基础(四)-- 结合数据库使用
- 解决问题最简单的方法
- 图像形态学处理——灰度梯度(Matlab)
- 如果看广告还有钱拿,你还会嫌广告太多么?
- 客户成功的「本手、俗手、妙手」
- Android稳定性系列2 ANR触发原理
- windows下批量删除指定类型文件
热门文章
- 现在IT业到底做什么挣钱
- Android 插件之Hook机制动态代理
- Not all slots covered! Only 10922 slots are available
- 普中51单片机按键-数码管显示
- 质量成本:一次性成本,非一次性成本
- 使用计算机有什么好处,固态硬盘的好处是什么?电脑使用固态硬盘有什么用
- OpenCV-Python学习(14)—— OpenCV 绘制箭头线(cv.arrowedLine)
- android 摇一摇动画效果,Android实现微信摇一摇功能
- android%3cspan,新时代赌城全部网址
- 近万米展厅,压箱底的宝贝,雪浪大会最好玩的黑科技都在这了 | 倒计时1天