第1章 J2EE概述 1
1.1 J2EE的产生背景 1
1.1.1 企业级应用程序--电子商务 1
1.1.2 多层体系结构 1
1.1.3 服务器端组件体系结构 2
1.1.4 实现多层应用程序的解决方案 2
1.2 J2EE技术 3
1.2.1 J2EE的优势 3
1.2.2 J2EE的体系结构 4
1.2.3 J2EE的服务器端运行环境 5
1.2.4 J2EE相关技术概览 7
1.2.5 J2EE的开发角色 8
1.3 J2EE的应用 9
1.3.1 多层J2EE应用程序 9
1.3.2 独立客户端应用程序 10
1.3.3 简单Web应用程序 10
1.3.4 BTB(Business to Business)企业对企业应用程序 10
1.4 本章小结 11
2.1.1 Enterprise Bean的分类 13
第2章 服务器端组件 13
2.1 Enterprise Bean 13
2.1.2 EJB的客户端 14
2.1.3 几种EJB的适用场合 14
2.2 中间层与分布式对象 15
2.2.1 分布式对象 15
2.2.2 中间层 16
6.1.1 关系基数 17
2.3.1 Enterprise Bean类 18
2.3 Enterprise Bean的组成 18
2.3.2 EJB对象(EJB Object) 19
2.3.3 Remote Interface 20
2.3.4 Local Interface 21
2.3.5 Home对象和Home Interface 21
2.3.6 部署描述文件(Deployment Descriptors) 22
2.3.7 集成 23
2.4 Enterprise Bean的调用 23
2.4.1 使用JNDI寻找Home对象 24
2.4.2 Enterprise Bean调用实例 25
2.5 本章小结 26
第3章 Session Bean 27
3.1.1 Session Bean的生命周期 27
3.1 Session Bean基础 27
3.1.2 Session Bean的分类 28
3.2 Hello World无状态Session Bean 29
3.2.1 Home Interface 29
3.2.2 Remote Interface 30
3.2.3 Bean类 31
3.2.4 部署描述文件 32
3.2.5 Enterprise Bean的集成 33
3.2.6 编写客户端代码 33
3.2.7 HelloBean小结 35
3.3 有状态Session Bean 36
3.3.1 有状态Session Bean池 36
3.3.2 CountBean 37
3.4 本章小结 41
4.1.2 对象一关系映射 43
4.1.1 Java对象序列化 43
第4章 永久性存储基础 43
4.1 永久性存储 43
4.1.3 对象数据库 44
4.2 JDBC基础 45
4.2.1 JDBC概要 45
4.2.2 数据库的连接 46
4.2.3 数据源 48
4.2.4 Statement简介 52
4.2.5 ResultSet简介 54
4.2.6 PreparedStatement简介 56
4.2.7 CallableStatement简介 57
4.3 Entity Bean基础 58
4.3.1 什么是Entity Bean 58
4.3.2 Entity Bean所包含的文件 59
4.3.3 Entity Bean的一些特点 60
4.3.4 Entity上下文对象 64
4.4 本章小结 64
5.1.1 Entity Bean基础 65
5.1 BMP Entity Bean 65
第5章 Entity Bean 65
5.1.2 Entity Bean的finder方法 67
5.1.3 BMP实例--Account Bean 69
5.1.4 BMP Entity Bean的生命周期 85
5.2 CMP Entity Bean 87
5.2.1 CMP Entity Bean的特点 87
5.2.2 编写CMP Entity Bean的基本规则 91
5.2.3 CMP Entity Bean实例 92
5.2.4 CMP Entity Bean的生命周期 103
5.3 本章小结 104
6.1 关系基数(Cardinality) 107
第6章 数据库表关系 107
6.1.2 CMP和BMP的不同点 107
6.1.3 用BMP实现一对一关系 108
6.1.4 使用CMP实现一对一关系 109
6.1.5 用BMP实现一对多关系 111
6.1.6 用CMP实现一对多关系 112
6.1.7 用BMP实现多对多关系 113
6.1.8 用CMP实现多对多关系 116
6.2 关系的方向性(Directionality) 119
6.2.1 在BMP中实现方向性 119
6.2.2 在CMP中实现方向性 120
6.3 数据库表关系的其他问题 121
6.3.1 对象的推迟生成 121
6.3.2 聚和关系和组合关系 122
6.3.3 引用完整性 123
6.4 本章小结 124
第7章 Java Servlets技术 125
7.1 Java Servlet技术基础 125
7.1.1 Servlet简单实例 125
7.1.2 用HttpSession对象跟踪保存客户端状态变量 127
7.1.3 Cookies 128
7.1.4 在Servlet中使用其他资源 129
7.1.5 在Servlet之间共享资源 131
7.2 Servlet技术在J2EE中的应用 132
7.2.1 搭建简单的开发平台 132
7.2.2 Adder实例 133
7.2.4 设置JNDI名 137
7.2.3 设置ContextRoot 137
7.2.5 部署和运行 138
7.3 本章小结 138
第8章 Java Server Pages技术 139
8.1 Web应用程序设计的JSP方法 139
8.1.1 JSP技术的作用 139
8.1.2 JSP页面的外观 140
8.2.2 JSP指令 141
8.2 JSP基本语法 141
8.2.1 JSP小脚本 141
8.2.3 JSP动作 142
8.2.4 JSP页面中的隐含对象 144
8.3 JSP页面中的Java Bean组件 146
8.3.1 Java Bean编写规范 146
8.3.2 在JSP页面中使用Java Bean 146
8.3.3 使用Java Bean作为JSP和Enterprise Bean的中介 147
8.4 本章小结 159
第9章 自定义标签库 161
9.1 自定义标签库简介 161
9.1.1 自定义标签 161
9.1.2 使用自定义标签库的好处 161
9.1.3 自定义标签的使用方法 162
9.1.4 标签体 162
9.2 编写自定义标签 163
9.2.1 标签处理类 163
9.2.2 标签库描述文件(Tag Library Descriptors) 164
9.2.3 标签属性 166
9.2.4 属性值的有效性验证 167
9.2.5 带有标签体的标签 168
9.2.6 脚本变量 168
9.2.7 标签之间的协同操作 171
9.3 iterate标签实例 173
9.3.1 iterate标签的使用 173
9.3.2 标签处理类 174
9.4 通过自定义标签访问EJB 176
9.4.1 编写JSP文件 176
9.3.3 标签辅助信息类 176
9.4.2 编写标签库描述文件 177
9.4.3 编写标签处理类 178
9.5 本章小结 180
第10章 事务处理 181
10.1 事务处理基础 181
10.1.1 为什么需要事务处理 181
10.1.2 基本术语 182
10.1.3 事务处理模型 183
10.2 EJB中的事务处理 184
10.2.1 Bean实现的事务处理 185
10.2.2 容器管理的事务处理 185
10.2.3 客户端控制的事务处理 186
10.2.4 三种管理事务的方式的比较 187
10.2.5 Entity Bean的事务处理 187
10.3 容器管理的事务处理 187
10.3.1 事务属性 187
10.3.2 容器管理的事务的滚回(Roll Back) 190
10.3.3 同步Session Bean的成员变量值 191
10.4 Bean管理的事务处理 192
10.3.4 容器管理的事务中不能使用的方法 192
10.4.1 JDBC事务处理 193
10.4.2 JTA事务处理 193
10.4.3 Bean管理的事务中不能使用的方法 195
10.4.4 Bean管理的事务和容器管理的事务 195
10.4.5 客户端控制的事务处理 196
10.5 事务的并发控制 197
10.6 本章小结 200
11.1.1 J2EE用户、域和组 201
第11章 安全性 201
11.1 认证 201
11.1.2 管理用户和组 202
11.1.3 客户端认证 202
11.2 授权 203
11.2.1 定义角色(Role) 203
11.2.2 设置方法的访问权限 204
11.2.3 把角色映射到用户或组 204
11.2.5 编码实现安全逻辑 205
11.2.4 安全授权的传递 205
11.3 认证与授权的实例描述 209
11.3.1 J2EE应用程序客户端 209
11.3.2 Web浏览器客户端 210
11.4 本章小结 211
第12章 JMS和Message-Driven Bean 213
12.1 JMS基础 213
12.1.1 概述 213
12.1.2 JMS API的基本概念 214
12.1.3 JMS API编程模型 216
12.1.4 一个简单的JMS应用程序 221
12.1.5 提高JMS应用程序的可靠性 224
12.2 Message-Driven Bean 228
12.2.1 MDB概述 228
12.2.2 编写Message-Driven Bean 228
12.2.3 一个Message-Driven Bean的实例 230
12.2.4 Message-Driven Bean中的分布式事务处理 231
12.3 Message-Driven Bean与Session Bean的协同工作 231
12.3.1 概述 231
12.3.2 编写Publisher Session Bean 232
12.3.3 编写Message-Driven Bean 235
12.3.4 编写客户端程序 236
12.3.5 应用程序的部署和运行 237
12.4 Message-Driven Bean与Entity Bean的协同工作 239
12.4.1 概述 239
12.4.2 编写应用程序客户端:HumanResourceClient.java 240
12.4.3 编写两个Message-Driven Bean 243
12.4.4 编写SetupOffice Entity Bean 248
12.4.5 编写ScheduleMsgBean 254
12.4.6 应用程序的部署和运行 255
12.5 本章小结 258
第13章 J2EE高级话题 259
13.1 CORBA模型 259
13.1.1 CORBA含义 259
13.1.2 理解CORBA 259
13.1.3 为什么要关心CORBA 260
13.1.4 CORBA的工作原理 262
13.2.1 RMI-CORBA互操作的必要性 268
13.2 RMI-IIOP 268
13.2.2 RMI与CORBA的合并 270
13.2.3 解析RMI与CORBA的差别 271
13.3 结合RMI和CORBA的应用开发步骤 272
13.3.1 RMI-IIOP客户端与CORBA对象实现 272
13.3.2 CORBA客户端与RMI-IIOP对象实现 273
13.4 本章小结 274
第14章 开发前的准备工作 275
14.1 系统开发环境 275
14.2.1 应用服务器简介 276
14.2 应用服务器--BAS 276
14.2.2 应用服务器的适用领域 277
14.2.3 应用服务的各种性能 278
14.2.4 Application Server种类 278
14.2.5 Borland Application Server4.5简介 278
14.3 开发工具Borland Jbuilder5 282
14.3.1 初识Jbuilder5环境 282
14.3.2 开发前的环境配置 291
14.4 JDataStore简介 298
14.4.2 JDataStore Explore的操作 299
14.4.1 JDataStore Explore的功能简介 299
14.5 本章小结 300
第15章 Esite实例分析 301
15.1 Esite实例简介 301
15.1.1 运行实例前的设置 301
15.1.2 预览Esite实例 305
15.2 数据库结构分析 308
15.3 EJB结构分析 309
15.3.1 Entity Bean 309
15.3.2 Session Bean 310
15.4 功能模块分析 311
15.5 分析汇总 311
15.6 本章小结 312
第16章 EJB层的开发 313
16.1 Entity Bean的开发 313
16.1.1 新建项目和空EJB组 313
16.1.2 Entity Bean“User”的开发 315
16.1.3 Entity Bean“Inventory”的开发 320
16.1.4 Entity Bean“Order”和“Orderitem”的开发 321
16.1.5 Entity Bean“ShoppingCart”的开发 324
16.2 Session Bean的开发 327
16.2.1 Session Bean“ServerDataModule”的开发 327
16.2.2 ServerDataModuleBean类深入分析 338
16.2.3 Session Bean“Cart”的开发 349
16.3 本章小结 357
17.1 开发ClientDataModule类 359
17.1.1 建立ClientDataModule框架 359
第17章 Web层的开发 359
17.1.2 ClientDataModule类源代码分析 361
17.2 Servlet相关开发 366
17.2.1 开发SessionBean类 366
17.2.2 Login类的开发 371
17.2.3 NewUserServlet类的开发 373
17.2.4 Search类的开发 376
17.2.5 AddItem类的开发 377
17.2.6 RemoveItem类的开发 379
17.2.7 Purchase类的开发 380
17.2.8 Logout类的开发 382
17.3 JSP页面的开发 383
17.3.1 welcome.jsp页面的开发 385
17.3.2 searchresults.jsp页面的开发 386
17.3.3 shoppingcart.jsp页面的开发 390
17.4 本章小结 392
第18章 集成Esite系统 393
18.1 在BAS中部署EJB 393
18.2 配置Tomcat服务器的运行 395
18.3 运行Esite 396
18.4 本章小结 397
第19章 客户端应用程序 399
19.1 开发Application类和Frame类 399
19.1.1 建立Application和Frame框架 399
19.1.2 添加库存管理功能 401
19.2 BookstoreManagerFrame的源代码分析 405
19.3 本章小结 407
附录1 EJB快速参考手册 409
附录2 OMGIDL语法 419