目 录 1
第1章J2EE体系结构 1
企业级体系结构的目标 1
决定是否使用分布式体系结构 3
J2EE设计中的新考虑 4
何时使用EJB 5
数据存取 9
状态管理 11
J2EE体系结构 12
Web层设计 20
设计可移植的应用 22
小结 24
第2章J2EE项目的选择与风险 26
依据规范版本开发一个策略 26
选择应用服务器 27
“纯技术”陷阱 36
何时使用替代技术来补充J2EE 37
可移植性问题 38
中间整备环境与发布管理 40
建立开发团队 41
选择开发工具 44
识别和降低风险 47
小结 50
第3章J2EE应用的测试 52
测试能达到什么目的 53
定义 53
正确性的测试 54
性能与可缩放性的测试 83
测试的自动化 85
测试的补充方法 86
小结 87
J2EE应用的OO设计推荐标准 89
第4章J2EE项目的设计技术与编程标准 89
编程标准 116
为什么(以及怎样)不从头开始 139
小结 144
第5章示例应用的需求 151
概述 151
用户总数 152
前提 153
范围限制 154
交货进度表 154
Internet用户界面 154
售票处用户界面 166
非功能性需求 167
硬件与软件需求 168
小结 169
分布式体系结构何时合适 170
第6章应用J2EE技术 170
决定何时使用EJB 176
决定怎样使用EJB 187
决定何时使用带有JMS的异步调用 192
身份鉴别和授权 199
决定何时使用XML 201
高速缓存来改进性能 208
小结 211
数据存取目标 213
第7章J2EE应用中的数据存取 213
业务逻辑与持久性逻辑 214
对象驱动与数据库驱动建模:一场哲学辩论 214
O/R映射与“阻抗不匹配” 216
Data Access Obiect(DAO)模式 218
使用关系数据库 219
可移植性与性能的比较 224
分布式应用中的数据交换 226
常见的数据存取问题 228
何处执行数据存取 233
小结 238
示例应用中的数据建模 239
第8章使用实体组件进行数据存取 244
实体组件概念 244
CMP与BMP的比较 250
EJB 2.0中的实体组件 252
实体组件的高速缓存 258
实体组件的性能 262
实体组件的工具支持 263
小结 263
第9章实际的数据存取 266
数据存取技术选择 266
JDBC的细微之处 273
一个通用的JDBC抽象框架 277
在示例应用中实现DAO模式 304
小结 310
第10章会话组件 312
使用无状态会话组件 312
使用有状态会话组件 314
可应用于会话组件的J2EE设计模式 322
会话组件实现问题 327
示例应用中的会话组件 336
小结 336
第11章基础结构与应用实现 338
基础结构 338
实现业务逻辑 369
小结 377
第12章Web层的MVC设计 380
Web开发的挑战 380
Java Web开发中的教训 381
Web层的设计目标 385
MVC概念与Front Controller J2EE设计模式 386
Web应用框架 392
Web应用框架到总体应用体系结构中的集成 400
示例应用中使用的Web应用框架 401
Web层会话管理 420
处理用户输入 423
实现示例应用中的Web层 435
小结 440
第13章Web层中的视图 442
控制器与视图的分离 443
构造预订页面的视图 445
JSP视图 451
专用模板语言 467
XSLT 474
置标生成的替代方法 483
二进制内容的生成 492
视图合成和页面布局 495
小结 499
包装 501
第14章应用的包装与部署 501
应用部署:常见概念 513
在JBoss 3.0上部署示例应用 517
小结 523
第15章应用的性能测试与调整 525
策略问题与定义 525
性能与吞吐量的测试工具 528
查找性能或可缩放性问题 535
解决性能或可缩放性问题 542
案例研究:示例应用中的“Display Show”页面 553
分布式应用中的性能 562
Web层性能问题 572
J2EE应用中性能与可缩放性问题的主要原因 580
小结 581
第16章结论:让J2EE为我所用 582
附录A实现视图技术 587