第1章 Java EE 5和GlassFish. 3
1.1 Java EE 5概述... 3
1.2 Java EE 5架构... 4
1.2.1 容器(Container) 6
1.2.2 应用组件(Application
Component) 6
1.2.3 Java EE 5的标准服务... 7
1.3 Java EE 5的新特性... 9
1.3.1 标注... 9
1.3.2 依赖性注入... 10
1.3.3 EJB 3.0和JPA.. 10
1.3.4 Web服务... 11
1.3.5 JSF. 11
1.4 Java EE 5相关的JSR.. 11
1.4.1 JCP介绍... 12
1.4.2 Java EE 5相关的JSR.. 13
1.5 关于GlassFish. 14
1.5.1 GlassFish项目概述... 15
1.5.2 GlassFish生态... 15
1.5.3 GlassFish的技术特性... 17
1.6 GlassFish和Java EE 5 SDK.. 18
1.6.1 Java EE 5 SDK.. 18
1.6.2 基于GlassFish代码构建的
3个产品... 20
1.7 小结... 21
第2章 开源和社区.... 22
2.1 开源概述... 22
2.1.1 FOSS. 22
2.1.2 开源带来的变革... 23
2.1.3 开源软件许可类型... 24
2.2 Java开源与GlassFish开源... 24
2.2.1 Java的GPL v2开源... 24
2.2.2 GlassFish的双开源许可... 25
2.3 GlassFish社区... 26
2.3.1 参与GlassFish社区... 26
2.3.2 FishEye. 27
2.3.3 Issue Tracker 28
2.3.4 GlassFish子社区... 28
2.4 java.net 社区... 29
2.4.1 参与java.net社区... 30
2.4.2 java.net指导原则... 32
2.5 SDN和SDN China. 33
2.5.1 SDN.. 33
2.5.2 Sun中国技术社区
(SDN China) 34
2.6 小结... 35
第3章 安装和构建GlassFish. 36
3.1 基于二进制文件安装GlassFish. 36
3.1.1 预备条件... 36
3.1.2 安装二进制存档... 37
3.1.3 启动服务器... 37
3.2 基于源代码构建GlassFish. 38
3.2.1 构建预备工作... 38
3.2.2 构建步骤... 39
3.2.3 快速测试... 43
3.3 使用NetBeans(IDE)构建模块... 43
3.4 小结... 45
应 用 篇
第4章 管理控制台.... 49
4.1 管理控制台概述... 49
4.1.1 启动和登录... 49
4.1.2 域的管理... 50
4.1.3 管理控制台的组成... 50
4.2 应用部署... 52
4.2.1 部署应用程序... 52
4.2.2 部署Web服务... 53
4.2.3 部署MBean. 54
4.3 资源管理... 55
4.3.1 JDBC资源... 56
4.3.2 JMS资源... 56
4.3.3 JavaMail会话... 58
4.3.4 JNDI资源... 58
4.3.5 连接器... 59
4.4 系统配置... 60
4.4.1 Java EE容器... 60
4.4.2 设置HTTP服务... 63
4.4.3 ORB(对象请求代理) 66
4.4.4 线程池(Thread Pool) 67
4.4.5 系统JMX连接器... 67
4.5 系统监控... 67
4.5.1 日志管理... 68
4.5.2 监控组件和服务... 69
4.5.3 诊断服务... 71
4.5.4 JVM和高级设置... 71
4.6 小结... 72
第5章 GlassFish命令行.... 73
5.1 命令行工具asadmin的应用... 73
5.1.1 语法... 73
5.1.2 asadmin子命令... 74
5.1.3 域(domain)子命令... 75
5.1.4 本地命令和远程命令... 78
5.1.5 asadmin执行方式... 79
5.2 asant介绍... 80
5.2.1 asant的配置... 80
5.2.2 asant扩充的Ant任务... 80
5.3 命令行架构... 82
5.3.1 命令的定义... 83
5.3.2 命令的实现... 84
5.3.3 命令的交互... 85
5.4 命令定制... 86
5.4.1 增加命令... 86
5.4.2 定制远程命令... 89
5.5 小结... 92
第6章 Web应用程序基础和Servlet. 93
6.1 HTTP简介... 93
6.1.1 HTTP的特点... 93
6.1.2 URL(统一资源定位符) 94
6.1.3 HTTP请求(Request) 94
6.1.4 POST和GET方法... 96
6.1.5 HTTP响应(Response) 97
6.2 Web应用程序基础... 98
6.2.1 Web应用程序分类... 98
6.2.2 Web容器(Web Container) 98
6.2.3 Web模块(Web Module) 99
6.2.4 在GlassFish上打包、部署、
配置和运行... 100
6.2.5 动态重载... 101
6.3 Servlet基本概念... 102
6.3.1 什么是Servlet 102
6.3.2 Servlet的常用接口... 102
6.3.3 Servlet的生命周期... 104
6.4 Servlet中的对象... 105
6.4.1 请求对象... 105
6.4.2 响应对象... 106
6.4.3 Session对象... 107
6.5 Filter(过滤器) 109
6.5.1 定制Filter 109
6.5.2 Filter声明... 111
6.5.3 Filter的生命周期... 113
6.6 请求转发... 114
6.6.1 include方法... 114
6.6.2 forward方法... 115
6.7 生命周期事件... 115
6.7.1 监听器类型... 116
6.7.2 部署监听器... 116
6.8 Servlet 2.5规范的新特性... 117
6.8.1 Servlet 2.5中的标注... 117
6.8.2 web.xml的改变... 118
6.8.3 其他... 119
6.9 小结... 119
第7章 JSP编程.... 120
7.1 JSP概述... 120
7.1.1 JSP发展历史... 120
7.1.2 JSP的由来... 120
7.1.3 JSP与Servlet的转换... 120
7.1.4 JSP的生命周期... 123
7.1.5 架构中的应用... 123
7.1.6 JSP页面的构成... 124
7.2 JSP指令... 124
7.2.1 page指令... 124
7.2.2 taglib指令... 125
7.2.3 include指令... 126
7.3 JSP动作... 126
7.3.1 <jsp:useBean>动作... 127
7.3.2 <jsp:setProperty>和
<jsp:getProperty>动作... 128
7.3.3 <jsp:include>动作... 129
7.3.4 <jsp:forward>动作... 129
7.3.5 其他JSP动作... 130
7.4 统一表达式语言(Unified
Expression Language) 130
7.4.1 隐含对象(Implicit Objects) 131
7.4.2 对象的访问及其操作... 132
7.5 表达式... 133
7.5.1 立即表达式和延迟表达式... 133
7.5.2 值表达式和方法表达式... 134
7.5.3 自定义标记属性类型... 135
7.5.4 禁用表达式... 136
7.6 JSP标准标记库... 137
7.6.1 Core标记库... 138
7.6.2 XML标记库... 140
7.6.3 SQL标记库... 141
7.7 小结... 142
第8章 JSF编程.... 143
8.1 JSF概述... 143
8.1.1 RAD与Web应用... 143
8.1.2 什么是JSF. 144
8.1.3 开发工具对JSF的支持... 144
8.2 创建JSF应用程序... 145
8.2.1 创建一个使用JSF框架的
Web应用程序... 146
8.2.2 创建页面... 147
8.2.3 页面导航... 148
8.2.4 受管Bean. 149
8.2.5 部署运行... 150
8.3 完善JSF应用程序... 151
8.3.1 示例分析... 151
8.3.2 创建验证器(Validator) 151
8.3.3 创建转换器(Converter) 152
8.3.4 错误信息处理... 152
8.3.5 自定义错误信息... 153
8.3.6 自定义验证器... 154
8.4 JSF中的重要组件... 156
8.4.1 UI组件(UI Component) 156
8.4.2 绘制器(Renderer) 156
8.4.3 验证器(Validator) 156
8.4.4 受管Bean(Managed Bean) 156
8.4.5 转换器(Convertor) 157
8.4.6 事件(Event)和
监听器(Listener) 157
8.4.7 消息(Message) 157
8.4.8 导航(Navigation) 157
8.5 JSF的工作方式... 158
8.5.1 配置JSF应用... 158
8.5.2 JSF的生命周期... 159
8.6 重要的类和接口... 162
8.6.1 FacesContext类... 162
8.6.2 ExternalContext类... 162
8.6.3 Application类... 162
8.6.4 UIComponent接口... 163
8.7 JSF组件的层次结构和标识... 163
8.7.1 JSF组件的层次结构... 163
8.7.2 用标识符标识组件... 165
8.8 小结... 166
第9章 AJAX技术.... 167
9.1 AJAX概述... 167
9.1.1 为什么会出现AJAX.. 167
9.1.2 一个简单的AJAX验证的
例子... 167
9.1.3 AJAX技术的优势... 175
9.1.4 AJAX技术的一些限制... 176
9.2 Dojo Toolkit 176
9.2.1 用Dojo Toolkit实现AJAX
验证... 176
9.2.2 AJAX Widget 178
9.2.3 用Dojo实现的Fisheye
List 178
9.2.4 Dojo的包... 181
9.3 jMaki 182
9.3.1 包容器——jMaki 182
9.3.2 jMaki在NetBeans IDE中的
安装和使用... 182
9.3.3 用jMaki实现Fisheye. 183
9.4 AJAX与JSF. 184
9.4.1 实例:自动完成文本字段... 184
9.4.2 Sun BluePrints AJAX组件... 188
9.5 AJAX与GlassFish. 189
9.5.1 Phobos. 189
9.5.2 Woodstock. 190
9.6 小结... 191
第10章 Web服务.... 192
10.1 Web服务原理... 192
10.1.1 Web服务体系结构... 192
10.1.2 Web服务的实现技术... 193
10.1.3 一个使用天气预报
Web服务的实例... 196
10.1.4 用JAX-WS实现
Web服务... 199
10.1.5 SAAJ. 202
10.2 安全的Web服务... 204
10.2.1 在GlassFish上实现
全局的WSS. 205
10.2.2 在GlassFish上实现
局部的WSS. 206
10.3 JAXB.. 207
10.3.1 JAXB历史... 207
10.3.2 XML与Web服务... 208
10.3.3 JAXB所描述的绑定... 209
10.3.4 JAXB命令行工具... 210
10.3.5 JAXB应用开发... 210
10.4 StAX.. 212
10.4.1 拉式解析和推式解析... 212
10.4.2 StAX接口... 212
10.5 小结... 217
第11章 EJB 3.0和JPA开发.... 218
11.1 EJB 3.0特点综述... 218
11.1.1 为什么要EJB 3.0. 218
11.1.2 EJB 3.0特点综述... 218
11.2 Session Bean开发示例... 219
11.2.1 定义业务接口... 219
11.2.2 实现业务接口... 220
11.2.3 打包... 221
11.2.4 发布... 221
11.2.5 查找和调用EJB 3.0. 222
11.3 依赖注入示例... 224
11.3.1 引用EJB.. 224
11.3.2 引用Resource. 225
11.4 Entity与Java Persistence示例... 226
11.4.1 定义EJB 3.0 Entity. 226
11.4.2 使用和管理EJB 3.0
Entity. 230
11.4.3 Entity Manager事务控制... 232
11.4.4 Persistence.xml 234
11.5 小结... 234
第12章 GlassFish的安全性.... 235
12.1 GlassFish安全性基本概念... 235
12.2 密码安全的管理... 236
12.2.1 密码文件权限... 236
12.2.2 主密码管理... 237
12.2.3 用户和资源密码管理... 237
12.3 身份认证和授权... 238
12.3.1 身份认证... 238
12.3.2 身份授权... 238
12.3.3 管理控制台对授权的
管理... 239
12.3.4 自定义的认证和授权
模块... 242
12.4 数字证书及工具... 243
12.4.1 数字证书的基本概念... 243
12.4.2 GlassFish证书文件... 244
12.4.3 更改GlassFish证书文件的
位置... 244
12.4.4 keytool工具概述... 245
12.4.5 使用keytool生成GlassFish
证书... 246
12.4.6 使用keytool为数字证书
签名... 246
12.5 单点登录... 247
12.6 Web服务安全性... 248
12.6.1 Web服务安全性规范... 248
12.6.2 GlassFish消息安全
提供者... 249
12.6.3 GlassFish消息保护策略... 249
12.6.4 GlassFish消息加密... 252
12.6.5 WSS消息安全实例... 253
12.7 GlassFish应用程序安全设置... 256
12.7.1 了解应用程序和系统
安全性... 256
12.7.2 角色、主体以及
主体到角色的映射... 257
12.7.3 领域设置... 259
12.7.4 设置server.policy文件... 260
12.8 小结... 261
第13章 国际化和本地化.... 262
13.1 Java国际化/本地化基本概念... 262
13.1.1 本地化环境(Locale) 263
13.1.2 字符编码(Character
Encoding) 265
13.1.3 资源包(Resource Bundle) 267
13.2 Java EE应用开发中的国际化... 270
13.2.1 Servlet的国际化... 270
13.2.2 JSTL中的国际化标记... 271
13.2.3 JSF应用的国际化... 276
13.3 GlassFish的国际化特性... 282
13.4 小结... 282
第14章 Java EE应用性能调优.... 283
14.1 Java EE应用的性能调优简介... 284
14.1.1 什么是Java应用的性能... 284
14.1.2 Java EE应用性能调优的
复杂程度... 286
14.1.3 Java EE应用性能调优的
方法论... 287
14.2 被动的性能调优... 288
14.2.1 硬件层和操作系统层次的
监控... 288
14.2.2 Java虚拟机层次的监控... 294
14.2.3 应用服务器层次的监控... 298
14.2.4 应用代码的跟踪... 298
14.2.5 被动性能调优的案例分析... 299
14.3 主动的性能调优... 302
14.3.1 应用层的性能调优... 302
14.3.2 应用服务器的性能调优... 305
14.3.3 Java虚拟机的性能调优... 308
14.3.4 操作系统的性能调优... 308
14.4 小结... 309
开 源 篇
第15章 JMX在GlassFish中的应用.... 313
15.1 JMX概述... 313
15.1.1 JMX的背景... 313
15.1.2 选择JMX的理由... 314
15.2 JMX的基本概念... 314
15.2.1 JMX的3层架构... 314
15.2.2 MBean组件... 315
15.2.3 MBean服务器... 317
15.2.4 JMX消息模型... 319
15.2.5 代理服务(Agent Service) 320
15.2.6 连接器(Connector) 320
15.3 JMX整合实例... 321
15.3.1 运用JMX技术管理Java
样例ArcTest 321
15.3.2 MBean的实现... 322
15.3.3 JMX代理的实现... 324
15.3.4 运行实例... 325
15.3.5 分布式管理应用的实现... 326
15.4 Java EE中的JMX应用... 328
15.4.1 Java EE管理模型(Management
Model) 328
15.4.2 可管理对象... 329
15.4.3 监控接口... 329
15.4.4 MEJB.. 330
15.5 GlassFish对JMX的应用... 331
15.5.1 GlassFish中的MBean. 331
15.5.2 AMX概述... 332
15.5.3 动态客户代理(Dynamic
Client Proxy) 333
15.5.4 AMX对JMX的扩展... 337
15.5.5 AMX实现... 338
15.6 开发User MBean. 343
15.6.1 User MBean的生命周期... 343
15.6.2 GlassFish中MBean相关的
操作... 343
15.7 小结... 345
第16章 自管理和CallFlow. 346
16.1 自管理... 346
16.1.1 自管理概述... 346
16.1.2 管理规则与JMX消息
机制... 347
16.1.3 管理规则的定义和实例... 347
16.1.4 自管理的事件(Event) 349
16.1.5 创建管理规则... 350
16.1.6 自管理的实现代码... 351
16.2 自管理应用开发实例... 351
16.2.1 创建自管理应用... 353
16.2.2 运行所创建的自管理应用... 359
16.3 CallFlow(调用流程监控) 363
16.3.1 CallFlow功能概述... 363
16.3.2 CallFlow架构... 364
16.3.3 CallFlow应用... 365
16.3.4 CallFlow开发... 368
16.4 小结... 371
第17章 高性能的HTTP引擎——
Grizzly. 372
17.1 NIO简介... 372
17.1.1 NIO的基本概念... 373
17.1.2 NIO之前的Server程序的
架构... 375
17.1.3 使用NIO来提高系统
扩展性... 376
17.1.4 使用NIO来制作HTTP
引擎的最大挑战... 378
17.2 Grizzly简介... 379
17.2.1 Grizzly的基本架构... 379
17.2.2 源码阅读指南... 381
17.3 Grizzly的特点... 383
17.3.1 如何处理慢速的连接... 383
17.3.2 如何避免内存泄漏... 387
17.3.3 使用多个Selector 393
17.3.4 Grizzly其他的特点... 396
17.3.5 Grizzly的性能... 398
17.4 小结... 398
第18章 异步请求处理和服务器推送
技术.... 399
18.1 异步请求处理... 399
18.1.1 Grizzly异步请求处理的
实现... 401
18.1.2 “新邮件提醒”异步请求
处理....................................... 407
18.1.3
Grizzly异步请求处理的
特点....................................... 411
18.2 服务器推送技术... 411
18.2.1 Comet实现的分析... 413
18.2.2 Comet实例讲解——
“聊天室”应用... 416
18.3 小结... 419
第19章 EJB容器实现.... 420
19.1 GlassFish EJB容器... 420
19.1.1 EJB远程视图... 420
19.1.2 EJB容器的实现... 422
19.1.3 EJB远程方法调用过程
分析... 425
19.2 GlassFish EJB 3.0实现... 429
19.2.1 EJB 3.0中Home接口和
Component接口的实现... 429
19.2.2 EJB 3.0远程对象的查找
过程分析... 432
19.2.3 EJB 3.0业务方法的调用
过程分析... 434
19.2.4 依赖注入的实现... 434
19.2.5 回调和拦截器实现的分析... 436
19.3 小结... 438
第20章 内部持久性实现和Java DB. 439
20.1 基于文件的持久性实现... 439
20.1.1 域配置文件domain.xml 439
20.1.2 读写domain.xml 440
20.2 基于数据库的持久性实现... 441
20.2.1 Java DB的来源... 441
20.2.2 Java DB的特点... 442
20.2.3 使用Java DB.. 443
20.2.4 Java DB工具... 444
20.2.5 GlassFish管理控制台有关
Java DB的配置... 445
20.2.6 GlassFish中利用Java DB的
持久性实现... 448
20.2.7 Java DB的应用... 451
20.3 小结... 457
结束语.... 459
附录 参考资源.... 461
参考文献.... 462







