MVC是模型(model)、视图(view)、控制(controller)这三个单词上的首字母组成。它是一种目前广泛流行的应用模型,它的目的是实现Web系统的职能分工。
下图所示为MVC模型关系图。其中,模型层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现;视图层则用于与用户的交互,通常用JSP来实现;控制层则是模型层和视图层之间沟通的桥梁,它可以把用户的请求分派并选择恰当的视图来显示它 们,同时它也可以解释用户的输入并将其映射为模型层能够执行的操作。
MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。
MVC的处理过程是这样的:对于每一个用户输入的请求,首先被控制器接收,控制器决定用哪个模型来进行处理,然后模型通过业务逻辑层处理用户的请求并返回数据,最后控制器确定用哪个视图模型,用相应的视图格式化模型返回数据,并通过显示页面呈现给用户。
通过MVC这种特殊的设计结构,大大提高了Web应用的开发效率。
主要有以下几方面的优点:低耦合性(视图层和业务层分离);
高重用性和可适用性(允许不同式样的视图访问同一个服务器端的代码,比如web的HTTP浏览器和无线浏览器WAP);
较低的生命周期成本(开发和维护用户接口的技术含量降低);
部署快速(不同部件的开发人员专注于自己那个模块);
可维护性(分离视图层和业务逻辑层使Web应用更易于维护和修改);
有利于软件工程化管理(由于采用分层的思想);