下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

浅谈Java Web的MVC框架模式和经典三层架构

作者:课课家教育     来源: http://www.kokojia.com点击数:1187发布时间: 2019-08-02 10:22:23

标签: 编程语言JavaJavascript

大神带你学编程,欢迎选课

不论什么java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK。

 一、MVC设计模式

1.MVC的概念

首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),即为MVC。它是一种软件设计的典范,最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。

浅谈Java Web的MVC框架模式和经典三层架构_编程语言_Java_Javascript_课课家

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,但是我认为讨论这个问题没有太大的必要。我们大可将他作为一种思想,我们需要做的仅仅是理解它,应用它,掌握其中的思想,这才是我们需要做的。

 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
赞(18)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程