第1章 EJB基础
1.1 EJB的历史和目标
1.1.1 EJB的基本概念
1.1.2 EJB体系结构的历史
1.1.3 组件体系结构
1.1.4 多层体系结构
1.1.5 EJB设计的目标
1.2 EJB的特点及使用
1.2.1 三种分布式体系结构的比较
1.2.2 EJB的使用对象
1.2.3 EJB的优势
1.2.4 使用EJB的商业解决方案
1.3 Java2平台,企业版(J2EE)
1.3.1 什么是J2EE
1.3.2 J2EE框架
1.3.3 EJB
1.3.4 通信机制
1.3.5 数据连接
1.3.6 商业逻辑处理机制
1.3.7 Web连接
1.3.8 JavaMail
1.3.9 XML
1.4 EJB的现状和前景
1.5 小结
第2章 进一步深入EJB
2.1 什么是企业Bean
2.1.1 EJB的种类
2.1.2 EJB的基础:分布式对象
2.1.3 分布式对象和中间件
2.2 Enterprise Bean的组成
2.2.1 Enterprise Bean类
2.2.2 EJB对象
2.2.3 远程接口
2.2.4 本地接口
2.2.5 Home对象
2.2.6 Home接口
2.2.7 部署描述符
2.2.8 厂商相关文件
2.2.9 Ejb-jar文件
2.3 EJB中各角色介绍
2.3.1 企业Bean提供商
2.3.2 应用程序集成商
2.3.3 部署方案设计师
2.3.4 EJB服务器提供商
2.3.5 EJB容器提供商
2.3.6 持续性管理器提供商
2.3.7 系统管理员
2.4 容器和服务器的责任
2.4.1 资源管理和Bean生命周期管理
2.4.2 状态管理
2.4.3 事务处理
2.4.4 安全
2.4.5 持续性
2.4.6 远程访问和位置透明性
2.4.7 代码粘合和Bean安装工具
2.4.8 特殊容器功能
2.5 理解EJB的调用
2.5.1 MDI在EJB中的作用
2.5.2 如何用JNDI来定位Home对象
2.5.3 生成一个EJB对象
2.5.4 调用一个方法
2.5.5 撤消一个EJB对象
2.6 EJB的配置与部署
2.6.1 使用XML的J2EE应用程序部署描述
2.6.2 EJB部署描述符顶极元素
2.6.3 EJB JAR文件
2.6.4 EJB部署过程
2.7 小结
第3章 开发工具和服务器
3.1 J2EE开发包和它的部署工具
3.1.1 建立源文件
3.1.2 编译
3.1.3 部署
3.1.4 运行
3.1.5 补充
3.2 Borland Jbuilder和BAS/BES
3.2.1 设置
3.2.2 开发
3.2.3 运行
3.2.4 补充
3.3 数据库服务器Cloudscape和Oracle
3.3.1 Cloudscape
3.3.2 Oracle
3.4 流行EJB服务器评估
3.4.1 SUN的J2EE
3.4.2 BEA的WebLogic
3.4.3 IBM的WebSphere
3.4.4 Borland的BES
3.4.5 免费的JBOSS
3.5 小结
第4章 会话Bean
4.1 概述
4.2 会话Bean编程接口
4.2.1 EJBHome/EJBLocalHome接口
4.2.2 EJBObject/EJBLocalobject接口
4.2.3 SessionBean接口
4.3 无状态会话Bean
4.3.1 无状态会话Bean简介
4.3.2 无状态会话Bean的特性
4.3.3 无状态会话Bean的生存期模型
4.4 有状态会话Bean
4.4.1 有状态会话Bean简介
4.4.2 对话状态
4.4.3 有状态会话Bean的生存期模型
4.5 使用CountBean汇总商品价格
4.5.1 Bean类CounBean.java
4.5.2 Home接口CountHome.java
4.5.3 远程接日Count.java
4.5.4 部署描述符
4.5.5 部署Bean
4.5.6 客户端代码
4.5.7 运行
4.6 小结
第5章 实体Bean
5.1 数据持续化
5.1.1 各行其是时期
5.1.2 第一次统一浪潮——ODBC
5.1.3 Java的处理方法——JDBC
5.1.4 未来的方向——JDO
5.1.5 EJB2.0的处理方式——实体Bean和EJB QL
5.2 实体Bean概述
5.2.1 实体Bean的生存期长
5.2.2 实体Bean的缓冲
5.2.3 实体Bean可以被多个客户端调用
5.2.4 主键
5.2.5 两种不同的实体Bean
5.3 实体Bean编程接口——EntityBean接口
5.3.1 setEntityContext/unsetEntityContext方法
5.3.2 ejbRemove方法
5.3.3 ejbActivate/ejbPassivate方法
5.3.4 ejbLoad/ejbStore方法
5.3.5 ejbCreate<METHOD>方法
5.3.6 ejbPostCreate<METHOD>方法
5.4 实体Bean编程接口二——其他几种接口
5.4.1 EntityContext接口
5.4.2 EJBHome/EJBLocalHome接口
5.4.3 Home方法
5.5 实体Bean的生存期模型
5.6 小结
第6章 容器管理持续性的实体Bean
6.1 概述
6.1.1 抽象持续模式
6.1.2 EJB QL
6.2 实体Bean类
6.2.1 CMP的Bean类是虚类
6.2.2 字段在于类中定义
6.3 用CMP实体Bean表示图书信息
6.3.1 远程接口Book.java
6.3.2 本地接口BookLocal.java
6.3.3 本地Home接口BookHome.java
6.3.4 本地Home接口BookLocalHome.java
6.3.5 实体Bean类BookBean.java
6.3.6 部署描述符ejb-jar.xml
6.3.7 客户端代码BookClient.java
6.4 容器管理的关系
6.4.1 实体Bean的关系类型
6.4.2 CMR字段
6.4.3 在部署描述符中指定关系
6.4.4 示例
6.5 小结
第7章 Bean管理持续性的实体Bean
7.1 BMP实体Bean中持续性的实现
7.1.1 数据库连接
7.1.2 ejbFindef<method>方法
7.2 用BMP实体Bean表示银行账户信息
7.2.1 远程接口Account.java
7.2.2 AccountLocal.java
7.2.3 AccountHome.java
7.2.4 AccountLocalHome.java
7.2.5 AccountPK.java
7.2.6 AccountBean.java
7.2.7 部署描述符
7.2.8 数据库脚本account.sql
7.2.9 客户端程序AccountClient.java
7.3 小结
第8章 消息驱动Bean
8.1 JMS概述
8.1.1 消息是什么
8.1.2 JMS API是什么
8.1.3 如何使用JMS API
8.1.4 JMS API在J2EE中如何工作
8.1.5 异步的概念
8.2 基本的JMS API概念
8.2.1 JMS体系结构
8.2.2 消息域
8.2.3 消息处理
8.2.4 JMS API编程模型
8.3 消息驱动Bean概述
8.4 编程接口
8.4.1 所需的消息驱动Bean接口
8.4.2 所需的javax.jms.MessageListener接口
8.4.3 消息驱动Bean的上下文接口
8.4.4 消息驱动Bean的ejbCreate方法
8.4.5 序列化的消息驱动Bean方法
8.4.6 消息处理的并行性
8.4.7 消息驱动Bean方法的事务上下文
8.4.8 消息应答
8.4.9 消息驱动Bean与目的地的关联
8.4.10 处理异常
8.4.11 消失了的ejbRemove方法
8.5 消息驱动Bean的生存期模型
8.6 建立一个Email应用程序
8.6.1 第一步:建立一个电子邮件消息队列
8.6.2 第二步:编写电子邮件客户端(EmailClient.java)
8.6.3 第三步:编写一个消息驱动Bean(EmailMDB.java)
8.6.4 第四步:为消息驱动Bean编写部署描述符
8.6.5 第五步:将代码打包
8.7 小结
第9章 事务处理和安全管理
9.1 事务处理的概念
9.2 几种典型的事务
9.2.1 对多个数据库的更新
9.2.2 基于JMS会话的消息发送、接收与多个数据库更新
9.2.3 通过多个EJB服务器更新数据库
9.2.4 基于客户端管理的划分
9.2.5 基于容器管理的划分
9.3 声明型事务管理
9.3.1 事务作用域
9.3.2 事务属性
9.3.3 事务属性的定义
9.3.4 事务传播
9.4 显式事务管理
9.4.1 在基于Bean管理的事务中的事务传播
9.4.2 UserTransaction接口
9.4.3 Status接口
9.4.4 EJBContext中的回滚方法
9.5 事务中的异常处理
9.5.1 系统异常
9.5.2 应用程序异常
9.6 安全管理
9.6.1 标准的EJB安全性编程机制
9.6.2 标准声明性EJB安全机制
9.6.3 特定供应商访问控制映射方法
9.6.4 特定供应商身份与认证
9.6.5 各角色在安全管理中的责任
9.7 小结
第10章 EJB和其他分布式处理技术的比较
10.1 远程方法调用
10.1.1 RMI概述
10.1.2 RMI体系结构
10.1.3 RMI程序开发
10.1.4 RMI和EJB
10.2 CORBA
10.2.1 CORBA简介
10.2.2 CORBA如何工作
10.2.3 IOP上的RMI
10.2.4 CORBA与EJB协同工作
10.3 COM
10.3.1 Windows DNA对象模型
10.3.2 J2EE对象模型
10.3.3 EJB和J2EE与COM+和Windows DNA的技术比较
10.3.4 EJB与COM的沟通
10.4 小结
第11章 UML与EJB
11.1 UML概述
11.1.1 什么是UML
11.1.2 UML的目标
11.1.3 UML中的基本概念
11.1.4 标准建模语言UML的主要特点
11.1.5 标准建模语言UML的应用领域
11.2 UML一览
11.2.1 建模技术
11.2.2 UML视图
11.2.3 类图
11.2.4 用例视图
11.2.5 交互视图
11.2.6 状态图
11.2.7 活动视图
11.2.8 物理视图
11.2.9 模型管理视图
11.2.10 扩展结构
11.2.11 视图间的联系
11.3 UML到EJB映射
11.3.1 目标
11.3.2 相关标准
11.3.3 UML扩展
11.3.4 UML框架
11.4 UML框架
11.4.1 名词定义
11.4.2 已定义通用模型元素
11.4.3 标准扩展
11.5 UML描述符
11.5.1 概述
11.5.2 UML描述符文件类型定义
11.6 正向工程与逆向工程
11.6.1 正向工程
11.6.2 逆向工程
11.7 一个例子
11.8 小结
第12章 EJB设计模式
12.1 基础知识
12.1.1 什么是设计模式
12.1.2 描述设计模式
12.1.3 使用模式的好处
12.2 设计模式怎样解决设计问题
12.2.1 对象设计
12.2.2 运用复用机制
12.2.3 设计应支持变化
12.3 设计EJB时考虑的因素和不良设计分析
12.3.1 设计EJB时考虑的因素
12.3.2 不良设计分析
12.4 重构商业层
12.4.1 用会话Bean封装实体Bean
12.4.2 介绍商业代理
12.4.3 合并会话Beans
12.4.4 消除实体Beans内部通信
12.5 值对象模式
12.5.1 问题的提出
12.5.2 解决方案
12.5.3 小结
12.5.4 相关模式
12.6 值对象装配器模式
12.6.1 问题的提出
12.6.2 解决方案
12.6.3 小结
12.6.4 相关模式
12.7 会话外观模式
12.7.1 问题的提出
12.7.2 解决方案
12.7.3 小结
12.7.4 相关模式
12.8 复合实体模式
12.8.1 问题的提出
12.8.2 解决方案
12.8.3 小结
12.8.4 相关模式
12.9 消息外观模式
12.9.1 问题的提出
12.9.2 解决方案
12.9.3 小结
12.9.4 相关模式
12.10 服务定位器模式
12.10.1 问题的提出
12.10.2 解决方案
12.10.3 小结
12.10.4 相关模式
12.11 总结
第13章 EJB的实际应用:网上书店
13.1 迈出第一步:系统设计
13.1.1 实体Bean
13.1.2 实体Bean之间的联系
13.1.3 会话Bean及进一步的考虑
13.2 顾客实体表示:CustomerBean
13.2.1 远程接口Customer.java
13.2.2 本地接口CustomerLocal.java
13.2.3 远程Home接口CustomerHome.Java
13.2.4 本地Home接口CustomerLocalHome.Java
13.2.5 Bean类CustomerBean.java
13.3 订单实体表示OrderBean
13.3.1 远程接口Order.java
13.3.2 本地接口OrderLocal.java
13.3.3 远程Home接口OrderHome.java
13.3.4 本地Home接口OrderLocalHome.java
13.3.5 Bean类OrderBean.java
13.4 订单细目表示OrderItemBean
13.4.1 远程接口OrderItem.java
13.4.2 本地接口OrderLocal.java
13.4.3 远程Home接口OrderHome.java
13.4.4 本地Home接口OrderLocalHome.java
13.4.5 主键类OrderPK.java
13.4.6 Bean类OrderBean.java
13.5 购物车表示CartBean
13.5.1 远程接口Cart.java
13.5.2 本地接口CartLocal.java
13.5.3 Home接口CartHome.java
13.5.4 本地Home接口CartLocalHome.java
13.5.5 Bean类CartBean.java
附录A 理解Java命名和目录接口(JNDI)
A.1 JNDI概述
A.2 JNDI中的概念
A.3 JNDI编程
附录B 理解XML
B.1 XML文档结构和语法规则
B.2 基本概念
B.3 XML的深入了解
B.4 XML的分析、处理和应用
附录C EJB快速参考
C.1 EJB API列表
C.2 EJBHome
C.3 EJBLocalHome
C.4 EJBLocalObject
C.5 EJBMetaData
C.6 EJBObject
C.7 EnterpriseBean
C.8 EntityBean
C.9 EntityContext
C.10 Handle
C.11 HomeHandle
C.12 MessageDrivenBean
C.13 MessageDrivenContext
C.14 SessionBean
C.15 SessionContext
C.16 SessionSynchronization
C.17 EJB异常参考
C.18 EJB类层次结构图
附录D EJB(J2EE)服务器厂商和产品