第Ⅰ部分 总览 3
第1章 简介 3
1.1 企业的含义 3
1.2 企业和系统 4
1.3 企业的多样性 4
1.4 企业的发展 5
1.5 企业和遗留系统 6
1.5.1 遗留系统的含义 6
1.5.2 遗留系统的组成 6
1.5.3 遗留系统的重要性 9
1.6 成长企业的需要 9
1.6.6 访问的响应速度 10
1.6.5 根据负载扩展系统 10
1.6.4 系统的可访问性 10
1.6.3 可靠事务 10
1.6.2 安全环境 10
1.6.1 迁移的可能性 10
1.7 小结 11
1.8 复习题 11
第2章 “架构师”助企业降低复杂性 12
2.1 概述 12
2.2 早期的企业 12
2.2.1 大型机时代 12
2.2.2 客户机/服务器时代 13
2.2.3 分布式时代 13
2.3 当前的企业 14
2.4 架构原理 15
2.4.1 架构师及其职责 15
2.4.2 架构术语 16
2.4.4 架构方法 17
2.4.3 架构师和设计师 17
2.5 架构技术 20
2.6 小结 20
2.7 复习题 20
第3章 管理企业的复杂性 21
3.1 概述 21
3.2 新架构的设计原理 21
3.3 三维架构 21
3.3.1 分层 22
3.3.2 层 23
3.3.3 企业应用程序质量 24
3.4 小结 34
3.5 复习题 34
4.1 概述 35
4.2 J2EE的要素 35
第4章 J2EE简介 35
4.3 规范和API 36
4.4 参考实现 37
4.5 J2EE蓝图 37
4.6 测试套件 38
4.6.1 兼容测试套件 38
4.6.2 J2EE应用程序验证包 39
4.7.1 标准产品 40
4.7 综述 40
4.7.2 标准服务 43
4.8 详述 44
4.9 小结 47
4.10 复习题 47
第5章 企业解决方案和J2EE 48
5.1 概述 48
5.2 企业解决方案 48
5.3 Java的发展历程 49
5.3.1 Java 1.1 51
5.3.2 Java 2 52
5.4 J2EE的发展历程 54
5.4.1 J2SE 54
5.4.2 J2ME 55
5.4.3 J2EE 55
5.5 J2EE社区 56
5.6 J2EE是恰到好处的企业解决方案 57
5.7 小结 58
5.8 复习题 58
第Ⅱ部分 J2EE核心原理 61
第6章 J2EE规范的核心要素 61
6.1 概述 61
6.2.1 Servlet的发展史 63
6.2.2 Servlet规范详解 63
6.2 Servlet规范 63
6.3 JSP规范 74
6.3.1 JSP的发展史 74
6.3.2 JSP规范详解 74
6.3.3 JSP标准动作 78
6.3.4 JSP文档 80
6.4 EJB规范 81
6.4.1 EJB的发展史 81
6.4.2 EJB规范详解 82
6.4.3 EJB详解 82
6.4.4 EJB的生命期 85
6.4.5 EJB的高级特性 91
6.5 小结 91
6.6 复习题 91
7.2 客户层的重要性 92
7.2.1 客户端的职责 92
第7章 客户层 92
7.1 概述 92
7.2.2 客户端的要点 93
7.3 客户层的组件 94
7.3.1 HTML客户端 94
7.3.2 Applet客户端 95
7.3.4 Java应用客户端 96
7.3.5 非Java客户端 96
7.3.3 MIDlet客户端 96
7.3.6 Web服务客户端 97
7.4 客户层容器 97
7.4.1 浏览器环境 97
7.4.2 Java环境 97
7.4.3 移动环境 97
7.5 小结 97
7.6 复习题 98
8.2 Web层的重要性 99
第8章 表示层 99
8.1 概述 99
8.2.1 静态和动态内容 101
8.2.2 请求/响应 101
8.2.3 轻量级 101
8.2.4 会话 101
8.2.5 可伸缩 101
8.2.6 可能实现业务逻辑 102
8.3 Web容器 102
8.4 Web组件 102
8.4.1 Servlet 102
8.4.2 Filter 103
8.4.3 JSP 104
8.5 MVC架构 106
8.6 Web层的最佳实践和指南 108
8.6.2 表示组件 109
8.7 Web层的设计模式 109
8.6.1 控制器组件 109
8.8 J2EE专用的设计模式 111
8.9 小结 112
8.10 复习题 112
第9章 业务层 113
9.1 概述 113
9.2 业务层的重要作用 113
9.3 业务容器 114
9.4 业务组件 115
9.4.1 会话Bean 115
9.4.2 实体Bean 115
9.4.3 消息驱动的Bean 116
9.5 会话Bean详解 116
9.5.1 无状态会话Bean 116
9.5.2 有状态会话Bean 117
9.6 实体Bean详解 118
9.6.1 持久数据 118
9.6.2 主键 119
9.6.3 关系 119
9.6.4 实体Bean和池化 121
9.6.5 BMP实体Bean 122
9.6.6 CMP实体Bean 122
9.7 MDB详解 123
9.8 业务层的业务对象 123
9.9 MVC架构与业务层 124
9.10 业务层的最佳实践和指南 124
9.10.1 会话Bean,有状态还是无状态? 124
9.10.2 实体Bean,BMP还是CMP? 125
9.10.3 MDB的使用时机和位置 125
9.10.5 值对象 126
9.11 业务层的设计模式 126
9.10.4 数据访问对象 126
9.11.1 Business Delegate 127
9.11.2 Service Locator 127
9.11.3 Session Facade 127
9.11.4 Business Object 127
9.11.5 Application Service 127
9.11.6 Composite Entity 128
9.11.7 Transfer Object 128
9.11.8 Transfer Object Assembler 128
9.11.9 Value List Handler 128
9.12 小结 128
9.13 复习题 129
10.2 已有的EIS系统 130
10.2.2 数据库系统 130
10.2.1 应用系统 130
第10章 EIS集成层 130
10.1 概述 130
10.2.3 遗留系统 131
10.3 EIS集成方案 131
10.3.1 基于JDBC API的集成方案 131
10.3.2 基于JMS的集成方案 132
10.3.3 基于J2EE连接器架构的集成方案 132
10.4 集成层的最佳实践和指南 133
10.5 小结 134
10.4.1 使用EIS访问对象 134
10.4.2 连接到EIS 134
10.6 复习题 135
第11章 服务 136
11.1 概述 136
11.2 事务 136
11.3 J2EE的事务参与者 137
11.2.3 链式事务 137
11.2.4 Sagas 137
11.2.2 嵌套事务 137
11.2.1 普通事务 137
11.3.1 JTS和JTA 138
11.3.2 业务层的事务 138
11.4 安全 141
11.4.1 身份验证 141
11.4.2 授权 143
11.4.3 消息保护 143
11.4.4 审计 143
11.5 小结 143
11.6 复习题 144
第Ⅲ部分 案例研究 147
第12章 ServeNVolley公司 147
12.1 概述 147
12.2 目前的结构 147
12.3 可供使用的服务 148
12.4 要求 149
12.5 假设、风险和约束 149
12.6 可能的解决方案 150
12.6.1 高级架构 150
12.6.2 设计层和设计模式的运用 151
12.7 小结 152
12.8 复习题 153
第13章 SafeDrive.com门户 154
13.1 概述 154
13.2 目前的结构 154
13.3 可供使用的服务 155
13.4 要求 155
13.5 假设、风险和约束 156
13.6 可能的解决方案 156
13.6.1 高级架构 156
13.6.2 设计层和设计模式的运用 157
13.7 小结 158
13.8 复习题 159
第14章 SafeDrive.com门户解决方案 160
14.1 概述 160
14.2 高级设计 160
14.3 组件和部署细节 161
14.4 客户层 162
14.5 Web层的设计 167
14.6 业务层的设计 209
14.7 小结 247
14.8 复习题 247
附录A 部署描述符和打包文件 249
附录B 池和池化 260
附录C 设计模式 262
C.1 表示层设计模式 263
C.2 业务层设计模式 266
D.1 安装 269
附录D Sun Java Studio Enterprise 269
D.2 利用JSE构建应用程序 270
D.2.1 JSE IDE的要点 271
D.2.2 新添数据库 273
D.2.3 新添数据库驱动程序 274
D.2.4 创建连接池、数据源和持久管理器 276
D.2.5 创建会话Bean 281
D.2.6 创建CMP实体Bean 284
D.2.7 创建消息驱动的Bean 288
D.2.8 创建Web应用程序客户端 292
D.2.9 创建一个J2EE应用程序 294
D.3 部署J2EE应用程序 295
D.3.1 使用JSE部署应用程序 296
D.3.2 使用浏览器管理控制台部署应用程序 297
D.4 测试J2EE应用程序原型 298
术语表 299