首页

文章

spring mvc的运行原理是什么,m代表什么,v代表什么,v包含些什么,m包含些什么??

发布网友 发布时间:2022-03-23 00:25

我来回答

2个回答

热心网友 时间:2022-03-23 01:55

m代表model模型,v代表view视图,c代表controller,控制器。m中包含你写的业务逻辑,就是取数据的模型,v代表你显示的视图,c来控制m和v之间的关系。mvc的运行原理基本一样没有什么不一样的地方,只是不同的mvc框架的实现技术不一样吧了。接下来我给你考一段网上的别人的看法;
模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。

MVC如何工作

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.
如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

为什么要使用 MVC
大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是无庸质疑的。
首先,最重要的一点是多个视图能共享一个模型,正如我所提及的,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用Macromedia Flash和WAP来表示。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。
因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。
对我来说,控制器的也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。

MVC的缺点
MVC的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。
你将不得不花费相当可观的时间去考虑如何将MVC运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。

根据我个人经验,由于我们将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提。
MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
MVC是一条创建软件的好途径
MVC设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你肯接受MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。

Java开发Web Application有几种符合MVC设计模式的开发方式。
1:Jsp+Servlet+JavaBean(EJB)
2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)
3:TDK(Turbine,Velocity...)
4:Xsp
5:Jsp+Struts+JavaBean(EJB)

附:
三层架构即“表现层”,“业务层”,“持久化层”。表现层实现的代表作品是Struts框架,业务层实现的代表作品是Spring,持久层实现的代表作品是Hibernate。
举个例子。
持久层从持久库中取出-10。
业务层按照一定的逻辑(这里我们举例取温度的逻辑)翻译成-10摄氏度。
表示层显现给用户“哎呀,今天好冷!”。
层就相当于一个黑盒子,我们不用知道它内部怎么实现,只需要知道如何去调用它就行了。每层只与上下相邻的两层打交道。当一层内部由于技术变迁发生变化时,只要接口不变,其他层不用做任何改变。分层之后灵活性提高,也便于团队分工开发。
呵呵,写的很详细吧。希望对你有帮助。

热心网友 时间:2022-03-23 03:13

spring mvc的运行原理如同struts,是典型的mvc框架,只不过提供了对spring业务层的无缝衔接,mvc的m代表model,v代表view,v是一种视图渲染技术,包含了MVC框架的标签和自定义标签,方便简化HTML代码,即原先在JSP里面的动态代码都将用标签来表示,有助于数据分离,便于美工美化页面,view还包含了页面的校验部分,提供了初始的页面校验,比如空校验,邮件格式校验等等标签,因此view部分主要负责页面的处理和展示,model代表模型,简单的说就是业务模型或者数据模型,比如一个用户信息,就是一个数据模型,一个登录操作,就是一个业务模型,模型其实是业务规则和数据对象的抽象,c就是控制器,可以想象,v负责展示页面数据,m抽取了模型,而模型和展示数据之间的对应和连接则需要c来完成,因此ctrol(控制器),是模型和展示数据的桥梁,举个例子,一个用户登录界面,输入的用户登录信息是view,经过control的派发和控制,获取到了用户信息的模型,然后再经过control的派发处理,到页面上展示为view数据。
特别精辟的个性签名(非常经典的个性句子) 特别经典的个性签名(非常惊艳的个性句子) 文艺范十足的个性签名(温柔治愈的个性签名句子) wps文字怎么设置每页头和尾 27岁的女人需要补充哪些营养元素 27岁该重视美容了吗?都可以用哪些方法好些呢? airpods连不上手机怎么回事 - 知百科 腰肌劳损能养好吗? 有一段相声讲的是原始人打猎,唱歌,学说话的,请问名字是什么? 个人征信逾期记录的修复攻略,手把手传授 抖音火山版在哪注销账号 注销账号方法介绍 支付宝怎么把余额宝冻结的钱转出来? 余额宝冻结金额怎么解冻? 支付宝余额锁定怎么解除?可以简单介绍一下吗? 母乳跟气血有关系吗 穿jk发朋友圈俏皮的文案 穿jk制服发朋友圈的文案 福鼎绿雪芽茶历史传说 福鼎太姥绿雪芽曾与武夷山名茶齐名 石蛙保护级别是多少? 是田螺吗?还是别的什么? 昆虫头上像丝一样的感觉器官是表示什么词语 感什么器什么的词语感x器x式的四字词语 三控开关怎么接线方法图片 独立IP和共享IP的区别以及各自的优势有哪些 什么是共享和独享IP、动态和静态IP、固定IP? 连接电脑的wifi如何查名称怎么查看电脑wifi 千变表情是什么意思? kmose正确使用方法? 单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 微信寄快递怎么取消订单_取消订单方法介绍 300兆宽带用什么路由器好? 请问高分子井盖具体材料有那些?谢谢 井盖骨架有哪些材料 ...一个女主是空姐,她和男主第一次在去巴黎飞机上相遇,约定如果三次... 找一部电影 记得结局是主角上了私人飞机,然后和空姐,可能是情人... 360借条怎么开通? 脚踝系红绳是什么意思 痤疮 痘痘 黑头 粉刺必看的终结绿色治疗 说说mvc模式的原理,它在android中的运用 什么事mvc,mvc是怎么工作的? spring mvc的工作原理是什么? springmvc的工作原理是什么? mvc模式的原理 MVC模式的基本原理 ?? springmvc的工作原理,简单的概括一下 手机上能PS图片吗? 手机照片怎么ps 手机上照片怎么ps雪花 手机上怎么ps一寸照片 手机上怎么ps图片上的字 华为手机如何ps照片 手机上的PS如何将一张复杂的照片转为线稿,要清晰的? 手机上怎么把一张图片P到另一张图片上?需要什么软件 手机中如何可以把一张图片P到另一张图片上? 手机如何把二张照片ps成一张? 用手机怎么ps照片 手机上什么软件可以PS图片? 小米4深度清理健和取消键按键失灵 SpringMVC的工作原理是什么样的,跟Spring的关系是怎么样的? Spring的MVC模式工作原理 spring mvc的运行原理是什么,m代表什么,v代表什 什么MVC框架实现原理? mvc模式MVC模式MVC如何工作为什么要模式 什么是MVC啊? spring mvc原理是什么? spring mvc的工作原理用途及优势 简述什么是MVC模式 红米Note7Pro和红米Note7有什么区别? 红米note7和红米note7Pro的区别是不是只有骁龙不一样和索尼摄像头? 红米Note7和红米Note7 pro有什么区别,为什么比卖的比较贵 红米note7和note7pro在外观上有什么区别? Redmi note7和7pro哪个更有性价比? 红米Note7和Note 7 pro有什么区别,都是千元真香机,选谁更好? 红米note7的屏换到红米note7pro上有什么影响吗屏有啥区别? 红米Note7和红米Note7 Pro综合方面哪个更好,游戏方面哪个更好?打王者买哪个更好? 红米Note7和Note7Pro镜头像素相同 拍照差距多大? 小米8 SE和红米Note7 Pro应该怎么选? 红米note7和7pro那个好些
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com