MVC详解
来源:互联网 发布:微信删好友软件 编辑:程序博客网 时间:2024/05/17 08:06
传统MVC
MVC刚开始出现在桌面程序当中。
其中M(model)即数据模型,V(view)只用户界面,而C(control)指控制器。
MVC的目的就是要将M和V的实现代码分离开来,从而使得一个程序可以使用不同的表现形式。C的目的则是确保M和V的同步,一旦M改变,V也要同步更新。
用户和视图进行交互,写入数据并提交,控制器接受到来自视图的事件并对模型进行操作,根据用户输入的数据来更新模型,将更新的结果显示给用户。
它有以下两个优点:
(1)实现了视图和业务逻辑的分离,提高的代码的重用率,减少了数据表达、数据描述和应用操作的耦合度。
(2)使得软件可维护性、可重用性、可扩展性、灵活性以及封装性大大提高。
WEB应用的MVC
之所以会有WEB应用的MVC一说,是因为传统的MVC模式已经不适合WEB应用。它的主要缺点是:
(1)在WEB的世界里面,视图是谓语客户端浏览器上的,而控制器和模型则是位于服务器段的,视图无法通过HTTP像经典的MVC那样直接调用控制器。
(2)视图不是一个可以更新的对象,而是在客户端发送一个新的请求,随之获得一个全新的WEB页面。
(3)模型不能将自身的改变通知视图,因为视图在另外一个计算机的浏览器中。
该模型中包含一个“分发器”(在JAVA中WEB MVC 中分发器使用servlet来实现),分发器可以将一个请求URL映射成一个需要被执行的命令,然后去执行相应的命令实例(struts2中的命令实例就是ACTION,action在后台的服务器程序进行交互,这个后台服务器程序就是M)。当命令实例执行完相应的业务逻辑后就会返回一个码值,该码值又会被映射到相应的视图(JSP)。最后结合控制器的模型,映射到的视图将会被发送到客户端的浏览器呈现。
这种模式的有点:
(1)多个视图可以对应一个模型,这样,可以减少代码的复制及代码的维护量,一旦模型发送改变,也易于维护;
(2)模型返回的数据与显示逻辑分离,模型数据可以应用到任何的显示技术。如jsp/velocity/excel等;
(3)应用被分隔为层,降低了各层之间的耦合度,提供了应用的可扩展性。
(4)控制层可以发挥更大的作用,由于它把不同的视图组合在一起,可以完成不同的请求,因此,控制层可以包含对用户的请求权限限制。
常见的MVC组件
struts
struts2
webwork
spring mvc
jsf
- MVC详解
- 详解mvc
- MVC详解
- MVC详解
- MVC详解
- MVC 详解
- mvc详解
- MVC详解
- MVC模式 MVC模式详解
- MVC开发模式详解
- MVC入门详解
- Spring3 MVC详解一
- Spring3 MVC详解二
- Extjs4.1MVC详解
- spring-mvc 详解
- MVC设计模式详解
- Spring3 MVC 配置详解
- Ext 4.0 MVC详解
- 谈谈我的首个开源项目WeiboSpider(1)——单元测试
- 软考之软工基础知识(1)
- 菜鸟解读zstack中的回调函数
- 把握销售中的八个细节做个完善的销售计划(1)
- 【书籍资源分享】囊括了Linux,Java,C++以及Android开发
- MVC详解
- 如何在ashx页面获取Session值
- SGU 119 数论
- QT 信号与槽 最简单例子
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);与pthread_detach(thread_id);
- Java 界面的背景的添加方法二
- 把握销售中的八个细节做个完善的销售计划(2)
- 推挽、开漏、强上拉、弱上拉、强下拉、弱下拉输出
- PHP实现二叉查找树