第一部分 为使用WebLogic做准备 5
1.1 WebLogic Server概述 7
第一章 快速浏览WebLogic Server 7
1.2 熟悉WebLogic 9
1.3 在真实世界中认识WebLogic 11
1.3.1 Sparks.com 12
1.4 WebLogic的特点、服务和架构 13
1.4.3 访问J2EE API 14
1.4.2 J2EE容器 14
1.4.1 HTTP服务器 14
1.4.5 J2EE连接器架构 15
1.4.4 Web服务 15
1.4.7 安全性服务 16
1.4.6 CORBA支持 16
1.4.9 管理和监听工具 17
1.4.8 集群服务 17
1.6 WebLogic是否适合项目需求 18
1.5 理解WebLogic在企业中的作用 18
1.7 小结 19
2.1 WebLogic开发人员需要的知识 21
第二章 组织和管理WebLogic开发团团队 21
2.1.3 面向对象的分析和设计 22
2.1.2 J2EE 22
2.1.1 Java面向对象的编程 22
2.1.6 TCP/IP网络和分布式系统 23
2.1.5 XML 23
2.1.4 HTML和JavaScript 23
2.1.8 遗留系统 24
2.1.7 关系数据库和SQL 24
2.1.9 协作规程 25
2.2.2 应用程序设计者 27
2.2.1 项目经理 27
2.2 项目团队的角色和责任 27
2.2.4 用户界面设计者 28
2.2.3 数据库设计者/数据库管理员 28
2.2.6 质量保证团队 29
2.2.5 Java/J2EE开发人员 29
2.2.8 WebLogic管理员 30
2.2.7 文档团队 30
2.3.2 设计解决方案 31
2.3.1 收集要求 31
2.3 项目管理策略 31
2.3.3 管理开发 32
2.3.5 保持高昂的士气 33
2.3.4 安排展示 33
2.4 小结 34
3.1.1 J2EE如何将应用程序分散到层 35
3.1 理解多层应用程序 35
第三章 设计WebLogic应用程序 35
3.1.2 MVC设计形式 36
3.1.4 设计多层应用程序的MVC方法 37
3.1.3 MVC例子:ATM机 37
3.2.1 容器 38
3.2 使用J2EE创建多层应用程序:容器和组件 38
3.3 在应用程序中组织组件 39
3.2.2 组件 39
3.3.1 模型层模式 40
3.3.3 控制器层模式 42
3.3.2 视图层模式 42
3.4 在WebLogic容器中部署组件 44
3.5.1 标识需求 45
3.5 设计应用程序例子:ZeeTrade Online Brokerage 45
3.5.2 通过用户角色组织要求 47
3.5.3 在用例图中表述需求 48
3.5.4 分解用例到活动图 49
3.5.5 使用泳道将功能映射成MVC 50
3.5.6 选择例行的J2EE组件和模拟它们的交互 52
3.5.7 其他的考虑 53
3.6 小结 54
4.1 配置开发计算机 55
第四章 创建WebLogic环境 55
4.3 安装WebLogic Server 56
4.2 得到WebLogic Server拷贝 56
4.3.1 运行安装程序 57
4.3.3 运行WebLogic 控制台 61
4.3.2 启动WebLogic Server 61
4.3.5 优化WebLogic Server开发启动过程 62
4.3.4 关闭WebLogic Server 62
4.3.6 检查环境 64
4.3.7 添加测试和生产域 65
4.4 安装JDBC驱动程序 67
4.6 小结 68
4.5 选择集成开发环境 68
第二部分 WebLogic 和J2EEAPI 69
5.1.1 JDBC版本和程序包 71
5.1 理解JDBC 71
第五章 使用WebLogic JDBC 71
5.1.2 JDBC结构 72
5.2.1 WebLogic和第三方驱动程序 78
5.2 理解WebLogic JDBC 78
5.2.2 多连接池 80
5.3.1 配置连接池 81
5.3 配置WebLogic JDBC 81
5.2.3 数据源 81
5.2.4 集群JDBC 81
5.3.2 配置多连接池 88
5.3.3 配置数据源 90
5.4 WebLogic JDBC编程 92
5.3.4 配置TX数据源 92
5.4.1 获取连接 93
5.4.2 使用连接执行语句和处理结果 96
5.5 小结 97
5.4.3 关闭连接 97
6.1.1 事务的概念 99
6.1 理解事务 99
第六章 使用WebLogic JTA 99
6.1.4 本地和分布式事务 100
6.1.3 资源和资源管理器 100
6.1.2 事务和ACID测试 100
6.1.5 事务隔离级别 101
6.1.6 事务界定 102
6.2.2 JTA结构 104
6.2.1 JTA版本和程序包 104
6.1.7 两阶段提交和XA接口 104
6.2 理解JTA 104
6.2.3 事务感知资源管理器 105
6.3 配置WebLogic JTA 106
6.4.1 使用WebLogic JTS驱动程序编程本地事务 108
6.4 WebLogic JTA编程 108
6.4.2 使用Oracle XA驱动程序编程分布式事务 111
6.5 小结 114
7.1.1 JIDI版本和包 115
7.1 理解JNDI 115
第七章 使用WebLogic JNDI 115
7.1.2 JNDI结构 116
7.2.1 获得WebLogic上下文引用 118
7.2 WebLogic JNDI上下文引用 118
7.2.3 使用子上下文组织JNDI树 120
7.2.2 将对象绑定到WebLogic JNDI树 120
7.2.4 查看绑定在WebLogic JNDI树上的对象 121
7.2.5 对LDAP目录执行查看 122
7.3 在集群上下文中使用WebLogic JNDI部署对象 126
7.3.1 为自定义对象编写RMI代理 127
7.4 小结 128
7.3.3 将自定义对象部署到所有服务器 128
7.3.2 在一个服务器上嵌入自定义对象 128
8.1.1 RMI版本和包 129
8.1 理解RMI 129
第八章 使用WebLogic RMI 129
8.1.2 RMI结构 130
8.2.2 高性能和可伸缩性 133
8.2.1 易于使用 133
8.2 比较WebLogic RMI和JavaSoft RMI 133
8.3 编写第一个WebLogic RMI应用程序 135
8.3.2 编写服务 136
8.3.1 编写远程接口 136
8.3.4 产生服务存根和骨架 138
8.3.3 编译远程接口和服务 138
8.3.7 用WebLogic启动类配置RMI服务 139
8.3.6 编译客户机 139
8.3.5 编写远程调用服务的客户机 139
8.3.8 停止和重新启动WebLogic Server 141
8.3.9 验证RMI服务的部署 142
8.3.10 运行客户机并测试服务器 143
8.4.1 创建服务器 144
8.4 使用具有JNDI和多个客户机的WebLogic RMI 144
8.4.2 创建客户机 147
8.5 从RMI服务端调用客户机方法 153
8.6 从RMI服务端调用EJB 158
8.7 小结 160
9.1.2 JMS结构 161
9.1.1 JMS版本和包 161
第九章 使用WebLogic JMS 161
9.1 理解JMS 161
9.2.1 创建连接工厂 165
9.2 配置WebLogic JMS 165
9.2.2 定义文件后备存储 167
9.2.3 定义JDBC后备存储 168
9.2.4 定义目标密明 170
9.2.5 定义模板 171
9.2.7 创建消息队列 172
9.2.6 定义JMS服务器 172
9.2.8 创建消息主题 173
9.3 WebLogic JMS编程 174
9.3.1 发送消息 175
9.3.2 同步接收消息 182
9.3.3 异步接收消息 186
9.3.4 使用会话并发接收消息 193
9.3.5 过滤新到消息 196
9.3.6 在队列中浏览消息 198
9.3.7 创建持久主题预定者 200
9.4.1 使用JMS事务会话 201
9.4 使用事务 201
9.4.2 使用JTA事务 202
9.5 小结 211
10.1.1 JavaMail版本和包 213
10.1 理解JavaMail 213
第十章 使用WebLogic JavaMail 213
10.1.2 JavaMail结构 214
10.2.1 创建邮件会话 217
10.2 配置WebLogic JavaMail 217
10.2.2 将POP3添加到WebLogic 219
10.3.3 该例子的部署描述符 220
10.3.2 发送简单邮件 220
10.3 使用WebLogic JavaMail发送邮件 220
10.3.1 通过JNDI获得邮件会话 220
10.3.4 例子:发送邮件servlet 222
10.3.6 验证邮件会话 224
10.3.5 重载邮件会话属性 224
10.3.7 使用MimeMulitpart发送附件 225
10.3.8 例子:发送邮件servlet2 226
10.3.10 导航存储 229
10.3.9 给多个接收器发送邮件(批量邮件) 229
10.4.1 列出邮件 233
10.4 使用WebLogic JavaMail检索和显示邮件 233
10.4.2 例子:显示消息 234
10.4.3 分析邮件标记 237
10.4.4 删除邮件 238
10.4.6 例子:显示邮件细节 239
10.4.5 删掉邮件 239
10.5 小结 244
第三部分 开发Web 245
第十一章 开发servlet 247
11.1.1 servlet API:版本和包 248
11.1 理解servlet 248
11.1.2 Web容器和Web应用程序 249
11.1.3 servlet是如何工作的 250
11.1.5 servlet生存期 252
11.1.4 何时使用servlet 252
11.2.1 创建简单的Web应用程序 253
11.2 servlet编程 253
11.2.2 编写简单的servlet 255
11.2.3 servlet生存期 257
11.3.1 使用会话 258
11.3 高级servlet编程技术 258
11.3.2 使用servlet上下文 262
11.3.3 发送请求到其他 263
11.3.4 保护应用程序安全 264
11.4.2 集体讨论设计 267
11.4.1 收集要求 267
11.4 使用servlet创建高级应用程序 267
11.4.3 创建应用程序 269
11.5 小结 284
11.4.4 用WAR文件部署应用程序 284
12.1.1 产品的发展 285
12.1 理解JSP 285
第十二章 开发JSP 285
12.1.3 模型-视图-控制器 286
12.1.2 JSP是如何工作的 286
12.2.1 JSP编译器 288
12.2 为JSP配置WebLogic Server 288
12.2.2 配置WebLogic应用程序扩展部署描述符 289
12.2.3 在WebLogic Server中部署第一个JSP 296
12.2.4 对JSP1.2的支持 299
12.3.2 指令 300
12.3.1 标记约定 300
12.3 JSP编程 300
12.3.3 脚本 303
12.3.5 隐式对象 306
12.3.4 注释 306
12.3.6 动作 308
12.3.7 JSP例子 310
12.3.8 错误处理 316
12.3.9 调试 318
12.4 使用JavaBean编程JSP 319
12.4.1 部署第一个JavaBean 320
12.4.2 JSP Bean标记 321
12.4.3 JSP和JavaBean例子 325
12.4.4 使用servlet处理请求 328
12.5 小结 331
13.1.1 标记处理器生命周期 333
13.1 理解标记库 333
第十三章 开发标记库 333
13.1.2 标记处理器和标记扩展API 335
13.1.3 主接口 336
13.1.4 方便类 337
13.1.5 小结 340
13.2.1 编程标记处理器类 343
13.2 编程和使用标记扩展 343
13.2.2 定义标记库描述符 346
13.2.3 配置WebLogic Web应用程序部署描述符 349
13.2.4 在JSP中使用标记扩展 351
13.2.5 解析标民扩展 354
13.3 TagExtraInfo类编程 355
13.4.1 WebLogic JSP表单验证标记 358
13.4 WebLogic标记库 358
13.4.2 WebLogic自定义JSP标记 359
13.6 小结 360
13.5 WebLogic EJB到JSP集成工具 360
第四部分 开发EJB组件 361
第十四章 理解EJB 363
14.2 EJB类型 364
14.1 EJB结构 364
14.2.3 消息驱动Bean 365
14.2.2 实体Bean 365
14.2.1 会话Bean 365
14.4 EJB组件 366
14.3 EJB客户访问模型 366
14.4.1 内部接口 367
14.4.3 实现类 368
14.4.2 远程接口 368
14.4.4 部署描述符 370
14.5 WebLogic的EJB容器服务 372
14.5.2 事务支持 373
14.5.1 生命周期管理 373
14.5.3 持久性 374
14.6.2 提高的:实体Bean的CMP 375
14.6.1 新的:消息驱动Bean 375
14.5.4 集群支持 375
14.5.5 安全性 375
14.6 EJB1.1与2.0 375
14.7 小结 376
第十五章 开发会话Bean 377
15.2.4 内在的可重用 378
15.2.3 不同步问题 378
15.1 会话Bean的使用 378
15.2 使用会话EJB建模工作流 378
15.2.1 客户机-服务器结构 378
15.2.2 EJB容器功能 378
15.3 比较无状态和有状态Bean 379
15.2.5 可扩展性 379
15.4.1 内部接口 381
15.4 会话Bean编程 381
15.4.2 会话EJB接口 382
15.4.3 实现类 383
15.4.4 有状态EJB例子 395
15.5 会话Bean集群 402
15.7 小结 403
15.6 在会话Bean中编程事务 403
16.1.2 实体Bean类型 405
16.1.1 实体Bean和持久性 405
第十六章 开发实体Bean 405
16.1 理解实体Bean 405
16.1.3 实体Bean生存周期 406
16.2.4 EJB QL 407
16.2.3 CMP抽象持久性方案 407
16.2 EJB2.0 407
16.2.1 CMP关系 407
16.2.2 本地接口 407
16.4.1 定义内部接口 408
16.4 编程BMP 408
16.3 实体Bean部件文件 408
16.4.3 定义远程接口 409
16.4.2 定义本地内部接口 409
16.4.5 创建Bean 410
16.4.4 定义本地接口 410
16.4.6 创建主键类 418
16.4.7 创建值对象类(可选的) 419
16.4.8 创建部署描述符 420
16.5.1创建Department Bean 422
16.5 编程CMP 422
16.4.9 注意 422
16.5.2 定义Course Bean 428
16.5.3 创建部署描述符 431
16.6 部署到WebLogic 442
16.7.1 并行和锁定 443
16.7 关于实体Bean的高级WebLogic特性 443
16.8.1 BMP和CMP之间的折衷办法 444
16.8 CMP、BMP和其他选项 444
16.7.2 自动表创建 444
16.9.3 Cocobase企业O/R 445
16.9.2 JBuider 445
16.8.2 会话Bean 445
16.8.3 Java数据对象 445
16.9 第三方工具 445
16.9.1 WebGain Studio 445
16.10 小结 446
16.9.4 rgetherSoft控制中心 446
17.1.1 版本和程序包 447
17.1 理解消息驱动Bean 447
第十七章 开发消息驱动Bean 447
17.1.3 决定是编写消息驱动Bean 还是编写JMS客户机 448
17.1.2 如何区分消息驱动Bean 和其他EJB 448
17.2.2 消息驱动Bean 上下文 449
17.2.1 消息驱动Bean 接口javax.ejb.MessageDrivenBean 449
17.2 编码消息驱动 449
17.3 在WebLogic Server中部署消息驱动Bean 450
17.2.3 实现业务逻辑 450
17.3.1 部署描述符 451
17.3.2 事务属性 452
17.3.3 使用WebLogic控制台部部署消息驱动Bean 453
17.4.3 源代码 454
17.4.2 应用程序设计问题 454
17.4 使用消息驱动Bean和XML创建应用程序 454
17.4.1 业务问题:在无线网上发送医学处方 454
17.4.4 部署消息驱动Bean 460
17.5 小结 462
第五部分 部署和测试企业应用程序 463
18.1.1 部署描述符 465
18.1 打包J2EE应用程序 465
第十八章 配置和部署WebLogic应用程序 465
18.1.2 JARJava存档格式 466
18.2.1 创建Web应用程序的步骤 467
18.2 Web应用程序结构和打包 467
18.2.2 Web应用程序目录结构 468
18.2.3 配置Web应用程序 469
18.4 打包企业应用程序 479
18.3 打包EJB 479
18.5 在企业应用程序和WebLogic Server中类装载 480
18.6.2 处处放置 481
18.6.1 根类装载器 481
18.6 第三方和实用类 481
18.7 小结 482
18.6.3 JAR清单文件标识类路径 482
19.1.2 负载测试 483
19.1.1 确定测试 483
第十九章 测试和调优WebLogic应用程序 483
19.1 理解性能调优 483
19.1.3 性能调优区域 484
19.2 WebLogic Server性能监视 488
19.2.2 从控制台监视性能图 489
19.2.1 用控制台监视WebLogic Server 489
19.2.3 监视活动的队列、连接和socket 490
19.2.5 性能监视的JVM选项 492
19.2.4 监视CPU利用度 492
19.3.1 基本服务器配置 493
19.3 调优WebLogic Server 493
19.3.3 EJB调优考虑 496
19.3.2 JDBC调优考虑 496
19.4.3 客户机/服务器JVM选项 497
19.4.2 垃圾收集 497
19.4 调优WebLogic 的JVM 497
19.4.1 堆栈大小 497
19.5.2 EJB考虑 498
19.5.1 在应用程序中调优JDBC模块 498
19.5 调优WebLogic Server应用程序 498
19.5.6 记录考虑 499
19.5.5 事务考虑 499
19.5.3 异步组件 499
19.5.4 单元素 499
19.5.10 WebLogic Server集群概况 500
19.5.9 在会放右放置对象 500
19.5.7 编译器设置 500
19.5.8 非同步集合 500
19.6.1 定义性能目标 501
19.6 调优过程例子 501
19.6.3 负载测试 502
19.6.2 应用程序调优过程 502
19.7 小结 504
第六部分 实现安全性 505
第二十章 安全基础 507
20.1 安全层次 508
20.1.1 验证层 509
20.1.2 授权层 510
20.1.3 完整性层 517
20.1.4 审计层 520
20.2 安全性范围 521
20.3 安全性攻击 522
20.3.1 IP欺骗 522
20.3.2 DNS欺骗 523
20.3.3 活动天窗 523
20.3.4 逻辑炸弹 524
20.3.5 蠕虫 524
20.3.6 特洛伊木马 524
20.4 密码、密钥和安全套接字 525
20.5 小结 527
第二十一章 理解WebLogic 的安全架构 529
21.1 WebLogic 安全架构概述 529
21.2 理解JAAS 530
21.2.1 可插入验证模块 530
21.2.2 LoginContext 531
21.2.3 安全域 532
21.2.4 WebLogic Server提供者接口 534
21.3 WebLogic企业边通性 534
21.3.1 验证层 535
21.3.2 授权层 538
21.4 小结 538
第二十二章 编写WebLogic 安全应用程序 541
22.1 JAAS编程介绍 541
22.1.1 编写和配置LoginContext 542
22.1.2 编写LoginContext 545
22.1.3 编写CallbackHandler 547
22.1.4 为WebLogic Server编写JAAS 549
22.2 授权和安全域 556
22.3 创建自定义RDBMS安全域 556
22.3.1 定义数据存储 557
22.3.2 定义自定义类 557
22.3.3 验证用户 564
22.3.4 确定用户属于的组 565
22.3.5 从安全存储中获得用户和组 565
22.4 在WebLogic Server中审计 567
22.5 小结 568
第七部分 WebLogic Server管理 569
23.1 使用WebLogic 控制台管理WebLogic Server 571
23.1.1 控制台 571
第二十三章 使用WebLogic 管理工具 571
23.1.2 域信息 573
23.1.3 Server 580
23.1.4 Clusters 598
23.1.5 Machines 598
23.1.6 Deployments 599
23.1.7 Service 599
23.1.8 Security 609
23.1.9 Domain Log Filters 609
23.2 使用命令行工具管理WebLogic 610
23.3 小结 611
第二十四章 使用WebLogic 集群 613
24.1 创建简单集群 614
24.1.1 设计集群拓扑结构 614
24.1.2 创建集群 615
24.2 通过HTTP代理访问集群 619
24.3 部署HTTP代理访问集群 621
24.4 测试集群Web应用程序 625
24.5 会话状态持久策略 627
24.6 集群和J2EE服务 627
24.6.2 负载均衡JDBC连接 628
24.6.3 负载均衡JMS连接工厂 628
24.6.1 集群范围JNDI树 628
24.7 RMI对象和EJB集群 630
24.8 小结 630
第二十五章 WebLogic 安全性管理 631
25.1 配置File域 631
25.2 配置NT域 636
25.3 配置Unix域 637
25.4 配置LDAP域 638
25.4.1 配置RDBMS域 645
25.4.2 配置SSL协议 650
25.4.3 配置连接过滤器 652
25.5 配置连接过滤器 654
第八部分 企业应用程序集成 655
第二十六章 使用Web服务、SOAP和WSDL 657
26.1 Web服务类型 657
26.2 获得Cliemt.jar中如何工作 658
26.2.2 HTTP 659
26.2.3 SOAP 659
26.2.1 XML 659
26.3 创建Web服务 660
26.2.5 Jakarta Ant 660
26.3.1 Web服务类型 660
26.2.4 WSDL 660
26.3.2 获得Cliemt.jar文件和WSDL 662
26.3.3 构造远程过程调用Web服务 664
26.3.4 产生用户消息类型Web服务 668
26.3.5 创建消息类型生产者Web服务 672
26.4 其他Web服务技术 676
26.4.1 Jakarta Ant 676
26.4.3 未来J2EE和IDE支持 680
26.5 小结 680
26.4.2 UDDI 680
第二十七章 使用WebLogic 和J2EE连接器结构 681
27.1 理解J2EE连接器结构 682
27.1.1 关键概念 682
27.1.2 系统约定 685
27.1.3 安全管理约定 688
27.1.4 通用客户机接口 689
27.2 在WebLogic 中使用J2EE连接器结构 692
27.2.1 配置 694
27.2.3 日志 696
27.2.4 部署 696
27.2.2 开发 696
27.3 小结 698
附录A 从早期版本升级到WebLogic Server6.1 699