《Java EE 6权威指南:基础篇(第4版)》是任务导向、示例驱动的Java EE 6基础教程,讲述如何开发企业应用,并作为第4版加入了很多新内容,详细介绍了最新的API和平台特性。《Java EE 6权威指南:基础篇(第4版)》分8部分阐述了Java EE 6基础知识、Web层技术(包括JavaServer Faces和Facelets),以及如何使用JAX—WS和JAX—RS构建Web服务、使用JavaBeans组件开发业务逻辑、使用Java Persistence APl访问数据库、为Web应用或企业应用增强安全性、在Java EE平台使用上下文和依赖注入。
目 录
第一部分 简介
第1章 综述2
1.1 Java EE 6平台新特性3
1.2 Java EE应用模型3
1.3 分布式多层应用4
1.3.1 安全5
1.3.2 Java EE组件5
1.3.3 Java EE客户端5
1.3.4 Web 组件7
1.3.5 业务组件8
1.3.6 企业信息系统层9
1.4 Java EE容器9
1.4.1 容器服务10
1.4.2 容器类型10
1.5 Web服务支持11
1.5.1 XML12
1.5.2 SOAP传输协议12
1.5.3 WSDL标准格式12
1.6 Java EE应用程序装配与部署13
1.7 打包应用程序13
1.8 开发中的角色分工14
1.8.1 Java EE产品提供商15
1.8.2 工具提供商15
1.8.3 应用组件提供商15
1.8.4 应用程序装配者15
1.8.5 应用程序部署者和管理员16
1.9 Java EE 6 API 16
1.9.1 企业JavaBeans技术19
1.9.2 Java Servlet 技术20
1.9.3 JavaServer Faces 技术20
1.9.4 JavaServer Pages 技术20
1.9.5 JavaServer Pages 标准标签库21
1.9.6 Java Persistence API 21
1.9.7 Java Transaction API21
1.9.8 支持REST 式Web 服务的Java API 21
1.9.9 Managed Beans 21
1.9.10 Java EE 平台(JSR 299)的上下文与依赖注入22
1.9.11 Java Dependency Injection(JSR 330) 22
1.9.12 Bean Validation22
1.9.13 Java Message Service API22
1.9.14 Java EE Connector 架构22
1.9.15 JavaMail API23
1.9.16 Java 容器授权合约23
1.9.17 Java 容器认证服务提供商接口23
1.10 Java 标准版6.0中的Java EE6 API23
1.10.1 Java Database ConnectivityAPI24
1.10.2 Java 命名和目录接口API24
1.10.3 JavaBeans ActivationFramework 24
1.10.4 Java XML API 24
1.10.5 Java XML 绑定架构25
1.10.6 支持带附件的SOAP 消息API25
1.10.7 基于XML 的Java WebServices API 25
1.10.8 Java 认证与授权服务25
1.11 GlassFish 服务器工具26
第2章 使用教程示例27
2.1 必备软件 27
2.1.1 Java 平台标准版(J2SE)27
2.1.2 Java EE 6 SDK28
2.1.3 Java EE 6教程组件28
2.1.4 NetBeans 集成开发环境29
2.1.5 Apache Ant 30
2.2 启动和关闭GlassFish服务器30
2.3 启动管理控制台31
2.4 启动和关闭Java DB服务器32
2.5 构建示例32
2.6 教程示例的目录结构32
2.7 获取最新版的教程33
2.8 调试Java EE应用33
2.8.1 服务器日志33
2.8.2 调试器34
第二部分 Web层
第3章 Web应用初步36
3.1 Web应用36
3.2 Web应用的生命周期37
3.3 Web模块示例——hello139
3.3.1 hello1 Web模块分析40
3.3.2 打包Web模块42
3.3.3 部署Web模块43
3.3.4 运行已部署的Web模块44
3.3.5 查看已部署的Web模块44
3.3.6 更新Web模块45
3.3.7 动态加载45
3.3.8 卸载Web模块46
3.4 配置Web应用之hello2示例46
3.4.1 映射URL到Web组件46
3.4.2 hello2Web模块分析47
3.4.3 构建、打包、部署以及运行
hello2 应用48
3.4.4 设置welcome文件 49
3.4.5 设置上下文以及初始化参数 49
3.4.6 映射错误信息到出错页面 50
3.4.7 资源引用声明 51
3.5 Web应用的更多信息 52
第4章 JSF技术 54
4.1 什么是JSF应用 54
4.2 JSF技术的优势 55
4.3 创建简单的JSF应用 56
4.3.1 开发后台bean57
4.3.2 创建网页 57
4.3.3 映射FacesServlet实例 58
4.3.4 hello应用程序的生命周期 58
4.4 有关JSF技术的更多信息 59
第5章 Facelets介绍 60
5.1 什么是Facelets60
5.2 开发简单的Facelets 应用 61
5.2.1 创建Facelets 应用 61
5.2.2 配置应用 64
5.2.3 构建、打包、部署以及运行guessnumber Facelets示例 65
5.3 模板化 66
5.4 复合组件 68
5.5 资源 70
第6章 表达式语言 72
6.1 EL综述 72
6.2 即时求值和延后求值语法 73
6.2.1 即时求值 73
6.2.2 延后求值 73
6.3 值表达式和方法表达式 74
6.3.1 值表达式 74
6.3.2 方法表达式 77
6.4 定义标签属性类型 79
6.5 文本表达式 80
6.6 运算符 80
6.7 保留字 81
6.8 EL 表达式的例子 81
第7章 在网页中使用JSF技术83
7.1 设置页面83
7.2 使用HTML标签为页面添加组件84
7.2.1 组件标签的通用属性85
7.2.2 添加HTML 的head和body标签87
7.2.3 添加表单组件88
7.2.4 文本组件88
7.2.5 使用命令型组件标签执行动作和导航92
7.2.6 用h:graphicImage添加图像和图形93
7.2.7 用h:panelGrid和h:panelGroup实现组件布局93
7.2.8 显示选项组件94
7.2.9 显示多项选择组件96
7.2.10 使用f:selectItem和f:selectItems标签97
7.2.11 使用数据绑定表组件98
7.2.12 使用h:message和h:messages显示出错信息101
7.2.13 使用h:button和h:link标签创建可加入收藏夹的URL 102
7.2.14 使用视图参数配置可加入收藏夹的URL 102
7.2.15 使用h:output标签实现资源再定位103
7.3 核心标签104
第8章 转换器、监听器和验证器106
8.1 标准转换器106
8.1.1 转换组件的值107
8.1.2 DateTimeConverter 108
8.1.3 NumberConverter109
8.2 为组件注册监听器110
8.2.1 为组件注册一个值变更监听器110
8.2.2 为组件注册动作监听器111
8.3 标准验证器111
8.3.1 验证组件的值112
8.3.2 LongRange Validator 112
8.4 引用后台bean的方法112
8.4.1 引用执行页面导航的方法113
8.4.2 引用处理动作事件的方法113
8.4.3 引用执行验证逻辑的方法114
8.4.4 引用处理值变更事件的方法114
第9章 用JSF技术开发Web 应用115
9.1 后台bean115
9.1.1 创建后台bean115
9.1.2 使用EL引用后台bean 116
9.2 为后台bean的属性编写代码117
9.2.1 为绑定到组件值的属性编写代码118
9.2.2 为绑定到组件实例的属性编写代码122
9.2.3 为绑定到转换器、监听器以及验证器的属性编写代码123
9.3 为后台bean的方法编写代码124
9.3.1 编写处理导航的方法124
9.3.2 编写处理动作事件的方法125
9.3.3 编写执行验证的方法126
9.3.4 编写处理值变更事件的方法126
9.4 使用Bean验证127
第10章 Java Servlet 技术130
10.1 什么是servlet 130
10.2 servlet 生命周期131
10.2.1 处理servlet 生命周期内的事件131
10.2.2 处理servlet 错误132
10.3 共享信息132
10.3.1 有作用域的对象133
10.3.2 控制对共享资源的并发访问133
10.4 创建以及初始化servlet133
10.5 编写service方法134
10.5.1 从请求里提取信息134
10.5.2 构造应答信息135
10.6 过滤请求和应答136
10.6.1 编程实现过滤器136
10.6.2 通过编程定制请求和应答137
10.6.3 设定过滤器映射138
10.7 调用其他Web资源139
10.7.1 在应答里包含其他资源139
10.7.2 转交控制权给其他Web组件140
10.8 访问Web上下文140
10.9 维护客户端状态140
10.9.1 访问会话141
10.9.2 把对象关联到会话141
10.9.3 会话管理141
10.9.4 会话追踪142
10.10 结束servlet142
10.10.1 追踪服务请求142
10.10.2 将关闭事件通知方法143
10.10.3 妥善处理长时方法143
10.11 mood示例应用144
10.11.1 mood示例应用里的组件144
10.11.2 构建、打包、部署以及运行mood 示例144
10.12 有关Java Servlet 技术的更多信息145
第三部分 Web服务
第11 章 Web服务简介148
11.1 什么是Web服务148
11.2 Web服务的类型148
11.2.1 “重量级”的Web服务148
11.2.2 REST式Web服务149
11.3 Web服务类型的选用150
第12章 用JAX-WS构建Web服务151
12.1 用JAX-WS开发简单的Web服务和客户端152
12.1.1 对JAX-WS端点的要求152
12.1.2 编写服务端点实现类153
12.1.3 构建、打包及部署服务153
12.1.4 测试Web服务端点中的方法154
12.1.5 简单的JAX-WS应用客户端 155
12.1.6 简单的JAX-WSWeb客户端 156
12.2 JAX-WS支持的类型 159
12.3 Web服务的互操作性与JAX-WS 159
12.4 有关JAX-WS的更多信息 159
第13章 用JAX-RS构建REST式Web服务 160
13.1 什么是REST式Web服务 160
13.2 创建一个REST 式根资源类 161
13.2.1 用JAX-RS开发REST式Web服务 161
13.2.2 JAX-RS应用概述 162
13.2.3 @Path注解和URI路径模板 163
13.2.4 响应HTTP资源 165
13.2.5 使用@Consumes和@Produces定制请求和应答 167
13.2.6 从请求里提取参数 169
13.3 JAX-RS的示例应用 172
13.3.1 REST式Web服务 172
13.3.2 rsvp示例应用 174
13.3.3 真实示例 176
13.4 有关JAX-RS的更多信息 176
第四部分 企业bean
第14章 企业bean 180
14.1 什么是企业bean180
14.1.1 使用企业bean的好处 180
14.1.2 何时使用企业bean 181
14.1.3 企业bean的类型 181
14.2 什么是会话bean181
14.2.1 会话bean的类型 181
14.2.2 何时使用会话bean 182
14.3 什么是消息驱动bean 183
14.3.1 消息驱动bean与会话bean的区别 183
14.3.2 何时使用消息驱动bean184
14.4 访问企业bean184
14.4.1 在客户端中使用企业bean185
14.4.2 远程还是本地访问185
14.4.3 本地客户端186
14.4.4 远程客户端187
14.4.5 Web服务客户端188
14.4.6 方法的参数和方法的访问189
14.5 企业bean的内容189
14.5.1 在EJB的JAR模块中打包企业bean189
14.5.2 在WAR模块中打包企业bean190
14.6 企业bean的命名规范191
14.7 企业bean的生命周期191
14.7.1 有状态会话bean的生命周期191
14.7.2 无状态会话bean的生命周期192
14.7.3 单件会话bean的生命周期193
14.7.4 消息驱动bean的生命周期193
14.8 有关企业bean的更多信息194
第15章 企业bean应用初步195
15.1 创建企业bean195
15.1.1 编写企业bean 的类195
15.1.2 创建converter的Web客户端196
15.1.3 构建、打包、部署及运行converter示例197
15.2 修改Java EE应用198
第16章 运行企业bean示例200
16.1 cart 示例200
16.1.1 业务接口201
16.1.2 会话bean 类201
16.1.3 @Remove 方法204
16.1.4 辅助类204
16.1.5 构建、打包、部署及运行cart示例204
16.2 单件会话bean示例counter 206
16.2.1 创建单件会话bean 206
16.2.2 counter示例的架构209
16.2.3 构建、打包、部署及运行counter示例211
16.3 Web服务示例helloservice212
16.3.1 Web服务端点的实现类212
16.3.2 无状态会话bean的实现类213
16.3.3 构建、打包、部署及测试helloservice示例213
16.4 使用定时器服务214
16.4.1 创建日历型定时器表达式215
16.4.2 可编程定时器217
16.4.3 自动定时器218
16.4.4 取消及保存定时器219
16.4.5 获得定时器的信息219
16.4.6 事务和定时器219
16.4.7 timersession示例219
16.4.8 构建、打包、部署及运行timersession示例221
16.5 处理异常222
第五部分 Java EE 平台的上下文与依赖注入
第17章 Java EE 平台的上下文与依赖注入入门226
17.1 CDI概述227
17.2 关于bean 227
17.3 关于托管bean 228
17.4 可注入对象bean 228
17.5 使用限定词229
17.6 注入bean 230
17.7 使用作用域230
17.8 为bean设定EL名称231
17.9 增加存取方法232
17.10 在Facelets页面中使用托管bean 232
17.11 使用Producer方法注入对象233
17.12 配置CDI应用233
17.13 有关CDI的更多信息234
第18 章 运行简单的上下文与依赖注入示例235
18.1 CDI示例simplegreeting 235
18.1.1 simplegreeting的源文件235
18.1.2 Facelets模板和页面236
18.1.3 配置文件237
18.1.4 构建、打包、部署及运行CDI示例simplegreeting 237
18.2 CDI 示例guessnumber239
18.2.1 guessnumber的源文件239
18.2.2 Facelets页面243
18.2.3 构建、打包、部署及运行CDI 示例guessnumber 244
第六部分 持久化
第19章 Java Persistence API简介248
19.1 实体248
19.1.1 实体类的需求248
19.1.2 实体类的持久化字段和属性249
19.1.3 实体里的主键253
19.1.4 实体关系的多样性254
19.1.5 实体关系的方向性255
19.1.6 实体里的可嵌入类256
19.2 实体继承257
19.2.1 抽象实体257
19.2.2 映射超类258
19.2.3 非实体超类258
19.2.4 实体继承映射策略259
19.3 管理实体261
19.3.1 EntityManager接口261
19.3.2 持久化单元264
19.4 查询实体265
19.5 有关Persistence的更多信息266
第20章 运行Persistence示例267
20.1 order应用267
20.1.1 order示例中的实体关系267
20.1.2 order应用里的主键269
20.1.3 映射多个数据库表的实体 272
20.1.4 order应用里的级联操作 272
20.1.5 order应用里的BLOB和CLOB类型 273
20.1.6 order应用里的时间类型 273
20.1.7 管理order应用里的实体 273
20.1.8 构建、打包、部署以及运行order应用 275
20.2 roster应用 276
20.2.1 roster应用里的关系 276
20.2.2 roster应用里的实体继承关系 277
20.2.3 roster里的Criteria查询 278
20.2.4 roster应用里的自动建表特性 280
20.2.5 构建、打包、部署以及运行roster应用 280
20.3 address-book应用 282
20.3.1 address-book应用里的Bean验证约束 282
20.3.2 为address-book应用里的约束指定出错信息 283
20.3.3 验证JSF应用中输入的Contact数据 283
20.3.4 构建、打包、部署以及运行address-book应用 284
第21章 Java Persistence查询语言 286
21.1 查询语言术语 286
21.2 使用Java Persistence查询语言创建查询 287
21.2.1 查询里的命名参数 287
21.2.2 查询里的位置参数 288
21.3 查询语言的简要语法 288
21.3.1 选择语句 288
21.3.2 更新和删除语句 289
21.4 查询示例 289
21.4.1 简单查询 289
21.4.2 需定位到相关实体的查询 290
21.4.3 使用其他条件表达式的查询 291
21.4.4 批量更新和删除292
21.5 查询语言语法全本293
21.5.1 BNF 符号293
21.5.2 Java Persistence查询语言的BNF 语法293
21.5.3 FROM语句297
21.5.4 路径表达式300
21.5.5 WHERE语句301
21.5.6 SELECT语句309
21.5.7 ORDER BY 语句310
21.5.8 GROUP BY和HAVING语句311
第22章 使用Criteria API构造查询312
22.1 Criteria和Metamodel API概述312
22.2 使用Metamodel API为实体类建模313
22.3 使用Criteria API和Metamodel API创建类型安全的基本查询314
22.3.1 创建Criteria查询315
22.3.2 查询根315
22.3.3 使用join查询关联关系316
22.3.4 Criteria查询中的路径定位316
22.3.5 过滤Criteria查询结果317
22.3.6 处理Criteria查询结果319
22.3.7 查询执行320
第七部分 安全
第23章 Java EE平台安全入门322
23.1 Java EE安全性概述322
23.1.1 简单的安全应用示例323
23.1.2 安全机制的特性325
23.1.3 应用安全的特征325
23.2 安全机制326
23.2.1 Java SE安全机制326
23.2.2 Java EE安全机制327
23.3 为容器增加安全性329
23.3.1 用注解为应用增加安全性329
23.3.2 用部署描述文件为应用增加安全性329
23.3.3 使用编程式的安全机制330
23.4 为GlassFish服务器增加安全性330
23.5 使用域、用户、用户组和角色330
23.5.1 什么是域、用户、用户组和角色331
23.5.2 在GlassFish服务器中管理用户和用户组333
23.5.3 设置安全角色334
23.5.4 将角色映射至用户和用户组335
23.6 使用SSL建立安全连接336
23.6.1 验证及配置SSL337
23.6.2 使用数字证书337
23.7 有关安全性的更多信息339
第24章 Web应用安全化入门341
24.1 Web应用安全性概述341
24.2 为Web应用增加安全性342
24.2.1 设定安全限制343
24.2.2 设定认证机制345
24.2.3 声明安全角色350
24.3 在Web应用中使用编程式安全机制351
24.3.1 以编程方式实现用户认证351
24.3.2 以编程方式检查发起者身份353
24.3.3 编程安全性的代码示例353
24.3.4 声明并关联角色引用354
24.4 为Web应用增加安全性的示例355
24.4.1 在servlet中使用基本认证的示例356
24.4.2 在JSF中使用表单认证机制的示例359
第25章 企业应用安全化入门363
25.1 为企业bean增加安全性363
25.1.1 使用声明方式为企业bean增加安全性365
25.1.2 使用编程方式为企业bean增加安全性369
25.1.3 用于身份传播的安全标识(run-as)370
25.1.4 部署经过安全加固的企业bean371
25.2 为企业bean增加安全性的一组示例371
25.2.1 使用声明方式为企业bean增加安全性的示例371
25.2.2 使用编程方式为企业bean增加安全性的示例375
25.3 为应用客户端增加安全性377
25.3.1 使用登录模块377
25.3.2 使用编程式用户登录378
25.4 为企业信息系统应用增加安全性378
25.4.1 容器管理登录378
25.4.2 组件管理登录379
25.4.3 配置资源适配器安全性379
第八部分 Java EE支持技术
第26章 Java EE支持技术简介384
26.1 事务384
26.2 资源384
26.2.1 Java EE连接器架构和资源适配器384
26.2.2 Java Message Service API385
26.2.3 Java数据库连接软件385
第27章 事务386
27.1 什么是事务386
27.2 容器托管的事务387
27.2.1 事务属性 387
27.2.2 回滚容器托管的事务 390
27.2.3 同步会话bean 的实例变量 390
27.2.4 容器托管事务里不允许使用的方法 391
27.3 bean托管事务 391
27.3.1 JTA事务 392
27.3.2 不提交的返回 392
27.3.3 bean托管事务里不允许使用的方法 392
27.4 事务超时 392
27.5 更新多个数据库中的数据 393
27.6 Web组件里的事务 394
27.7 有关事务的更多信息 394
第28章 资源连接 395
28.1 资源和JNDI命名 395
28.2 DataSource对象和连接池 396
28.3 资源注入 397
28.3.1 字段级别的注入方式 398
28.3.2 方法级别的注入方式 398
28.3.3 类级别的注入方式 399
28.4 资源适配器和契约 399
28.4.1 管理契约 400
28.4.2 通用工作上下文契约 401
28.4.3 外向型和内向型契约 401
28.5 元数据注解 402
28.6 公共客户端接口 404
28.7 参考资源 404
《新媒体人工作手册:商业文案写作》内容简介:商业文案是能把产品卖出去的创意文字。会写文案,意味着你不仅具备与销售相关的商业
高性能通信网络(原书第2版),ISBN:9787111094456,作者:(美)JeanWalrand,(美)PravinVaraiya著;张艳等译目录 出版者...
《资本与意识形态·漫画版》内容简介:⭐一个家族八代人,穿越200多年时空岁月,见证从法国大革命到21世纪,全球范围内的财富变迁
密码学的应用范围日益扩大,它不仅用于政府通信和银行系统等传统领域,还用于Web浏览器、电子邮件程序、手机、制造系统、嵌入式软
《高清一战全史(上):战火初起》内容简介:本书是《高清一战全史》的上卷《战火初起》,时间包括从1914年7月战争爆发到1915年底。
Chapter1.IntroductionSection1.1.TheHighPerformanceBuzz-wordChapter2.TheTheoryofC...
《VisualC#2005从入门到精通/微软技术丛书》:微软技术丛书系列之一,建议一读!MicrosoftVisualC#功能强大、使用简单。本书全面介
天亮了一只鸟落在船上蝴蝶从水面飞过湖畔边的蜘蛛网里,一只蜘蛛正在和天牛扭打野鸭悠然自得地从水面游走傍晚了月亮倒映在湖面上
龚正/惠普公司高级顾问拥有十多年的IT从业经验,具备丰富的云计算、大数据分析和大型企业级应用的架构设计和实施经验,是电信、金
《错觉》内容简介:在人工智能异常火热的今天,很多人认为我们生活在一个不可思议的历史时期,人工智能和大数据可能比工业革命更能
《柴油机维修技巧与故障案例分析》较为系统地介绍了柴油机(包括电控高压共轨燃油喷射系统、单体泵喷射系统等)的基础知识,使用
《TTT5.0培训师的大脑》内容简介:TTT技术自20世纪90年代进入中国培训市场,历经20多年的发展,几经迭代,已然进入TTT5.0阶段——大
《架构启示录》内容简介:本书研究传统的建筑工作与数字产品的架构工作之间有着怎样的联系,探讨了Christopher Alexander、Richard
《农产品上行运营策略与案例》内容简介:2018年的中央一号文件开启了中国乡村振兴的“三农”新时代,文件对农村电商的要求进一步聚
《我的前半生》内容简介:一生“做了四次皇帝”的溥仪 亲述清朝覆亡史、民国兴衰史、共和国兴盛史 比清宫剧更细致,比历史书更生动
《高绩效HR必备图表范例》内容简介:当今人力资源管理领域面临诸多新问题、新环境、新理念、新技术,各种名类繁杂的图书也大量涌现
《大数据与劳动力市场研究》内容简介:利用网络大数据开展就业市场的分析和预测,为政府提供决策咨询,其重要性无论如何强调,应当
“本书是Summit以及CFAQ在线列表的许多参与者多年心血的结晶,是C语言界最为珍贵的财富之一。我向所有C语言程序员推荐本书。”—
本书从金融人士的视角研究互联网时代的金融创新,全面系统地介绍了我国互联网金融的产生背景及原因,梳理了互联网金融的基本理论
《科学的极致:漫谈人工智能》内容简介:集智俱乐部是一个从事学术研究、享受科学乐趣的探索者组成的团体,倡导以平等开放的态度、