第1章 Java EE开发基础 1
1.1 Java EE 6简介 2
1.1.1 学习Java EE的意义 2
1.1.2 Java EE 6版本介绍 2
1.2 Java EE 6的开发环境 4
1.2.1 Java EE 6开发环境的安装和配置 4
1.2.2 Eclipse集成GlassFish 12
1.2.3 Eclipse集成数据库 13
1.2.4 EJB容器数据源的配置 17
1.3 Java EE安全 21
1.3.1 Java EE基本安全概念 21
1.3.2 使用GlassFish文件域 24
1.3.3 基于表单的认证 30
1.3.4 使用GlassFish证书域 33
第2章 Java持久化API 39
2.1 JPA介绍 40
2.1.1 持久化概念 40
2.1.2 JPA 2.0概述 41
2.2 JPA环境设置 43
2.2.1 简单JPA程序的完整开发过程 43
2.2.2 使用JUnit测试JPA 51
2.2.3 persistence.xml文件配置 55
2.3 JPA实体映射基础 57
2.3.1 JPA管理实体基本概念 57
2.3.2 实体与数据库表的映射关系 59
2.3.3 采用XML文件管理对象关系映射 63
2.3.4 定义复合主关键字 66
2.3.5 定制属性的映射关系 70
2.3.6 JPA的两种访问类型 75
2.4 JPA实体关联映射 76
2.4.1 实体关联基本概念 77
2.4.2 一对一单向关联 78
2.4.3 一对一双向关联 82
2.4.4 一对多单向关联 84
2.4.5 多对一单向关联 88
2.4.6 多对一双向关联 90
2.4.7 多对多双向关联 93
2.4.8 有额外字段的多对多映射关联表 96
2.5 关联关系再讨论 101
2.5.1 为关联关系选择集合类 101
2.5.2 对关联实体进行排序 101
2.5.3 延迟加载vs即时加载 104
2.6 继承关系 106
2.6.1 概述 106
2.6.2 继承关系映射示例 106
2.7 JPQL 112
2.7.1 JPQL语句基础 112
2.7.2 JPQL查询 116
2.7.3 命名查询 120
2.7.4 原生查询 122
2.7.5 Criteria ApI 124
2.8 JPA高级话题 128
2.8.1 处理并发 128
2.8.2 实体的生命周期 132
2.8.3 JPA回调方法 142
第3章 EJB 3.1 145
3.1 EJB 3.1 介绍 146
3.1.1 EJB 3.1 简介 146
3.1.2 简单EJB的完整开发过程 149
3.2 依赖注入和JNDI 156
3.2.1 基本概念 156
3.2.2 JNDI示例 159
3.3 EJB调试技术 162
3.3.1 嵌入式技术调试EJB 162
3.3.2 Web服务测试EJB 163
3.3.3 GlassFish应用程序客户端 166
3.4 会话Bean 169
3.4.1 无状态EJB 169
3.4.2 有状态EJB 172
3.4.3 单体EJB 176
3.4.4 单体EJB初始化与并发 179
3.4.5 EJB部署描述文件 182
3.5 EJB进阶 185
3.5.1 异步调用EJB 185
3.5.2 定时服务 188
3.5.3 会话Bean的生命周期 193
3.5.4 EJB拦截器 198
3.6 EJB事务 204
3.6.1 EJB事务处理 204
3.6.2 EJB支持的事务 204
3.6.3 容器管理的事务 206
3.6.4 Bean管理的事务 212
3.7 EJB安全 214
3.7.1 EJB安全概念 214
3.7.2 EJB声明式安全策略 216
3.7.3 EJB编程式安全策略 220
第4章 JSF 2.0 223
4.1 JSF 2.0介绍 224
4.2 JSF的运行环境 226
4.2.1 JSF运行环境的配置 226
4.2.2 第一个简单的JSF程序 228
4.2.3 JSF与可视化网页开发 234
4.2.4 配置web.xml文件 234
4.3 JSF标准组件 235
4.3.1 JSF标准组件示例 236
4.3.2 JSF 2.0标签库 238
4.3.3 JSF常用标准组件介绍 240
4.4 托管Bean 252
4.4.1 JSF托管Bean 252
4.4.2 托管Bean的范围 254
4.5 JSF导航 257
4.5.1 页面导航 257
4.5.2 动作和动作监听器 260
4.5.3 参数传递 263
4.6 JSF转换器 268
4.6.1 简单的转换器 269
4.6.2 数值转换器格式化输出 271
4.6.3 日期时间转换器 273
4.6.4 用户定制的转换器 276
4.7 JSF验证器 280
4.7.1 标准的数据验证器 280
4.7.2 定制验证器的错误信息 282
4.7.3 用户定制的数据验证器 286
4.8 JSF表格 288
4.8.1 h:dataTable标签 288
4.8.2 ui:repeat标签 292
4.8.3 在表格中显示多种组件 294
4.8.4 编辑表格数据 296
4.8.5 添加删除表格数据 299
4.8.6 表格数据排序 303
4.8.7 表格分页显示 308
4.9 Ajax 314
4.9.1 使用简单的Ajax 315
4.9.2 组件的动态联动 318
4.9.3 构建人性化Web应用 321
4.1 0 Facelets 325
4.1 0.1 Facelets标签 325
4.1 0.2 使用Facelets模板 326
4.1 1 JSF进阶 328
4.1 1.1 JSF复合组件 328
4.1 1.2 JavaScript复合组件 332
4.1 1.3 JSF的生命周期 334
4.1 1.4 定制JSF安全 339
4.1 1.5 显示动态图像 345
4.1 1.6 文件上传 348
4.1 1.7 PrimeFaces多文件上传 355
4.1 1.8 在JSF中使用EJB 358
4.1 2国际化 361
4.1 2.1 国际化JSF项目 361
4.1 2.2 页面语言功能选项 365
第5章 综合示例 369
5.1 系统功能概述 370
5.2 数据库设计 370
5.3 企业Java Bean层 378
5.4 用户认证与授权 384
5.5 JSF模板 386
5.5.1 基本模板 386
5.5.2 管理员模板 387
5.5.3 教师、学生模板 391
5.6 公用功能 394
5.6.1 登出 395
5.6.2 修改密码 396
5.6.3 排序和分页处理 399
5.7 管理员使用的功能 402
5.7.1 添加新用户等 402
5.7.2 用户管理 404
5.7.3 班级管理 410
5.7.4 课程管理 411
5.8 教师使用的功能 412
5.8.1 录入成绩 412
5.8.2 查询成绩 417
5.9 学生使用的功能 418
附录A 源代码使用说明 425
附录B 章节与Java EE项目名称对照表 426
参考文献 429