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设计模式
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/java/253254.html