J2EE的体系架构——J2EE

2023-11-07

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

 

J2EE分层:

                         

        客户层,执行在客户计算机上的组件,用户与系统的接口逻辑,通过http协议的来訪问应用server。
        表示层,执行在J2EEserver上的组件,通过与业务逻辑层互动。将用户须要的数据以适当的方式输出。

 


        业务逻辑层,相同是执行在J2EEserver上的组件。
        企业信息系统层(EIS),是指执行在EISserver上的软件系统。

        以上层次一般也指三层应用,也就是客户层+J2EE应用服务层+企业信息系统层。分布在三个不同位置:客户计算机、J2EEserver及后台的数据库或过去遗留下来的系统。

 

客户层

        Web浏览器

        也称Webclient, 以标准格式来显示从server传递过来的网页,它们传递给浏览器时已经是HTML或者XML格式,浏览器正确的显示给用户。

 

        小应用程序(Applet)

        是嵌在浏览器中的一种轻量级client。当web页面不能充分的表现数据或者应用界面的时候,才使用它,Applet是一种替代web页面的手段。可以使用J2SE开发Applet。Applet无法使用J2EE中的各种Service和API。须要执行在client安装了Java虚拟机的Web浏览器上。

 

         应用程序client

        J2EE应用程序client相对Applet而言。是一个较重量级的client,可以使用大多数的服务和API,它执行在客户机上,能提供强大而灵活易用的用户界面,如使用Swing或AWT创建的图形化的用户界面(GUI)。当然。应用程序可直接訪问执行在业务层的Bean,假设需求同意。也可以打开HTTP连接,建立与执行在Web层上的Servlet之间的通讯。

 


 

J2EE应用server

两大容器

        EJB容器+Web容器,即业务逻辑层+表示层

 

Web容器

        管理全部的Servlet等Web组件的执行。对响应客户请求和返回结果提供了执行时的支持。

 

 

EJB容器:

        负责全部的EJB的执行。支持EJB组件的事务处理和生命周期管理。以及Bean的查找和其它服务,支持J2EE多层架构的基础结构。是一个控制业务实现的执行期环境,并提供事务服务、持久性、安全性等重要的系统服务,让开发者不必开发基础服务而将注意力集中在业务逻辑的实现。

两大组件

Web组件+Ejb组件

 

Web组件

        与基于Web的client进行交互,J2EE中有三类Web组件:Servlet、JSP、JavaBean,Servlet是Webserver的功能扩展。接受Web请求,返回动态的Web页面。

Web容器中的组件能够使用EJB中的组件来完毕复杂的业务逻辑。值得注意的是静态的HTML页面和Applets不算是Web层组件。

 

EJB组件

        包括三种不同类型的EJB:会话Bean、消息驱动Bean、实体Bean
        第一:会话Bean:着重业务逻辑的实现与控制,负责与Web层通信,给Web层提供訪问业务数据的接口。

 

当client完毕运行过程的时候。会话Bean及相关数据会消失。


        第二:实体Bean:代表持久数据。数据相当于存储在数据库表中,它负责保存业务数据,给会话Bean訪问业务数据的接口。

 

        第三:消息驱动Bean:用于接收、处理客户通过JMS发送过来的消息,同意业务组件接收衣服的JMS消息。

 

企业信息系统层

        负责执行企业信息系统软件,包含ERP、数据库、文件夹服务、其它遗留系统等。

 

 

总结

       J2EE所包括的各类组件、服务架构及技术层次。均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性。解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

J2EE的体系架构——J2EE 的相关文章

  • 【j2ee系列】springmvc中使用quartz,项目启动就执行某些任务

    quartz有几种执行任务的方式 至于几种我也不知道 至少有两种吧 一种是org springframework scheduling quartz CronTriggerBean方式 配置指定的时间执行一次任务 如
  • GitHub、GIT、Intellij集成github初探

    一 什么是Git 刚接触Git或github的童鞋可能会把它们的概念搞混淆 所以在这里稍微解释一下 Git和github是两个完全不同的概念 Git是一个版本管理系统 Version Control System 简称 VCS 早期版本管理
  • 关于Java调用dll的方法

    Java语言本身具有跨平台性 如果通过Java调用DLL的技术方便易用 使用Java开发前台界面可以更快速 也能带来跨平台性 Java调用C C 写好的DLL库时 由于基本数据类型不同 使用字节序列可能有差异 所以在参数传递过程中容易出现问
  • maven的package与install命令区别

    之前一直不明白package与 install的区别 今天测试了下 如果b项目依赖a项目 而a打了包 package jar仅仅时打到了a项目的target下 这时编译b项目 还是会报错 找不到所依赖的a项目 说明b项目在本地仓库是没有找到
  • freemarker教程

    FreeMarker语言 FreeMarker语言概述 FreeMarker是一个模板引擎 一个基于模板生成文本输出的通用工具 使用纯Java编写 FreeMarker被设计用来生成HTML Web页面 特别是基于MVC模式的应用程序 虽然
  • 深夜,我常逛的几个网站。

    程序员的工作和日常生活非常的枯燥 这里给大家推荐一些程序员经常使用的网站 也是我经常上的一些网站 我将会从多个角度 多个层面为你整理归纳这些网站和论坛 01 项目类 项目是一个面试官非常看重的点 也是拓展视野 挖掘轮子一个的地方 下面就为你
  • apache工程jakarta(雅加达)家族介绍

    Apache Ant Project Ant 众所周知 Ant 蚂蚁 是一套基于java的程序打造工具 Apache Avalon Project 阿瓦隆 Avalon Avalon 阿瓦隆 凯尔特族传说中的西方乐土岛 据说亚瑟王及其部下死
  • 在浏览器中播放m3u8

    我自己做了个简单的demo地址 https github com onyas vip url resolve 欢迎star或fork 在浏览器上播放m3u8的视频地址有两种方式 html的video标签的方式 这种方式播放很简单
  • J2EE的体系架构——J2EE

    J2EE是Java2平台企业版 Java 2 Platform Enterprise Edition 它的核心是一组技术规范与指南 提供基于组件的方式来设计 开发 组装和部署企业应用 J2EE使用多层分布式的应用模型 J2EE分层 客户层
  • S​alesforce是怎么完成从0到1的?

    我之前写过无数篇Salesforce的文章 但是很多人还是想看看Salesforce如何从0到1以及从1到10的发展 所以我找来Salesforce的创始人在2009年 Salesforce成立十周年 之际亲自写的一本书 云攻略 来给大家梳
  • JXL(JExcelApi)相关资源

    1 主页 2 下载页面 Download JExcelApi 3 JXL API Online 4 全面挖掘Java Excel API 使用方法 1 5 全面挖掘Java Excel API 使用方法 2 6 使用JAVA透過JXL JE
  • 遍历一个HashMap

    可以通过2种方法遍历HashMap Map map new HashMap for Iterator iter map entrySet iterator iter hasNext Map Entry entry Map Entry ite
  • Myeclipse平台struts+hibernate+spring项目开发示例

    如果您按照上篇文章配置成功 可以进行开发简单的J2EE项目 开发前准备 1 新建项目包 如下图 Dao 数据层 service 逻辑层 web web展现层 2 建立好三层架构 部署好包名 建立一个jsp文件 取名为 login jsp 代
  • Java NIO框架Mina、Netty、Grizzly介绍与对比

    目录 Java NIO框架MinaNettyGrizzly介绍与对比 Mina Netty Grizzly 结语 Java NIO框架Mina Netty Grizzly介绍与对比 原文链接 http www 24xuexi com w 2
  • 一个码稿人自述:什么样的文档产品适合我?|深度吐槽

    关注ITValue 看企业级最新鲜 最价值报道 图片来源 Unsplash 钛媒体打工人 媒体相关从业经验4 5年 文档使用重度患者 今天以我曾经用过的 和现在主流的一些文档产品为例 来谈谈我的使用体验 以及什么样的文档适合我 一 我与文档
  • 压力测试工具apache-ab讲解

    最近在做webservices 得到的数据是从德国那边的服务器 要将这些数据整合到现在网站中去 不知道性能如何 就做个压力测试 现在有些压力测试工具都是收费的 在开源的apache中自带个ab工具 就在C Apache2 2 bin ab
  • netty源码分析之LengthFieldBasedFrameDecoder

    http www jianshu com p a0a51fd79f62 hmsr toutiao io utm medium toutiao io utm source toutiao io 拆包的原理 关于拆包原理的上一篇博文 netty
  • 【SSH网上商城项目实战20】在线支付平台的介绍

    之前已经完成了首页的显示 用户添加购物车 确认订单等功能 下面就是支付功能的开发了 用户确认了订单后会直接跳转到支付页面进行在线支付 在线支付需要第三方的接口 这一节主要介绍一些关于第三方支付的内容 从下一节开始 我们真正开发在线支付模块
  • Netty 4.0 实现心跳检测和断线重连

    一 实现心跳检测 原理 当服务端每隔一段时间就会向客户端发送心跳包 客户端收到心跳包后同样也会回一个心跳包给服务端 一般情况下 客户端与服务端在指定时间内没有任何读写请求 就会认为连接是idle 空闲的 的 此时 客户端需要向服务端发送心跳
  • mybatis自动生成@Table、@Column、@Id注解

    在pom xml中添加如下插件以及插件相关的依赖

随机推荐

  • pandas 报警告:A value is trying to be set on a copy of a slice from a DataFrame

    pandas 报警告 A value is trying to be set on a copy of a slice from a DataFrame 我在抽取了原来DataFrame数据的几列后 对抽取后的数据进行赋值操作时弹出这个警告
  • 提取分割单引号 ‘ ‘ 之间的内容且不重复分割单引号 python

    分割两个单引号之间的内容 且不重复分割已使用的单引号 废话少说 直接上干货 import re result re findall string 将string替换为你需要分割的部分 示例代码 string jmp qword ptr ri
  • MySQL - Left Join和Inner Join的效率对比,以及优化

    最近在写代码的时候 遇到了需要多表连接的一个问题 初始sql类似于 select from a left join b on a id b aid left join c on c bid b id left join d on d cid
  • 什么是DI

    Spring致力于简化java企业级开发 促进代码松耦合 成功的关键在于依赖注入和AOP Spring通过应用上下文 Application Context 装载bean的定义并把他们组装起来 Spring应用上下文全权负责对象的创建和组装
  • python3发送邮件带附件,Python3.4 邮件发送(含带中文附件)详解

    import smtplib import os from email mime text import MIMEText from email mime multipart import MIMEMultipart from email
  • Xshell使用密钥登录Linux服务器

    1 使用如下命令生成密钥对 root xuegod130 ssh keygen Generating public private rsa key pair Enter file in which to save the key root
  • jsonp 实现跨域 同时也是一个 webflux 的demo 示例

    文章目录 核心原理 代码 html 服务端 java 为例子 服务端目录结构 核心原理 前端 使用js 创建 script 标签 将请求地址 放到其src 中 并将 script 标签追加到文档流 后端 根据约定好的 callback 字段
  • element-ui 首页布局

    效果 代码
  • [python]numpy 中的@运算

    运算其实等价于矩阵乘法 r location s y l location r location 1 np dot s y l location 与上面式子等价
  • java 保留字符串数字的位数,不够前面补0

    Test public void test this printToConsole autoGenericCode 10011 this printToConsole autoGenericCode 000 3 不够位数的在前面补0 保留c
  • 数模笔记——论文写作

    论文写作 各模块写作要点 数学建模论文的重要性 数学建模论文的写作是数学建模中重要的一个环节 数学建模的论文是参赛队工作的全面总结 也是评委评价建模成绩的主要依据 一篇好的论文应该逻辑清晰 在语言表述上清楚 数学符号标记清晰 对于读者或者评
  • 学习JavaScript以及React技术报告

    在学习JS中遇到的一些问题总结 1 我们需要在页面加载时能够通过javascript去动态操作html中的一些对象 对于这些操作 我们最好是在body中定义onload操作 然后在该操作中去完成这些任务 尽量避免在html中嵌入script
  • 操作系统课程设计3_系统调用

    一 实验目的 1 学习怎样重新编译 Linux 内核 2 理解 掌握 Linux 标准内核和发行版本内核的区别 二 实验内容 1 通过重新编译Linux来实现系统调用 2 通过增加模块来实现系统调用 三 实验步骤和结果 一 通过重新编译内核
  • Voting【Codeforces 1251 E1 && E2】【贪心】

    Educational Codeforces Round 75 Rated for Div 2 E2 Now elections are held in Berland and you want to win them More preci
  • Huawei Cloud EulerOS(Linux)常用命令汇总

    更改主机名称 hostnamectl set hostname
  • SLF4J简介与使用(整合log4j)

    一 概念 SLF4J的全称是Simple Logging Facade for Java 即简单日志门面 SLF4J并不是具体的日志框架 而是作为一个简单门面服务于各类日志框架 如java util logging logback和log4
  • C++ STL 迭代器方法 之 advance与prev 方法 浅析

    摘要 迭代器是STL中重要的一支 prev和distance是其基本方法 distance方法十分简单 就不在此赘述 现主要对prev方法以及其相关方法 advance方法作简要介绍与使用说明 并在文末附上代码示例 Advance 方法 A
  • R语言编程 R语言作业

    一 40 分 请使用 nycflight13 回答以下问题 1 请用 flights 表单找出出发时间没有延误 但是到达时间的所有航班 2 在 1 数据的基础上计算到达每个目的地的航班数量 平均飞行距离和平 均到达延误时间 3 在 2 的基
  • 自然语言处理(NLP)学习笔记——RNN模型

    一 RNN架构解析 1 认识RNN模型 1 1 什么是RNN模型 RNN Recurrent Neural Network 中文称作循环神经网络 它一般以序列数据为输入 通过网络内部的结构设计有效捕捉序列之间的关系特征 一般也是以序列形式进
  • J2EE的体系架构——J2EE

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