全国咨询热线:400-618-4000 | 股票代码:839976

JavaEE知识点:MVC设计模式

更新时间:2017年12月26日16时59分 来源:传智播客

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

MVC模式最早被Trygve Reenskaug提出,成为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。

MVC可对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序简化,更加直观。

需要注意的是MVC设计模式并不是java语言独有的设计模式,几乎所有的B/S结构的项目都在使用这种设计模式。其中M、V、C分别代表如下含义:

l M:model层,即模型层,用来维护数据以及提供数据访问方法;

l V:view层,即视图层,通常由jsp充当,用于展示模型的部分数据或所有数据的可视化视图;

l C:controller层,即控制层,用于对处理请求。

下面通过一张图来了解MVC设计模式,如图1-1所示:

图 1-1 MVC设计模式图

Javaweb的开发经历了JSP Model1、JSP Model1二代以及JSP Model2三个时期。下面我们分别介绍这三个时期。

1.JSP Model1第一代

JSP Model1是javaweb早期的设计模式,它适合小型web项目,开发成本低。Model1第一代时期,服务器端只有jsp页面,所有的操作都在jsp页面中,其中访问数据库的API是在jsp页面中完成的。也就是说,所有的东西都耦合在一起,这样对后期的维护和扩展极为不利。下面我们通过一张图来了解JSP Model1设计模式,如图1-2所示:

图1-2 JSP Model1设计模式

2.JSP Model1第二代

JSP Model1第二代有所改进,把业务逻辑的内容放到了JavaBean中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但还让JSP做了过多的工作,在JSP中将视图工作和请求调度(控制器)的工作耦合在一起了。下面我们通过一张图来了解JSP Model1第二代设计模式,如图1-3所示:

图1-3 JSP Model1第二代设计模式

3.JSP Model2

JSP Model2模式已经可以清晰的看到MVC完整的结构了,在JSP Model2中层次划分的很清晰,如下所示:

l JSP:视图层,用来与用户打交道,负责接收用来的数据,以及显示数据给用户;

l Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图;

l JavaBean:模型层,完成具体的业务工作,例如:开启、转账等。

JSP Model2适合多人合作开发大型的Web项目,各司其职,互不干涉,有利于开发中的分工,有利于组件的重用。但是,Web项目的开发难度也随之加大,同时对开发人员的技术要求也有所提高。

下面通过一张图来了解JSP Model2设计模式,如图1-4所示:

图1-4 JSP Model2设计模式

本文版权归传智播客JavaEE学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客JavaEE培训学院

首发:http://www.itcast.cn/javaee/