J2EE架构模型

article/2025/10/14 12:06:43

        从开始学Java Web到现在,使用的J2EE架构一步一步的在改变,从最简单的到越来越复杂,刚开始都是完全就照着每个架构的形式去开发项目,很少自己会想为什么用这样的架构好?好在哪里?现在学了这么久,也做了一些项目,回过头来仔细去思考这一个一个的架构,顿时发现了其中的道理。当你使用一种架构时,发现架构存在某个明显不足的地方,这时候,就应该去思考有什么办法去解决,这样子不断改善,也就使架构不断的改善升级。

 

什么是J2EE架构?

        J2EE架构就是我们开发企业项目系统时使用基于J2EE技术构建的软件架构,相当于给系统定了个外型,剩下的只要按照这个外型去具体实现它的功能。这样做的目的就是为了提升开发的效率以及一个好的架构也会大大提升我们软件的质量。

 

(一)一层架构模式   

        一层架构模式是最简单的方法,就是直接使用JSP进行所有功能的开发,JSP既负责显示结果与用户交互,并且也负责跳转控制、逻辑业务的处理。如下图所示:

      

         

        这种模式的好处就是直接容易理解,逻辑简单,开发速度快,但当功能复杂的时候,页面就会被塞很多java代码,如JDBC代码,逻辑代码,可读性会很差,并且代码无法重用。

 

(二)两层架构模式 Model 1

        为了解决上一个架构存在的问题:可读性差,代码无法重用。现在我们不要忘了Java有封装的特性,而且我们页面可读性差就是因为页面中插入了大量的java代码,而且当我们写多了一层架构的项目时会发现,在页面中的java代码很多都是相同的重复代码,都为了实现某一个功能,如JDBC代码,所以现在我们可以将这些Java代码抽取出来放在JavaBean(其实就是个java类)中,封装成一个一个的业务方法,供JSP页面来调用,如果需要实现相同功能的只需要写一遍代码就可以多次调用,也就是代码可重用性也相对提高了。

        


 
         这种模式下依然存在着很明显的缺点:jsp页面除了显示内容外还要负责控制页面跳转,当项目复杂时,页面与页面之间的流向会变得混乱,当改动某一页面时可能影响到与之相关的很多页面;还有就是程序逻辑代码的开发与页面设计纠缠在一起,这样既不便于分工合作,也不利于代码的重用。

 

(三)三层架构模式 Model 2(MVC模式)

        为了解决Model 1的缺点,而Model 1的缺点就在与页面设计还没有与程序逻辑代码真正分离,所以我们要继续想办法把他们分离开,JSP用来显示页面,这就需要有一个专门来负责接收页面请求并将处理结果返回给合适的页面。它就充当了一个“控制器”(Controller),这个控制器一般就由Servlet来实现,因为Servlet的特性恰好能完美实现这样的效果。

        这样一来,JSP变成一个单纯完成显示内容的显示层(Viewer),Servlet作为控制层(Controller),而被我们已经独立出来的事务逻辑(JavaBean),称为Model层,就构成了MVC模式,该模式至今被广泛应用,因为为我们的开发与维护提供了巨大的便利。

   

 

(四) 多层架构模式

        MVC模式虽然已经很经典,但在实际项目开发中,我们就会发现,在我们的Model层中存在大量的重复代码,就是JDBC代码,可以对它继续拆分、拆分成服务层(Service)与数据操作(DAO),服务层专门根据业务需要,调用数据底层对数据库进行操作,数据操作负责对数据库进行操作;由于这两层之间会涉及到数据的传递,数据量可能会比较多,所以在他们中间加上一个专门存储数据库的持久对象的存储对象(DTO)



 

 

       J2EE的多层架构中的每一层还可以使用一些开源框架进行组合,现在比较流行的就是Struts、Spring、Hibernate等框架,他们都各自作用在某些层,但都是基于MVC这个基础架构来的,所以掌握好MVC很重要。


http://chatgpt.dhexx.cn/article/Tf60qxRs.shtml

相关文章

java开发系统架构_Java开发:ECP系统J2EE架构开发平台

一 体系结构 ECP平台是一个基于J2EE架构设计的大型分布式企业协同管理平台,通过采用成熟的J2EE的多层企业架构体系,充分保证了系统的健壮性、开放性和扩展性。可选择部署于多种系统环境,满足不同类型、不同规模企业的需要。企业可以根据自己的…

J2EE的体系架构

转载自:http://zengbo0710.iteye.com/blog/79490 J2EE 即Java2平台企业版,它提供了基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型,这个多层通常通过三层或四层来实现: 1、客户层&…

J2EE体系架构

J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型。 J2EE分层 客户层,执行在客户计算…

基于J2EE架构的在线考试系统-Java(报告+源码+PPT

目前国内基于B/S、C/S结构的在线考试系统产品已经有许多,本文首先介绍了这些考试系统的形成和发展过程,大致结构。然后通过仔细分析,提出了目前的这些系统还存有系统更新和维护等种种弊端,仍不够成熟。基于对现有产品的思考,结合J…

Spring 架构图

http://it.100xuexi.com/view/otdetail/20130426/38b9d40a-138b-4b24-963c-ac029b034fe7.html 1.Spring 架构图 Spring 是一个开源 框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件…

Scala安装教程

1.Scala官网滑到最下面如图: 选择Allversions 2.我们将下载2.12.16版本,如图下 3.选scala-2.12.16.zip安装 4.先将scala-2.12.16zip解压为文件夹我解压到了D盘的scalal文件夹下面 D:\scalal\scala-2.12.16

linux上安装scala教程

Scala教程 一、介绍 cala 是 Scalable Language 的简写,是一门多范式的编程语言,Scala 语言可以运行在Window、Linux、Unix、 Mac OS X等系统上。 安装scala之前,需要在linux上安装jdk,如果没有安装jdk,可以参考这篇…

Scala教程之:可变和不变集合

文章目录 mutable HashMapimmutable HashMap 集合在程序中是非常有用的,只有用好集合才能真正感受到该语言的魅力。在scala中集合主要在三个包里面:scala.collection, scala.collection.immutable和scala.collection.mutable。 scala中引入不…

Scala语法教程

第一章 Scala入门 1.1概述 Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的 静态类型编程语言(静态语言需要提前编译的如:Java、c、c等,动态语言如:js&#xff0…

Scala入门教程

教程目录 0x00 教程内容0x01 Scala 理论1. Scala 基本概念2. Scala 交互式命令行 0x03 Scala 基本语法1. 基础语法2. 标识符3. 注释4. 数据类型5. 常量和变量6. 基本函数7. 局部应用8. 柯里化函数9. 可变长度参数10. 类11. 构造函数12. 继承13. 重载方法14. 抽象类15. 特质16. …

Scala基础教程

简介 Scala是一种结合了面向对象和函数式编程的、静态类型的高级编程语言。 Scala代码被编译成.class文件,运行在Java虚拟机(JVM)上,可以调用Java类库。 官方网站:https://www.scala-lang.org/ 官方文档:https://docs.scala-lan…

scala php,Scala 教程

Scala 教程 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,…

Scala详细教程

Scala详细教程 目录 Scala详细教程 1.Scala 介绍 1.1 什么是 Scala Scala 1.2 为什么要学 Scala 2.开发环境准备 2.1 ScalaSDK 安装 2.1.1Window 下安装 ScalaSDK 2.1.2Linux 下安装 ScalaSDK 2.2 IDEA 安装 2.3 IDEAScala 插件的离线安装 2.4 IDEA 创建 HelloScala…

Scala教程

1. 基础语法 Scala语言是基于Java虚拟机运行的,所以基本的语法和Java是没有区别的。但是为了简化Java的开发以及融合其他的编程语言的优点和特性,Scala在基本的语法上做了大量的修改和优化,让程序员开发起来更简单,方便&#xff…

Scala教程-详细全部

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_39346903/article/details/113562823 文章目录 第1章 Scala入门1.1 概述1.1.1 为什么学习Scala1.…

单工,半双工和全双工有何区别和联系?

单工、半双工和全双工是电信计算机网络中的三种通信信道。这些通信信道可以提供信息传达的途径。通信信道可以是物理传输介质或通过多路复用介质的逻辑连接。物理传输介质是指能够传播能量波的材料物质,例如数据通信中的导线。并且逻辑连接通常指电路交换连接或分组…

单工、半双工及全双工之间的区别

1、单工数据传输只支持数据在一个方向上传输;在同一时间只有一方能接受或发送信息,不能实现双向通信,举例:电视,广播。 2、半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实…

全双工、半双工、单工有什么区别!

什么是全双工? 全双工:(Full Duplex)是通讯传输的一个术语。通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时(瞬时)进行信号的双向传输&#xff0…

三种通信方式——单工、半双工和双工通信

数据通常是在两个站(点对点)之间进行传输,按照数据流的方向可分为三种传输模式:单 工、半双工、全双工。 一、单工通信(simplex) 单工通信只支持信号在一个方向上传输(正向或反向&#xff09…