《Java EE 7权威指南》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)埃克里·珍兆科,里卡多·塞维拉·纳瓦罗,伊恩·埃文斯,金姆·哈泽,威廉·马基特著;苏金国,江健等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2015
  • ISBN:9787111497110
  • 页数:469 页
图书介绍:本书是一个面向任务的实用指南,通过一系列实用示例来介绍如何开发Java EE 7(Java平台企业版7)企业应用。本书由Oracle的Java EE文档小组成员倾力编写,可帮助初学者和中级Java程序员深入了解这个平台。

第—部分 引言 2

第1章 概述 2

1.1 Java EE 7平台新增特性 3

1.2 Java EE应用模型 3

1.3 分布式多层应用 4

1.3.1 安全 4

1.3.2 Java EE组件 5

1.3.3 Java EE客户端 6

1.3.4 Web组件 7

1.3.5 业务组件 8

1.3.6 企业信息系统层 8

1.4 Java EE容器 9

1.4.1 容器服务 9

1.4.2 容器类型 10

1.5 Web服务支持 11

1.5.1 XML 11

1.5.2 SOAP传输协议 12

1.5.3 WSDL标准格式 12

1.6 Java EE应用装配与部署 12

1.7 开发角色 13

1.7.1 Java EE产品提供商 13

1.7.2 工具提供商 13

1.7.3 应用组件提供商 13

1.7.4 应用装配人员 14

1.7.5 应用部署人员和管理员 14

1.8 Java EE 7 API 14

1.8.1 EJB技术 16

1.8.2 Java servlet技术 17

1.8.3 JSF技术 18

1.8.4 JSP技术 18

1.8.5 JSP标准标记库 19

1.8.6 Java持久化API 19

1.8.7 Java事务API 19

1.8.8 RESTful Web服务JavaAPI 19

1.8.9 托管bean 20

1.8.10 JavaEE的上下文和依赖注入 20

1.8.11 Java的依赖注入 20

1.8.12 bean验证 20

1.8.13 Java消息服务API 20

1.8.14 Java EE连接器架构 21

1.8.15 JavaMail API 21

1.8.16 Java容器授权契约 21

1.8.17 Java容器认证服务提供者接口 21

1.8.18 WebSocket Java API 22

1.8.19 JSON处理Java API 22

1.8.20 Java EE的并发工具 22

1.8.21 Java平台的批处理应用 22

1.9 Java平台标准版7的Java EE 7 API 23

1.9.1 Java数据库互连API 23

1.9.2 Java命名和目录接口API 23

1.9.3 JavaBeans激活框架 24

1.9.4 XML处理Java API 24

1.9.5 Java XML绑定架构 24

1.9.6 XML Web服务Java-API 24

1.9.7 带附件SOAP Java API 25

1.9.8 Java认证和授权服务 25

1.9.9 Java平台的公共注解 25

1.10 GlassFish服务器工具 25

第2章 使用教程示例 27

2.1 必要软件 27

2.1.1 Java EE 7软件开发包 28

2.1.2 Java平台标准版 28

2.1.3 Java EE 7教程组件 28

2.1.4 NetBeans IDE 29

2.1.5 Apache Maven 30

2.2 启动和停止GlassFish服务器 30

2.2.1 使用NetBeans IDE启动GlassFish服务器 30

2.2.2 使用NetBeans IDE停止GlassFish服务器 30

2.2.3 使用命令行启动GlassFish服务器 30

2.2.4 使用命令行停止GlassFish服务器 31

2.3 启动管理控制台 31

2.3.1 使用NetBeans IDE启动管理控制台 31

2.4 启动和停止Java DB服务器 32

2.4.1 使用NetBeans IDE启动数据库服务器 32

2.5 构建示例 32

2.6 教程示例目录结构 32

2.7 教程中的Java EE 7 Maven原型 33

2.7.1 安装教程Maven原型 33

2.8 获取教程最新更新 34

2.8.1 使用NetBeans IDE更新教程 34

2.8.2 使用命令行更新教程 34

2.9 调试Java EE应用 34

2.9.1 使用服务器日志 34

2.9.2 使用调试器 35

第二部分 企业bean 38

第3章 企业bean 38

3.1 什么是企业bean 38

3.1.1 企业bean的好处 39

3.1.2 何时使用企业bean 39

3.1.3 企业bean类型 39

3.2 什么是会话bean 39

3.2.1 会话bean类型 40

3.2.2 何时使用会话bean 41

3.3 什么是消息驱动bean 41

3.3.1 消息驱动bean与会话bean的区别 41

3.3.2 何时使用消息驱动bean 42

3.4 访问企业bean 42

3.4.1 在客户端使用企业bean 43

3.4.2 确定远程或本地访问 44

3.4.3 本地客户端 45

3.4.4 远程客户端 46

3.4.5 Web服务客户端 47

3.4.6 方法参数和访问 47

3.5 企业bean的内容 48

3.6 企业bean的命名约定 48

3.7 企业bean的生命周期 48

3.7.1 有状态会话bean的生命周期 48

3.7.2 无状态会话bean的生命周期 49

3.7.3 单例会话bean的生命周期 50

3.7.4 消息驱动bean的生命周期 50

3.8 有关企业bean的更多信息 51

第4章 企业bean入门 52

4.1 创建企业bean 52

4.1.1 编写企业bean类 53

4.1.2 创建converter Web客户端 53

4.1.3 运行converter示例 54

4.2 修改Java EE应用 55

4.2.1 修改类文件 55

第5章 运行企业bean示例 56

5.1 cart示例 56

5.1.1 业务接口 57

5.1.2 会话bean类 57

5.1.3 @Remove方法 61

5.1.4 辅助类 61

5.1.5 运行cart示例 61

5.2 一个单例会话bean示例:counter 62

5.2.1 创建一个单例会话bean 63

5.2.2 countei示例的架构 67

5.2.3 运行counter示例 69

5.3 一个Web服务示例:helloservice 69

5.3.1 Web服务端点实现类 69

5.3.2 无状态会话bean实现类 70

5.3.3 运行helloservice示例 71

5.4 使用定时器服务 72

5.4.1 创建基于日历的定时器表达式 72

5.4.2 编程定时器 74

5.4.3 自动定时器 76

5.4.4 取消和保存定时器 76

5.4.5 获得定时器信息 77

5.4.6 事务和定时器 77

5.4.7 timersession示例 77

5.4.8 运行timersession示例 80

5.5 处理异常 81

第6章 使用嵌入式企业bean容器 82

6.1 嵌入式企业bean容器概述 82

6.2 开发嵌入式企业bean应用 82

6.2.1 运行嵌入式应用 83

6.2.2 创建企业bean容器 83

6.2.3 查找会话bean引用 84

6.2.4 关闭企业bean容器 85

6.3 standalone示例应用 85

6.3.1 使用NetBeans IDE运行standalone示例应用 86

6.3.2 使用Maven运行standalone示例应用 87

第7章 在会话bean中使用异步方法调用 88

7.1 异步方法调用 88

7.1.1 创建异步业务方法 88

7.1.2 从企业bean客户端调用异步方法 89

7.2 async示例应用 90

7.2.1 async-war模块的架构 91

7.2.2 运行async示例 92

第三部分 持久化 96

第8章 Java持久化API介绍 96

8.1 实体 96

8.1.1 实体类的需求 97

8.1.2 实体类中的持久化字段和属性 97

8.1.3 实体的主键 101

8.1.4 实体关系中的多重性 103

8.1.5 实体关系中的方向 103

8.1.6 实体中的可嵌入类 105

8.2 实体继承 106

8.2.1 抽象实体 106

8.2.2 映射超类 106

8.2.3 非实体超类 107

8.2.4 实体继承映射策略 107

8.3 管理实体 109

8.3.1 EntityManager接口 109

8.3.2 持久化单元 113

8.4 查询实体 114

8.5 数据库模式创建 114

8.5.1 配置应用以创建或删除数据库表 115

8.5.2 使用SQL脚本加载数据 116

8.6 有关持久化的更多信息 116

第9章 运行持久化示例 118

9.1 order应用 118

9.1.1 order应用中的实体关系 119

9.1.2 order应用中的主键 121

9.1.3 实体映射到多个数据库表 125

9.1.4 order应用中的层叠操作 125

9.1.5 order应用中的BLOB和CLOB数据库类型 126

9.1.6 order应用中的时态类型 126

9.1.7 管理order应用的实体 127

9.1.8 运行order示例 129

9.2 roster应用 129

9.2.1 roster应用中的关系 130

9.2.2 roster应用中的实体继承 131

9.2.3 roster应用中的Criteria查询 132

9.2.4 roster应用中的自动表生成 134

9.2.5 运行roster示例 135

9.3 address-book应用 136

9.3.1 address-book中的bean验证约束 136

9.3.2 在address-book中为约束指定错误消息 137

9.3.3 验证JSF应用的联系信息输入 138

9.3.4 运行address-book示例 139

第10章 Java持久化查询语言 140

10.1 查询语言术语 140

10.2 使用Java持久化查询语言创建查询 141

10.2.1 查询中的命名参数 142

10.2.2 查询中的位置参数 142

10.3 简化的查询语言语法 142

10.3.1 选择语句 142

10.3.2 更新和删除语句 143

10.4 示例查询 143

10.4.1 简单查询 143

10.4.2 导航到相关实体的查询 144

10.4.3 包含其他条件表达式的查询 146

10.4.4 批处理更新和删除 147

10.5 完整的查询语言语法 148

10.5.1 BNF符号 148

10.5.2 Java持久化查询语言的BNF文法 148

10.5.3 FROM子句 152

10.5.4 路径表达式 157

10.5.5 WHERE子句 158

10.5.6 SELECT子句 165

10.5.7 ORDERBY子句 167

10.5.8 GROUP BY和HAVING子句 167

第11章 使用Criteria API创建查询 168

11.1 Criteria和Metamodel API概述 168

11.2 使用Metamodel API为实体类建模 170

11.2.1 使用元模型类 170

11.3 使用Criteria API和Metamodel API创建基本的类型安全查询 171

11.3.1 创建Criteria查询 171

11.3.2 查询根 172

11.3.3 使用联接查询关系 172

11.3.4 Criteria查询中的路径导航 173

11.3.5 限制Criteria查询结果 173

11.3.6 管理Criteria查询结果 175

11.3.7 执行查询 176

第12章 创建和使用基于字符串的Criteria查询 178

12.1 基于字符串的Criteria API查询概述 178

12.2 创建基于字符串的查询 178

12.3 执行基于字符串的查询 179

第13章 使用锁定控制对实体数据的并发访问 180

13.1 实体锁定和并发概述 180

13.1.1 使用乐观锁定 181

13.2 锁模式 181

13.2.1 设置锁模式 182

13.2.2 使用悲观锁定 183

第14章 用实体图创建获取计划 185

14.1 实体图基础 185

14.1.1 默认实体图 186

14.1.2 在持久化操作中使用实体图 186

14.2 使用命名实体图 187

14.2.1 对实体类应用命名实体图注解 187

14.2.2 从命名实体图获得EntityGraph实例 188

14.3 在查询操作中使用实体图 189

第15章 对Java持久化API应用使用二级缓存 190

15.1 二级缓存概述 190

15.1.1 控制实体是否可以缓存 191

15.2 指定缓存模式设置来提高性能 192

15.2.1 设置缓存获取和存储模式 192

15.2.2 通过编程方式控制二级缓存 194

第四部分 消息传送 198

第16章 Java消息服务概念 198

16.1 JMS API概述 198

16.1.1 什么是消息传送 198

16.1.2 什么是JMS API 199

16.1.3 何时使用JMS API 199

16.1.4 Java EE平台如何使用JMS API 200

16.2 基本JMS API概念 201

16.2.1 JMS API架构 201

16.2.2 消息传送方式 201

16.2.3 消息使用 203

16.3 JMS API编程模型 204

16.3.1 JMS受管理对象 205

16.3.2 连接 206

16.3.3 会话 206

16.3.4 JMSContext对象 207

16.3.5 JMS消息生产者 208

16.3.6 JMS消息消费者 208

16.3.7 JMS消息 213

16.3.8 JMS队列浏览器 215

16.3.9 JMS异常处理 216

16.4 使用高级JMS特性 216

16.4.1 控制消息确认 217

16.4.2 为发送消息指定选项 218

16.4.3 创建临时目的地 220

16.4.4 使用JMS本地事务 221

16.4.5 异步发送消息 223

16.5 在Java EE应用中使用JMS API 223

16.5.1 为Java EE应用创建资源 223

16.5.2 在企业bean或Web组件中使用资源注入 225

16.5.3 使用Java EE组件生成和同步接收消息 226

16.5.4 使用消息驱动bean异步接收消息 227

16.5.5 管理JTA事务 229

16.6 关于JMS的更多信息 231

第17章 Java消息服务示例 232

17.1 JMS示例概述 233

17.2 编写简单的JMS应用 233

17.2.1 启动JMS提供者 234

17.2.2 创建JMS受管理对象 234

17.2.3 构建所有简单示例 235

17.2.4 发送消息 235

17.2.5 同步接收消息 238

17.2.6 使用消息监听器完成异步消息传送 240

17.2.7 浏览队列中的消息 242

17.2.8 在同一个目的地运行多个消费者 245

17.2.9 确认消息 245

17.3 编写更高级的JMS应用 247

17.3.1 使用持久订阅 247

17.3.2 使用本地事务 249

17.4 编写高性能和可扩展的JMS应用 254

17.4.1 使用共享非持久订阅 254

17.4.2 使用共享持久订阅 256

17.5 使用一个简单Web应用发送和接收消息 257

17.5 1 websimplemessage Facelets页面 257

17.5.2 websimplemessage托管bean 258

17.5.3 运行websimplemessage示例 259

17.6 使用消息驱动bean异步接收消息 261

17.6.1 simplemessage示例概述 261

17.6.2 simplemessage应用客户端 261

17.6.3 simplemessage消息驱动bean类 262

17.6.4 运行simplemessage示例 263

17.7 从会话bean向MDB发送消息 264

17.7.1 为clientsessionmdb示例编写应用组件 265

17.7.2 运行clientsessionmdb示例 267

17.8 使用实体联接两个MDB的消息 268

17.8.1 clientmdbentity示例应用概述 269

17.8.2 为clientmdbentity示例编写应用组件 270

17.8.3 运行clientmdbentity示例 272

17.9 使用NetBeansIDE创建JMS资源 274

17.9.1 使用NetBeans IDE创建JMS资源 274

17.9.2 使用NetBeans IDE删除JMS资源 275

第五部分 安全 278

第18章 Java EE平台安全介绍 278

18.1 Java EE安全概述 278

18.1.1 简单的应用安全演示 279

18.1.2 安全机制特性 281

18.1.3 应用安全特点 281

18.2 安全机制 282

18.2.1 Java SE安全机制 282

18.2.2 Java EE安全机制 283

18.3 保护容器安全 285

18.3.1 使用注解指定安全信息 285

18.3.2 使用部署描述文件提供声明式安全 285

18.3.3 使用编程式安全 286

18.4 保护GlassFish服务器安全 286

18.5 使用安全域、用户、组和角色 286

18.5.1 什么是安全域、用户、组和角色 287

18.5.2 在GlassFish服务器中管理用户和组 289

18.5.3 建立安全角色 290

18.5.4 角色映射到用户和组 291

18.6 使用SSL建立安全连接 292

18.6.1 验证和配置SSL支持 293

18.7 有关安全的更多信息 293

第19章 Web应用安全入门 295

19.1 Web应用安全概述 295

19.2 保护Web应用安全 296

19.2.1 指定安全约束 297

19.2.2 指定认证机制 300

19.2.3 在部署描述文件中指定认证机制 302

19.2.4 声明安全角色 303

19.3 Web应用使用编程式安全 304

19.3.1 通过编程方式认证用户 304

19.3.2 通过编程方式检查调用者身份 306

19.3.3 编程式安全的示例代码 306

19.3.4 声明和链接角色引用 308

19.4 示例:保护Web应用安全 309

19.4.1 设置系统来运行安全示例 309

19.4.2 hello2-basicauth示例:对servlet使用基本认证 310

19.4.3 hellol-formauth示例:对JSF应用使用基于表单的认证 312

第20章 企业应用安全入门 316

20.1 企业应用的基本安全任务 316

20.2 保护企业bean安全 316

20.2.1 使用声明式安全保护企业bean安全 318

20.2.2 通过编程方式保护企业bean安全 321

20.2.3 传播安全身份(Run-As) 323

20.2.4 部署安全企业bean 324

20.3 示例:保护企业bear安全 324

20.3.1 cart-secure示例:使用声明式安全保护企业bean安全 324

20.3.2 converter-secure示例:使用编程式安全保护企业bean安全 328

第21章 JavaEE安全:高级主题 331

21.1 使用数字证书 331

21.1.1 创建服务器证书 332

21.1.2 向证书安全域增加用户 334

21.1.3 为GlassFish服务器使用一个不同的服务器证书 334

21.2 认证机制 335

21.2.1 客户端认证 335

21.2.2 相互认证 335

21.3 使用JDBC安全域完成用户认证 338

21.3.1 配置JDBC认证安全域 339

21.4 保护HTTP资源安全 340

21.5 保护应用客户端安全 343

21.5.1 使用登录模块 343

21.5.2 使用编程式登录 344

21.6 保护企业信息系统应用安全 344

21.6.1 容器托管登录 344

21.6.2 组件托管登录 345

21.6.3 配置资源适配器安全 345

21.6.4 将应用主体映射到EIS主体 346

21.7 使用部署描述文件配置安全 347

21.7.1 在部署描述文件中指定基本认证安全 347

21.7.2 在部署描述文件中指定非默认主体-角色映射 348

21.8 关于高级安全主题的更多信息 348

第六部分 Java EE支持技术 352

第22章 事务 352

22.1 Java EE应用中的事务 352

22.2 什么是事务 353

22.3 容器托管事务 353

22.3.1 事务属性 354

22.3.2 回滚容器托管事务 357

22.3.3 同步会话bean的实例变量 357

22.3.4 容器托管事务中不允许的方法 358

22.4 bean托管事务 358

22.4.1 JTA事务 358

22.4.2 不提交返回 359

22.4.3 bean托管事务中不允许的方法 359

22.5 事务超时 359

22.5.1 设置事务超时 359

22.6 更新多个数据库 360

22.7 Web组件中的事务 361

22.8 关于事务的更多信息 361

第23章 资源适配器和契约 362

23.1 什么是资源适配器 362

23.1.1 管理契约 363

23.1.2 通用工作上下文契约 364

23.1.3 出站和入站契约 364

23.2 元数据注解 365

23.3 公共客户端接口 366

23.4 对Java EE上下文和依赖注入(CDI)使用资源适配器 367

23.5 关于资源适配器的更多信息 368

第24章 资源适配器示例 369

24.1 trading示例 369

24.1.1 使用出站资源适配器 370

24.1.2 实现出站资源适配器 372

24.1.3 运行trading示例 373

24.2 traffic示例 374

24.2.1 使用入站资源适配器 375

24.2.2 实现入站资源适配器 376

24.2.3 运行traffic示例 378

第25章 使用Java EE拦截器 380

25.1 拦截器概述 380

25.1.1 拦截器类 381

25.1.2 拦截器生命周期 381

25.1.3 拦截器和CDI 381

25.2 使用拦截器 381

25.2.1 拦截方法调用 382

25.2.2 拦截生命周期回调事件 384

25.2.3 拦截超时事件 385

25.2.4 为组件绑定拦截器 386

25.2.5 拦截器排序 387

25.3 interceptor示例应用 388

25.3.1 运行interceptor示例 389

第26章 批处理 390

26.1 批处理介绍 391

26.1.1 批处理作业中的步骤 391

26.1.2 并行处理 392

26.1.3 状态和判定元素 392

26.1.4 批处理框架功能 393

26.2 Java EE中的批处理 394

26.2.1 批处理框架 394

26.2.2 创建批处理应用 394

26.2.3 批处理作业的元素 395

26.2.4 属性和参数 395

26.2.5 作业实例和作业执行 395

26.2.6 批处理和退出状态 395

26.3 简单用例 396

26.3.1 块步骤 397

26.3.2 任务步骤 399

26.4 使用作业规范语言 399

26.4.1 job元素 400

26.4.2 step元素 401

26.4.3 flow元素 406

26.4.4 split元素 406

26.4.5 decision元素 406

26.5 创建批处理工件 407

26.5.1 批处理工件接口 407

26.5.2 批处理工件中的依赖注入 409

26.5.3 从批处理运行时环境使用上下文对象 410

26.6 向批处理运行时环境提交作业 411

26.6.1 开始作业 411

26.6.2 检查作业的状态 411

26.6.3 在应用中调用批处理运行时环境 412

26.7 打包批处理应用 412

26.8 webserverlog示例应用 412

26.8.1 webserverlog示例应用架构 412

26.8.2 运行webserverlog示例应用 418

26.9 phonebilling示例应用 419

26.9.1 phonebilling示例应用架构 419

26.9.2 运行phonebilling示例应用 425

26.10 关于批处理的更多信息 426

第27章 Java EE的并发工具 427

27.1 并发基础 427

27.1.1 线程和进程 428

27.2 并发工具的主要组件 428

27.3 并发和事务 429

27.4 并发和安全 430

27.5 jobs并发示例 430

27.5.1 运行jobs示例 430

27.6 taskcreator并发示例 433

27.6.1 运行taskcreator示例 435

27.7 关于并发工具的更多信息 436

第七部分 案例研究 438

第28章 Duke书店案例研究示例 438

28.1 Duke书店的设计和架构 438

28.2 Duke书店接口 439

28.2.1 BookJava持久化API实体 439

28.2.2 Duke书店中使用的企业bean 440

28.2.3 Duke书店中使用的Facelets页面和托管bean 440

28.2.4 Duke书店中使用的定制组件和其他定制对象 441

28.2.5 Duke书店中使用的属性文件 442

28.2.6 Duke书店中使用的部署描述文件 443

28.3 运行Duke书店案例研究应用 443

28.3.1 使用NetBeans IDE构建和部署Duke书店 443

28.3.2 使用Maven构建和部署Duke书店 443

28.3.3 运行Duke书店应用 444

第29章 Duke辅导案例研究示例 445

29.1 Duke辅导应用的设计和架构 445

29.2 主界面 447

29.2.1 主界面中使用的Java持久化API实体 447

29.2.2 主界面中使用的企业bean 448

29.2.3 主界面中使用的WebSocket端点 448

29.2.4 主界面中使用的Facelets文件 448

29.2.5 主界面中使用的辅助类 449

29.2.6 属性文件 449

29.2.7 Duke辅导应用中使用的部署描述文件 450

29.3 管理界面 450

29.3.1 管理界面中使用的企业bean 450

29.3.2 管理界面中使用的Facelets文件 451

29.3.3 管理界面中使用的CDI托管bean 451

29.3.4 管理界面中使用的辅助类 451

29.4 运行Duke辅导案例研究应用 452

29.4.1 运行Duke辅导应用 452

第30章 Duke综合案例研究示例 455

30.1 Duke综合应用的设计和架构 456

30.1.1 events工程 458

30.1.2 entities工程 459

30.1.3 dukes-payment工程 461

30.1.4 dukes-resources工程 461

30.1.5 Duke商店工程 461

30.1.6 Duke货运工程 465

30.2 构建和部署Duke综合案例研究应用 467

30.2.1 使用NetBeans IDE构建和部署Duke综合应用 467

30.2.2 使用Maven构建和部署Duke综合应用 467

30.3 运行Duke综合应用 467

30.3.1 注册为Duke商店顾客 468

30.3.2 购买产品 468

30.3.3 批准产品发货 468

30.3.4 创建新产品 469