1.MVC的观点
首先我们须要知道MVC模式并不是javaweb项目中独占的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和掌握器(Controller),即为MVC。它是一种软件设计的典范,最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中央(Xerox PARC)的Smalltalk措辞发明的一种软件设计模式。
2.MVC的详解
虽然MVC并不是Java当中独占的,但是现在险些所有的B/S的架构都采取了MVC框架模式,但是MVC在B/S架构中并没有完备地实现,实在我们根本不须要节制未实现的部分。
·掌握器Controller:掌握器即是掌握要求的处理逻辑,对要求进行处理,卖力请 求转发;
·视图View:视图即是用户看到并与之交互的界面,比如HTML(静态资源),JSP(动态资源)等等。
·模型Model:模型代表着一种企业规范,便是业务流程/状态的处理以及业务规则的规定。业务流程的处理过程对其他层来说是不透明的,模型接管视图数据的要求,并返回终极的处理结果。业务模型的设计可以说是MVC的核心。
3.MVC模式的用武之地
MVC模式被广泛用于Java的各种框架中,比如Struts2、Spring MVC等等都用到了这种思想。
Struts2是基于MVC的轻量级的web运用框架。基于MVC,解释基于Struts2开拓的Web运用自然就能实现MVC,也解释Struts2着力于在MVC的各个部分为我们的开拓供应相应帮助。
二、Javaweb经典三层架构
1.Javaweb经历了三个期间
①JSP Model1第一代
JSP Model1是JavaWeb早期的模型,它适宜小型Web项目,开拓本钱低!
Model1第一代期间,做事器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也便是说,所有的东西都耦合在一起,对后期的掩护和扩展极为不利。
②JSP Model1第二代
JSP Model1第二代有所改进,把业务逻辑的内容放到了JavaBean中,而JSP页面卖力显示以及要求调度的事情。虽然第二代比第一代好了些,但还让JSP做了过多的事情,JSP中把视图事情和要求调度(掌握器)的事情耦合在一起了。
③JSP Model2
JSP Model2模式已经可以清晰的看到MVC完全的构造了。
·JSP:视图层,用来与用户打交道。卖力吸收用来的数据,以及显示数据给用户;
·Servlet:掌握层,卖力找到得当的模型工具来处理业务逻辑,转发到得当的视图;
JavaBean:模型层,完成详细的业务事情,例如:开启、转账等。
这便是javaweb经历的三个年代,JSP Model2适宜多人互助开拓大型的Web项目,各司其职,互不干涉,有利于开拓中的分工,有利于组件的重用。但是,Web项目的开拓难度加大,同时对开拓职员的技能哀求也提高了。
2.JavaWeb经典三层框架
我们常说的三层框架是由JavaWeb提出的,也便是说这是JavaWeb独占的!
所谓三层是表述层(WEB层)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。
·WEB层:包含JSP和Servlet等与WEB干系的内容;
·业务层:业务层中不包含JavaWeb API,它只关心业务逻辑;
·数据层:封装了对数据库的访问细节;
把稳,在业务层中不能涌现JavaWeb API,例如request、response等。也便是说,业务层代码是可重用的,乃至可以运用到非Web环境中。业务层的每个方法可以理解成一个万能,例如转账业务方法。业务层依赖数据层,而Web层依赖业务层!
注:网上很多人在谈论MVC究竟是一种框架模式还是一种设计模式(百度百科中强行阐明其为一种框架模式而不是一种设计模式),虽然Java中的23种设计模式里并没有MVC,但是我认为谈论这个问题没有太大的必要。我们大可将他作为一种思想,我们须要做的仅仅是理解它,运用它,节制个中的思想,这才是我们须要做的。
小编才疏学浅,希望各位批评示正,一起进步!
如有任何疑问或缺点之处,还请各位指出,以防小编误人子弟!
感激!