目录 准备工作 .8 第1章总 括 9 一.分布式得多层应用程序 二.J2EE容器 .11 三.打包J2EE组件 12 四.开发者角色 3 五.本书所用的软件 .14 第2章动手做一个EJB .17 一.准备工作 二.创建2EE应用程序 三.创建企业Bean .19 四.创建2EE应用程序客户端 .22 五.创建wb客户端 25 六.设置企业Bean的NDI名 27 七.部署2EE应用程序 .28 八.运行2EE应用程序客户端 29 九.运行eb客户端 .29 十.修改J2EE应用程序 .30 十一。常见问题和解决方法 .31
目录 准备工作............................................................................................................................... 8 第 1 章 总 括.................................................................................................... 9 一.分布式得多层应用程序................................................................................ 9 二.J2EE容器................................................................................................................. 11 三.打包J2EE组件..................................................................................................... 12 四.开发者角色............................................................................................................ 13 五.本书所用的软件................................................................................................ 14 第 2 章 动手做一个EJB.......................................................................... 17 一.准备工作.................................................................................................................. 18 二.创建J2EE应用程序......................................................................................... 19 三.创建企业Bean...................................................................................................... 19 四.创建J2EE应用程序客户端....................................................................... 22 五.创建Web客户端.................................................................................................. 25 六.设置企业Bean的JNDI名............................................................................ 27 七.部署J2EE应用程序......................................................................................... 28 八.运行J2EE应用程序客户端....................................................................... 29 九.运行Web客户端.................................................................................................. 29 十.修改J2EE应用程序......................................................................................... 30 十一。常见问题和解决方法.............................................................................. 31
第3章企业Bean 35 1,企业Beam概述 ..36 2,会那eam 36 3,EntityBean.. 38 4,Message-Driven Bean .40 5.定义客户端访问接口 42 6,企业Bean的“内容” .45 7,企业Bean的命名约定 46 8,企业Bean的生存周期 46 第4章有状态会话Bean示例 51 1.购物车会话那ean CartEJB. 5l 二其他的企业Bean特性 58 第5章BMP的例子 .62 -SavingsAccountEJB. 62 二.用deploytool部署BMP实现的实体Bean 74 三.为BMP映射表间关系 74 四.BMP的主键 85 五.异常处理 88 第6章CMP的例子 89 一Roster4pp应用概述 90
第 3 章 企业Bean............................................................................................... 35 1,企业Bean概述......................................................................................................... 36 2,会话Bean..................................................................................................................... 36 3,EntityBean....................................................................................................................... 38 4,Message-Driven Bean ....................................................................................... 40 5.定义客户端访问接口....................................................................................... 42 6,企业Bean的“内容”...................................................................................... 45 7,企业Bean的命名约定...................................................................................... 46 8,企业Bean的生存周期...................................................................................... 46 第 4 章 有状态会话Bean示例...................................................... 51 1.购物车会话Bean CartEJB............................................................................ 51 二 其他的企业Bean特性....................................................................................... 58 第 5 章 BMP的例子....................................................................................... 62 一.SavingsAccountEJB.......................................................................................... 62 二.用deploytool部署BMP实现的实体Bean ....................................... 74 三.为BMP映射表间关系................................................................................... 74 四.BMP的主键............................................................................................................ 85 五.异常处理.................................................................................................................. 88 第 6 章 CMP的例子....................................................................................... 89 一 RosterApp应用概述............................................................................................ 90
二la@verEJB代码分析 90 三.RosterApp配置说明 95 四RosterApp中的方法调用 102 五运行Roster4/pp应用程序 六用deploytool工具部署CMP实现的实体Beam. .110 七CMP的主键, .110 第7章一个消,息驱动Bean的例子 113 一.例子应用程序介绍 113 二.J2EE应用程序客户端 .14 三.消,息驱动Bean类 .115 四.运行本例子 116 五.用deploytool部署消,息驱动Bean 117 六.用deploytool配置JMS客户端 .118 第8章EJB查询语言 .120 一.术语 120 二.简单语法 …121 三.查询例子 121 四.全部语法 124 五.EJB QL的限制 137 第9章网络客户端及组件 139
二 layerEJB代码分析............................................................................................... 90 三.RosterApp配置说明......................................................................................... 95 四 RosterApp中的方法调用............................................................................. 102 五 运行RosterApp应用程序............................................................................. 109 六 用deploytool工具部署CMP实现的实体Bean............................ 110 七 CMP的主键............................................................................................................ 110 第 7 章 一个消息驱动Bean的例子................................... 113 一.例子应用程序介绍........................................................................................ 113 二.J2EE应用程序客户端................................................................................. 114 三.消息驱动Bean类.............................................................................................. 115 四.运行本例子.......................................................................................................... 116 五.用deploytool部署消息驱动Bean........................................................ 117 六.用deploytool配置JMS客户端................................................................ 118 第 8 章 EJB查询语言................................................................................ 120 一.术语............................................................................................................................ 120 二.简单语法................................................................................................................ 121 三.查询例子................................................................................................................ 121 四.全部语法................................................................................................................ 124 五.EJB QL的限制................................................................................................... 137 第 9 章 网络客户端及组件............................................................. 139
第11章JSP技术 165 第12章JSP页面中的JavaBean组件 .178 第13章在JSP页面中自定义标签 182 第14章事务 .202 一.什么是事务 .202 二.容器管理事务 203 三.Bean管理事务 208 四.企业Beam事务摘要 211 五.事务超时 211 六.隔离级别 212 七.更新多个数据库 212 八.Wb组件事务 214 第15章安全 .215 一。纵览 215 二.安全角色 .216 三.eb层安全 217 四.EJB层安全 219 五.应用程序客户瑞层安全 .220 六.EIS(Enterprise Information System)层安全 …22l 七.传递安全身份 223
第 11 章 JSP技术.............................................................................................. 165 第 12 章 JSP页面中的JavaBean组件........................... 178 第 13 章 在JSP页面中自定义标签................................... 182 第 14 章 事务.................................................................................................................... 202 一.什么是事务.......................................................................................................... 202 二.容器管理事务.................................................................................................... 203 三.Bean管理事务.................................................................................................... 208 四.企业Bean事务摘要........................................................................................ 211 五.事务超时................................................................................................................ 211 六.隔离级别................................................................................................................ 212 七.更新多个数据库.............................................................................................. 212 八.Web 组件事务................................................................................................... 214 第 15 章 安全.......................................................................................................... 215 一.纵览............................................................................................................................ 215 二.安全角色................................................................................................................ 216 三.Web层安全............................................................................................................ 217 四.EJB层安全............................................................................................................ 219 五.应用程序客户端层安全............................................................................ 220 六.EIS(Enterprise Information System)层安全....................... 221 七.传递安全身份.................................................................................................... 223
八.J2EE用户、域和组 224 九.安装服务器证书25 第16章资源连接 .227 一.NDI名和资源引用 227 二.数据库连接 230 三.邮件服务连接 232 四.URL资源连接 234 第17章DUKE的银行应用程序 .236
八.J2EE用户、域和组....................................................................................... 224 九.安装服务器证书.............................................................................................. 225 第 16 章 资源连接.......................................................................................... 227 一.JNDI名和资源引用....................................................................................... 227 二.数据库连接.......................................................................................................... 230 三.邮件服务连接.................................................................................................... 232 四.URL资源连接..................................................................................................... 234 第 17 章 DUKE的银行应用程序.......................................... 236
第一部分介绍 准备工作 J2EE指南对于广大的Java程序员来说是一份不可或缺的资料了。这篇导论对于初次碰到 2EE的程序员来说有者同样的作用。它与Java指南一样都是一例子为中心。 谁应该使用这指南 这篇指南是为爱好开发和部署J2EE应用程序的程序员准备的。它包括了组成J2E平台的 技术以及描述如何开发J2EE组件并部署在J2EE软件开发包上。 这篇指南不是为2EE服务器及工具供应商准备的,它没有解释如何实现2EE结构,也没 有解释2EE软件包。J2EE规范描述了J2EE结构并可以从下面的网址下载: http://java.sun.com/j2ee/docs.html#specs 关于例子 这篇指南包含很多完整的,可运行的例子。你可以看看例子列表P445)。 理解例子的准备工作 为了理解这些例子,你需要熟练Java语言,SQL,及关系型数据库的概念,这些非常重要 的主题在ava指南中,下面的表格已列了出来。 主题 Java指南 JDBC http://java.sun.com/docs/books/tutorial/jdbe Threads http://java.sun.com/docs/books/tutorial/essential/threads JavaBeans http://java.sun.com/docs/books/tutorial/javabean Security http:/java.sun.com/docs/books/tutorial/security1.2 例子下载 如果你一再线看了这些文档,并且你向变异并运行这些例子,可以从下面的网址下载 http://java sun.com/j2ee/download.html#tutorial 如果你安装了这些捆绑的例子,例子的源代码在目录2 eetutorial/examples/src下,子目录 ejb下是EB的例子。这些捆绑的例子也包括j2 ceEAR,位于目录j2 cetutorial/examples/ears下。 如何编译并运行例子 这篇指南文档是J2 EE SDK1.3版,要编译、运行例子你需要J2 EE SDK1.3及Java2标准 版,你可以从下面的网址下载2EE1.3: http://java.sun.com/i2ee/download html#sdk 下载J2SE1.3.1的网址: http://java.sun.com/j2se/1.3/ 这些例子附有一个配置文件 一antl.3,一个方便的运行工具。这个工具是由Apache软件公司
第一部分 介绍 准备工作 J2EE 指南对于广大的 Java 程序员来说是一份不可或缺的资料了。这篇导论对于初次碰到 J2EE 的程序员来说有着同样的作用。它与 Java 指南一样都是一例子为中心。 谁应该使用这指南 这篇指南是为爱好开发和部署 J2EE 应用程序的程序员准备的。它包括了组成 J2EE 平台的 技术以及描述如何开发 J2EE 组件并部署在 J2EE 软件开发包上。 这篇指南不是为 J2EE 服务器及工具供应商准备的,它没有解释如何实现 J2EE 结构,也没 有解释 J2EE 软件包。J2EE 规范描述了 J2EE 结构并可以从下面的网址下载: http://java.sun.com/j2ee/docs.html#specs 关于例子 这篇指南包含很多完整的,可运行的例子。你可以看看例子列表(P445)。 理解例子的准备工作 为了理解这些例子,你需要熟练 Java 语言,SQL,及关系型数据库的概念,这些非常重要 的主题在 Java 指南中,下面的表格已列了出来。 主题 Java 指南 JDBC http://java.sun.com/docs/books/tutorial/jdbc Threads http://java.sun.com/docs/books/tutorial/essential/threads JavaBeans http://java.sun.com/docs/books/tutorial/javabean Security http://java.sun.com/docs/books/tutorial/security1.2 例子下载 如果你一再线看了这些文档,并且你向变异并运行这些例子,可以从下面的网址下载: http://java.sun.com/j2ee/download.html#tutorial 如果你安装了这些捆绑的例子,例子的源代码在目录 j2eetutorial/examples/src 下,子目录 ejb 下是 EJB 的例子。这些捆绑的例子也包括 j2ee EAR,位于目录 j2eetutorial/examples/ears 下。 如何编译并运行例子 这篇指南文档是 J2EE SDK 1.3 版,要编译、运行例子你需要 J2EE SDK 1.3 及 Java2 标准 版,你可以从下面的网址下载 J2EE1.3: http://java.sun.com/j2ee/download.html#sdk 下载 J2SE1.3.1 的网址: http://java.sun.com/j2se/1.3/ 这些例子附有一个配置文件——ant1.3,一个方便的运行工具。这个工具是由 Apache 软件公司
Jakarta项目组开发的。可以从下面的网址下载: http://jakarta apache ore/builds/jakarta-ant/release/v3/bin 要编译例子,可按照下面的步骤来 1.下载并安装J2 SE SDK13.1、J2 EE SDK13及ant. 2.J2 SE SDK1.3.1、J2 EE SDK1.3及ant的安装说明如何配置环境变量。对照下表和对环 境变量的配置情况 环培变量 值 JAVA HOME J2 SE SDK的安装路径 J2EE HOME J2 EE SDK的安装路径 ANT HOME ANT的安装路径 PATH 应该包括J2 EE SDK.J2 SE SDK&ANT的安装 路径 3.转到目录j2 etutorial/example 4.运行ant target. 相关信息 这篇指南提供了如何使用主要的组件技术在J2EE平台上运用的简明概括,要了解更多的信 息可参考下面的网址: EJB: http://iava.sun.com/products/eib Java Servlet: http//java sun com/products/servlets JSP: http://javasun.com/products/jsp 第1章总括 今天,越来越多的开发人员都想编写分布式的,事务型的企业及应用程序,以及平衡速度、 安全及服务器方可靠度的技术。如果你已经在这个领域工作,你应该知道在当今的快速变换及 需求的电子商务及信息技术的世界里,企业应用程序需要设计、编译、产生低价位的、高速的、 占用少量资源的程序。 为了缩减开发成本,快速跟踪企业应用的设计和开发,J2EE技术提供了基于组件的设计方 法,开发、集成、部署应用程序。J2EE平台提供了多层分布式应用模式,使具有重用的能力, 并集成了基于XML的数据交换 一一个统一的安全模式及灵活的事务控制。 一.分布式得多层应用程序 J2EE平台使用多层分布式的应用模式。应用逻辑根据其功能分成多个组件,各种不同的应 用组件构成分布在不同的依赖于层的机器上的2E程序。下面列出了位于不同层的组件 运行在客户机上的客户层组件 运行在J2EE服务器上的网络层 云行在2E服务器上的罗辑层 运行在ES服务器上的企业信息层 尽管J2EE应用程序可以由三层或四层构成,J2EE应用程序通常由三层构成,因为他们分 布于三个不同的位置:客户及,服务器,后台数据库服务器。通过这种方式运行的三层应用模
Jakarta 项目组开发的。可以从下面的网址下载: http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/bin 要编译例子,可按照下面的步骤来: 1.下载并安装 J2SE SDK1.3.1、J2EE SDK1.3 及 ant. 2.J2SE SDK1.3.1、J2EE SDK1.3 及 ant 的安装说明如何配置环境变量。对照下表和对环 境变量的配置情况。 环境变量 值 JAVA_HOME J2SE SDK 的安装路径 J2EE_HOME J2EE SDK 的安装路径 ANT_HOME ANT 的安装路径 PATH 应该包括J2EE SDK,J2SE SDK&ANT的安装 路径 3.转到目录 j2eetutorial/example. 4.运行 ant target. 相关信息 这篇指南提供了如何使用主要的组件技术在 J2EE 平台上运用的简明概括,要了解更多的信 息可参考下面的网址: EJB: http://java.sun.com/products/ejb Java Servlet: http://java.sun.com/products/servlets JSP: http://java.sun.com/products/jsp 第 1 章 总 括 今天,越来越多的开发人员都想编写分布式的,事务型的企业及应用程序,以及平衡速度、 安全及服务器方可靠度的技术。如果你已经在这个领域工作,你应该知道在当今的快速变换及 需求的电子商务及信息技术的世界里,企业应用程序需要设计、编译、产生低价位的、高速的、 占用少量资源的程序。 为了缩减开发成本,快速跟踪企业应用的设计和开发,J2EE 技术提供了基于组件的设计方 法,开发、集成、部署应用程序。J2EE 平台提供了多层分布式应用模式,使具有重用的能力, 并集成了基于 XML 的数据交换——一个统一的安全模式及灵活的事务控制。 一.分布式得多层应用程序 J2EE 平台使用多层分布式的应用模式。应用逻辑根据其功能分成多个组件,各种不同的应 用组件构成分布在不同的依赖于层的机器上的 J2EE 程序。下面列出了位于不同层的组件 . 运行在客户机上的客户层组件 . 运行在 J2EE 服务器上的网络层 . 运行在 J2EE 服务器上的逻辑层 . 运行在 EIS 服务器上的企业信息层 尽管 J2EE 应用程序可以由三层或四层构成,J2EE 应用程序通常由三层构成,因为他们分 布于三个不同的位置:客户及,服务器,后台数据库服务器。通过这种方式运行的三层应用模
式拓展了基于客户/服务的两层模式。 J2EE组件 J2EE应用程序由组件构成。一个J2EE组件是自包含的,与其相关的语气它组件通信的类 及文件集成到J2EE应用程序的功能软件单元。J2EE规范定义了下面一些组件: 。 运行在客户端的应用客户程序及小程序。 运行于服务器网络的Servlet&Jsp组件。 运行于服务端的企业罗辑组件 -EJB。 2EE组件用Java语言编写,通过相同的方法编译。J2EE组件与标准Java类的不同之处在 于J2EE组件集成到了应用程序中,证明能很好的组成,与J2E规范兼容,并部署到负责运行 管理的J2EE服务器上。 J2EE客户端 J2EE客户端可以使网络刘览器也可以是桌面应用程序。 网络浏览器 网络客户程序由两部分组成:动态网页包含各种标记语言(HTML,XML等),它由运行于 网络层的网络组件产生,浏览器从服务器接受信息并反馈到页面上。 网络客户端又称为砖客户。瘦客户端通常不运行像查询数据库,执行复杂的业务规侧则,或 连到合法的应用程序。当你使用瘦客户时,重量级的操作都载入到运行于J2E正服务器上的企 Ban,它能够均衡安全,速度,服务及可靠性。 小程序 网页可以包含小程序。小程序是一个较小的用java语言编写的程序,并能通过安装在浏览 器上的虚拟机运行 网络组件首选API,它可以创建网络客户层,因为在客户系统中它不需要插件或安全策略 文件,宁外,网络组件能提供更干净的,模块化的应用设计,因为它将程序设计与页面设计相 分离。这样,页面设计人员可以进行页面设计而不需要懂Jva程序设计。 应用客户端 J2EE应用客户端运行在客户上,它为用户处理任务提供了比标记语言丰富的接口。典型的 是它拥有通过Swinge&AWTAPI建立的图形用户界面,基于命令行的接口也是可以的。 应用客户端可以直接调用业务逻辑层的企业bean。 JavaBean组件结构 服务端及客户端也可以包含基于JavaBean组件来管理客户端与运行于服务端的组件间的数 据流或服务端组件与数据库间的数据流。J2EE规范没有认为JavaBean为j2EE组件。 JavaBean组件有实例变量和get,set方法来设置、获取变量值。 网络组件 J2EE网络组件可以是servlet或jsp。Servlet是java类,它能动态处理请求及响应。Jsp页 面是基于文档的,能像servlet-一样执行的能允许更多的静态页面内容。 静态HTML页面及a即plets域网络组件绑在一起,但J2EE规范没有认为这些为网络组件。 网络层以包含JavaBean组件来管理用户输入、发送输入道罗辑层的EJB以处理
式拓展了基于客户/服务的两层模式。 J2EE 组件 J2EE 应用程序由组件构成。一个 J2EE 组件是自包含的,与其相关的语气它组件通信的类 及文件集成到 J2EE 应用程序的功能软件单元。J2EE 规范定义了下面一些组件: 。 运行在客户端的应用客户程序及小程序。 。 运行于服务器网络的 Servlet&Jsp 组件。 。 运行于服务端的企业逻辑组件——EJB。 J2EE 组件用 Java 语言编写,通过相同的方法编译。J2EE 组件与标准 Java 类的不同之处在 于 J2EE 组件集成到了应用程序中,证明能很好的组成,与 J2EE 规范兼容,并部署到负责运行、 管理的 J2EE 服务器上。 J2EE 客户端 J2EE 客户端可以使网络浏览器也可以是桌面应用程序。 网络浏览器 网络客户程序由两部分组成:动态网页包含各种标记语言(HTML,XML 等),它由运行于 网络层的网络组件产生,浏览器从服务器接受信息并反馈到页面上。 网络客户端又称为瘦客户。瘦客户端通常不运行像查询数据库,执行复杂的业务规则,或 连到合法的应用程序。当你使用瘦客户时,重量级的操作都载入到运行于 J2EE 服务器上的企业 Bean,它能够均衡安全,速度,服务及可靠性。 小程序 网页可以包含小程序。小程序是一个较小的用 java 语言编写的程序,并能通过安装在浏览 器上的虚拟机运行 网络组件首选 API,它可以创建网络客户层,因为在客户系统中它不需要插件或安全策略 文件,宁外,网络组件能提供更干净的,模块化的应用设计,因为它将程序设计与页面设计相 分离。这样,页面设计人员可以进行页面设计而不需要懂 Java 程序设计。 应用客户端 J2EE 应用客户端运行在客户上,它为用户处理任务提供了比标记语言丰富的接口。典型的 是它拥有通过 Swing&AWTAPI 建立的图形用户界面,基于命令行的接口也是可以的。 应用客户端可以直接调用业务逻辑层的企业 bean。 JavaBean 组件结构 服务端及客户端也可以包含基于JavaBean组件来管理客户端与运行于服务端的组件间的数 据流或服务端组件与数据库间的数据流。J2EE 规范没有认为 JavaBean 为 j2EE 组件。 JavaBean 组件有实例变量和 get,set 方法来设置、获取变量值。 网络组件 J2EE 网络组件可以是 servlet 或 jsp。Servlet 是 java 类,它能动态处理请求及响应。Jsp 页 面是基于文档的,能像 servlet 一样执行的能允许更多的静态页面内容。 静态 HTML 页面及 applets 域网络组件绑在一起,但 J2EE 规范没有认为这些为网络组件。 网络层可以包含 JavaBean 组件来管理用户输入、发送输入道逻辑层的 EJB 以处理
业务逻辑组件 业务逻辑代码是解决、达到特定业务领域的需求,如银行、零售、金融,又EB处理的业 务逻辑层。 企业Bean可以重新从存储器找回数据,如果必要并处理它,然后发送到客户程序。 总共有三种EJB:会话bean,实体bean,消息驱动bean 会话bean代表短暂的与客户的会话,当客户结束执行时,会话bean及它的数据就消失了。与 会话bean相比,实体bean代表存储在数据库的表,如果客户结束程序或服务器关闭,潜在的 服务方法会将数据存储。 二.J2EE容器 瘦客户端的多层应用程序总是很难开发,因为它包括各个层的事务处理、状态管理、多线 程、资源池和其他复杂底层细节等等的错综复杂的编码。但是基于组件和平台独立的2EE 平合台使2EE应用程序容易开发,因为商业逻辑被封装在可重用的组件(EB)中。另外J2EE 服务器以容器的形式为所有组件提供底层服务,因此你不必再为这些底层服务二伤脑筋, 而可以专注于解决商业问题。 容器服务 容器(Container)是组件和支持组件功能的底层特定平台(如数据库)之间的接口。在运 行Web组件、企业Bean或者J2EE应用程序客户端之前,你必须将它们装配到一个2EE 应用程序中,并部署它们到容器中。 装配的过程包括为J2EE应用程序的每个组件和J2EE应用程序木身设置容器的配置信息, 这些配置信息定制2EE服务器支持的底层服务,包括安全,事务管理,Java命名和目录接 口(NDI)查找和远程连接等。下面使这些服务的精简描述: ·J2EE安全模型让你配置Web组件或者企业Bean以使系统资源贝被授权用户访问 ·J2EE事务模型让你指定属于同一个事务的多个方法以使这些方法作为一个原子操作 被执行 NDI查找服务为企业应用中的多种命名和目录服务提供统一接口使应用程序组件可 以统一访问这些命名和目录服务。 ●J2EE远程连接模型管理客户猪和企业Ban之间的底层通信。企业Bn被创建后,客 户端调用它的方法就像在本地虚拟机中的调用一样。 事实上,2EE体系结构提供可配置服务意味者同一个2E应用程序中的组件可以根据不 同的部署环境而有不同的行为。例如,一个企业Ban的安全配置可以使它在一种产品环境 中有一个级别的数据库数据访问权限,而在另一种产品环境中有不同的数据库数据访问权 限。 容器也管理若很多不可配置的服务,如企业Bean和Servlet的生命周期,数据库连接池 数据持久化机制和J2EE平台API的访问权等等。尽管数据持久化机制是不可配置服务 但是J2EE体系结构允许你忽略容器管理的持久性(Container--Managed Persistence,CMP) 机制在企业Ban实现中加入合适的代码,当然除非你确实需要比容器管理持久性机制提供 的更多的应用程序控制权,否则使用容器管理的持久性。例如你可以用Bean管理的持久性 (Bean-Managed Persistence,BMP)机制来实现自己的查找方法或者创建一个定制的数据库
业务逻辑组件 业务逻辑代码是解决、达到特定业务领域的需求,如银行、零售、金融,又 EJB 处理的业 务逻辑层。 企业 Bean 可以重新从存储器找回数据,如果必要并处理它,然后发送到客户程序。 总共有三种 EJB:会话 bean,实体 bean,消息驱动 bean。 会话 bean 代表短暂的与客户的会话,当客户结束执行时,会话 bean 及它的数据就消失了。与 会话 bean 相比,实体 bean 代表存储在数据库的表,如果客户结束程序或服务器关闭,潜在的 服务方法会将数据存储。 二.J2EE 容器 瘦客户端的多层应用程序总是很难开发,因为它包括各个层的事务处理、状态管理、多线 程、资源池和其他复杂底层细节等等的错综复杂的编码。但是基于组件和平台独立的 J2EE 平台使 J2EE 应用程序容易开发,因为商业逻辑被封装在可重用的组件(EJB)中。另外 J2EE 服务器以容器的形式为所有组件提供底层服务,因此你不必再为这些底层服务二伤脑筋, 而可以专注于解决商业问题。 容器服务 容器(Container)是组件和支持组件功能的底层特定平台(如数据库)之间的接口。在运 行 Web 组件、企业 Bean 或者 J2EE 应用程序客户端之前,你必须将它们装配到一个 J2EE 应用程序中,并部署它们到容器中。 装配的过程包括为 J2EE 应用程序的每个组件 和 J2EE 应用程序本身设置容器的配置信息。 这些配置信息定制 J2EE 服务器支持的底层服务,包括安全,事务管理,Java 命名和目录接 口(JNDI)查找和远程连接等。下面使这些服务的精简描述: z J2EE 安全模型让你配置 Web 组件或者企业 Bean 以使系统资源只被授权用户访问 z J2EE 事务模型让你指定属于同一个事务的多个方法以使这些方法作为一个原子操作 被执行 z JNDI 查找服务为企业应用中的多种命名和目录服务提供统一接口使应用程序组件可 以统一访问这些命名和目录服务。 z J2EE 远程连接模型管理客户端和企业 Bean 之间的底层通信。企业 Bean 被创建后,客 户端调用它的方法就像在本地虚拟机中的调用一样。 事实上,J2EE 体系结构提供可配置服务意味着同一个 J2EE 应用程序中的组件可以根据不 同的部署环境而有不同的行为。例如,一个企业 Bean 的安全配置可以使它在一种产品环境 中有一个级别的数据库数据访问权限,而在另一种产品环境中有不同的数据库数据访问权 限。 容器也管理着很多不可配置的服务,如企业 Bean 和 Servlet 的生命周期,数据库连接池, 数据持久化机制和 J2EE 平台 API 的访问权等等。尽管数据持久化机制是不可配置服务, 但是 J2EE 体系结构允许你忽略容器管理的持久性(Container-Managed Persistence,CMP) 机制在企业 Bean 实现中加入合适的代码,当然除非你确实需要比容器管理持久性机制提供 的更多的应用程序控制权,否则使用容器管理的持久性。例如你可以用 Bean 管理的持久性 (Bean-Managed Persistence,BMP)机制来实现自己的查找方法或者创建一个定制的数据库
缓冲池。 容器类型 部署过程将J2EE应用程序安装到2E容器中。图15展示了组件在容器中的情况: J2EE Server Browser Servlet JSP Page Web Container Apno Database Application Ent Container Client Machine EJB Container 图1-5J2EE服务器和容器(Container) J2 EE server(J2EE服务器) J2EE产品的运行时服务部分。一个J2EE服务器提供EB容器(EJB Container)和Web容 Web Container). EJB容器 管理J2EE应用程序中企业Bean的运行。企业Bean和它们的容器在J2EE服务其中运行。 Web容器 管理J2EE应用程序中JSP页面和Servlet组件的运行。Web组件和容器也在J2EE服务其中 运行。 Application client container(应用程序客户端容器)) 管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户机。 Applet container CApplet容器) 管理Applet的运行。由在客户端运行的浏览器和Java插件组成。 三.打包J2EE组件 2EE组件都分开打包然后组装成一个J2EE应用程序来部署。每一个组件用到的文件如 GF、HTML文件或者服务器端的实用类文件等,再加上一个部署描述符文件都被装配到
缓冲池。 容器类型 部署过程将 J2EE 应用程序安装到 J2EE 容器中。图 1-5 展示了组件在容器中的情况: 图 1 J2E EJB Web Application client container(应用程序客户端容器) App 三.打包 GIF、 ML 文件或者服务器端的实用类文件等,再加上一个部署描述符文件都被装配到 -5 J2EE 服务器和容器(Container) E server(J2EE服务器) J2EE 产品的运行时服务部分。一个 J2EE 服务器提供 EJB 容器(EJB Container)和 Web 容 器(Web Container)。 容器 管理 J2EE 应用程序中企业 Bean 的运行。企业 Bean 和它们的容器在 J2EE 服务其中运行。 容器 管理 J2EE 应用程序中 JSP 页面和 Servlet 组件的运行。Web 组件和容器也在 J2EE 服务其中 运行。 管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户机。 let container(Applet容器) 管理 Applet 的运行。由在客户端运行的浏览器和 Java 插件组成。 J2EE 组件 J2EE 组件都分开打包然后组装成一个 J2EE 应用程序来部署。每一个组件用到的文件如 HT