java mvc设计模式框架_javaweb三大框架和MVC设计模式

MVC模式是一种软件设计模式,常见于JavaWeb框架中,如Struts2、SpringMVC。它将应用程序分为模型、视图和控制器三部分,提高代码的可维护性和可扩展性。模型处理业务逻辑,视图负责用户交互,控制器协调请求。JSPModel1到Model2的发展展示了JavaWeb中对MVC模式的应用逐渐成熟,从耦合度高的Model1到Model2的职责分离,提高了开发效率和代码质量。
摘要由CSDN通过智能技术生成

4f7a2877cc5fa382421dff5c00628804.png

转载,原文请见

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

虽然MVC并不是Java当中独有的,但是目前几乎所有的B/S的构架都采取了MVC框架模式,但是MVC在B/S架构中并没有完全地实现,其实我们根本不需要掌握未推动的个别。

·控制器Controller:控制器即是控制请求的处置逻辑,对请求进行处置,负责请 求转发;

·视图View:视图即是客户发现并与之交互的界面jsp mvc架构,比如HTML(静态资源),JSP(动态资源)等等。

ff022da260e438257658e7473fa1b7f8.png

·模型Model:模型代表着一种企业规范,就是业务流程/状态的处理或者业务规则的要求。业务流程的处理过程对其它层来说是不透明的,模型接受视图数据的请求,并返回最后的处理结果。业务建模的设计可以说是MVC的核心。

MVC模式被广泛用于Java的各类框架中,比如Struts2、Spring MVC等等都用到了这些思想。

Struts2是基于MVC的轻量级的web应用框架。基于MVC,说明基于Struts2开发的Web应用自然能够推动MVC,也表明Struts2着力于在MVC的各个部分为我们的开发提供相应帮助。

①JSP Model1第一代

JSP Model1是JavaWeb早期的模型,它适合大型Web项目,开发成本低!Model1第一代时期jsp mvc架构,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护跟扩展极为不利。

1f31386f99e1e2f18867c9b0aa00e3eb.png

fbf09430a55b397f21487eaf6d458268.png

②JSP Model1第二代

JSP Model1第二代有所改进,把业务逻辑的内容放在了JavaBean中,而JSP页面负责显示或者请求调度的工作。虽然第二代比第一代好了些,但还令JSP做了过多的工作,JSP中把视图工作跟请求调度(控制器)的工作耦合在一起了。

9c441631c749a6ebd6fa7ddd174f15de.png

③JSP Model2

a9lvd6qq6a.png

JSP Model2模式尚未可以清晰的提到MVC完整的结构了。

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

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

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

c2c80cf097fda3f5df1c9fbbaa4bc53f.png

c0a17569e36c5a68db889a1a6652858f.png

这就是javaweb经历的三个年代,JSP Model2适合合作研发小型的Web项目,各司其职,互不干涉,有利于开发中的分工,有利于组件的重用。但是,Web项目的研发难度加大,同时对研发人员的科技要求也增加了。

我们常说的三层框架是由JavaWeb提出的,也就是说这是JavaWeb独有的!

所谓三层是描述层(WEB层)、业务逻辑层(Business Logic),以及数据访问层(Data Access)。

·WEB层:包含JSP和Servlet等与WEB相关的内容;

·业务层:业务层中不包括JavaWeb API,它只关心业务逻辑;

·数据层:封装了对的访问细节;

注意,在业务层中不能出现JavaWeb API,例如request、response等。也就是说,业务层代码是能重用的,甚至可以应用至非Web环境中。业务层的每个步骤可以理解成一个万能,例如转账业务方式。业务层依赖数据层,而Web层依赖业务层!

dce0864158b3e39d51a24255497bc296.png

注:网上很在探讨MVC究竟是一种框架体系还是一种设计理念(百度百科中试图解释其为一种框架体系而不是一种设计理念),虽然Java中的23种设计理念里并没有MVC,但是我认为争论这个难题没有太大的必要。我们大可将他成为一种思想,我们必须做的只是是理解它,应用它,掌握其中的观念,这才是我们必须做的。

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-137385-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值