盛华编著的《JavaServer Faces2.0实用详解》既告诉你怎样做(how to),又告诉你为什么要这样做(why),力求做到详而不繁。内容由浅入深,循序渐进。除了综合例题外,一般例子尽可能做到简单明了。Java Web初学者完全可按书上的介绍,逐步实践(hand on)来掌握JSF的最新技术。对Java Web有一定基础的读者,也不会感到乏味,本书介绍了JSF 2.0的所有新特点, 交代了问题的来龙去脉,站在制高点来观察JSF,这有益于Java网络编程的开发者。对JSF请求处理生命周期这样疑难内容,不是像其他书那样,一开始就全盘托出,而是采用逐步引入,最后给读者一个清晰的概念。
盛华编著的《JavaServer Faces2.0实用详解》阐述使用NetBean 7.0整合开发环境(IDE)工具和Glassfish 3.1网络服务器开发动态跨浏览器的网络应用。全书系统而完整地介绍了JSF 2.0最新技术,包括:请求处理生命周期、三种托管Bean、上下文和依赖注射(CD)、网页隐式和显式导航、组件开发(比如复合组件和自定义UI组件)、Ajax、数据转换与验证、国际化、JDBC数据库连接池和持久架构(JPA 2.0)、网络安全各种认证和安全连接(SSL)等;最后介绍了综合实例,即溧阳虚拟大学。
《JavaServer Faces2.0实用详解》适合于开发Java企业应用的软件工程师,也可作为高等学校Java EE 6的参考书,以及作为相关培训和自学的教材。
第一篇 基础篇
第1章 JavaServer Faces引论/2
1.1 JSF概述/2
1.1.1 JSF应用是什么/2
1.1.2 JSF的优势/3
1.2 JavaServer Faces发展简史/4
1.3 必备的软件/6
1.3.1 JDK1.7.0/6
1.3.2 NetBeans7.0.1/7
1.4 一个简单的JSF应用/9
1.4.1 创建网页/10
1.4.2 Backing Beans/12
1.4.3 映射Faces Servlet实例/17
1.5 用NetBeans IDE创建、布局和运行JSF应用/18
1.6 JSF 应用生命周期/19
1.6.1 编码与解码/19
1.6.2 生命周期中的六个阶段/21
本章小结/25
第2章 托管Bean和表达式语言/26
2.1 Bean的定义/26
2.2 托管Bean(Managed Bean)/27
2.2.1 举例说明托管Bean/28
2.2.2 初始化托管Bean的特性/35
2.2.3 直接将Lists和Maps声明为托管Bean/40
2.2.4 托管Bean的依赖/41
2.3 Backing Bean/42
2.4 上下文依赖注射Bean(CDI)/43
2.5 信息绑定/44
2.5.1 properties文件/44
2.5.2 国际化信息/46
2.6 Bean的作用域/49
2.6.1 Bean的各种作用域/49
2.6.2 Bean生命周期的注解/52
2.7 表达式语言语法/53
2.7.1 EL概况/53
2.7.2 及时计算和延迟计算/53
2.7.3 值表达式/54
2.7.4 方法表达式/59
2.8 程序访问托管Bean/61
2.8.1 访问托管Bean的特性/61
2.8.2 访问托管Bean的方法/62
本章小结/63
第3章 JSF标准标签库/64
3.1 JSF核心标签库/64
3.2 JSF HTML标签/65
3.2.1 HTML组件的公共属性/66
3.3 输入标签/68
3.3.1 四个输入标签/68
3.3.2 输入标签示例/69
3.4 输出标签/72
3.5 命令标签/73
3.6 选择标签/80
3.7 message标签/92
本章小结/95
第4章 Facelets与模板/96
4.1 什么是Facelets/96
4.2 Facelets标签/96
4.2.1 模板标签/97
4.2.2 非模板标签/98
4.3 开发一个简单的Facelets应用/100
4.4 一个模板Facelets应用/108
4.5 Resources/114
本章小结/114
第5章 数据表格/115
5.1 数据表格标签(h:dataTable)/115
5.1.1 创建表格/115
5.1.2 一个简单的数据表格/116
5.1.3 h:dataTable与h:column的属性/120
5.1.4 表格标题,列栏目名和列注脚/120
5.2 样式表在表格中的使用/121
5.3 编辑表格/124
5.3.1 编辑单元格里的内容/124
5.3.2 删除表格里的行/130
5.4 数据库表格/133
5.4.1 NetBeans IDE创建数据库/133
5.4.2 将数据库mydb连接到连接池/135
5.4.3 数据库表格/136
5.5 数据表格模式/139
5.5.1 显示数据表格行数/139
5.5.2 寻找所选的行/143
5.5.3 对数据进行分类检索/146
本章小结/151
第6章 导航模式/152
6.1 JSF导航系统概述/152
6.1.1 对MVC模型的回顾/152
6.1.2 导航处理器(NavigationHandler)/153
6.1.3 Faces动作方法/154
6.2 隐式导航/154
6.3 显式导航规则/158
6.4 重定向/159
6.4.1 问题的起因/159
6.4.2 重定向的使用/160
6.4.3 重定向与隐式导航/160
6.5 PRG模型与JSF/164
6.5.1 使用flash的PRG/164
6.5.2 使用视图参数的PRG/170
6.5.3 显式导航规则中配置视图参数/174
6.5.4 可书签化和视图参数/174
6.6 通配符导航和条件导航/175
6.6.1 通配符导航/175
6.6.2 条件导航/176
本章小结/179
第7章 用户接口组件模型/180
7.1 什么是用户接口组件/180
7.2 JSF UI组件引论/182
7.3 UI组件树(View)/184
7.4 UI组件和其他辅助组件/189
7.5 UI组件与Facelets/190
本章小结/193
第8章 转换与验证数据/194
8.1 数据转换和数据验证概述/194
8.2 标准数据转换器/196
8.3 转换器与UIComponent实例的联系/202
8.4 自定义转换器/205
8.4.1 如何自定义转换器/205
8.4.2 声明和配置自定义转换器/208
8.4.3 结果/209
8.5 标准数据验证器/210
8.6 验证器与UIComponent实例的联系/213
8.6.1 用标签来联系验证器与UI组件实例/213
8.6.2 使用程序联系验证器与组件实例/214
8.7 自定义验证器/216
8.7.1 实现Validator接口/216
8.7.2 在托管Bean中实现validation()方法/219
8.8 JSF中使用Bean验证/220
8.8.1 JSF验证与Bean验证的差别/220
8.8.2 在JSF框架内使用Bean验证的细节/222
8.8.3 信息与Bean验证/225
8.9 视图中的信息/227
8.9.1 FacesContext与FacesMessage/227
8.9.2 怎样渲染FacesMessage/228
本章小结/231
第9章 事件模型/233
9.1 事件模型概况/233
9.1.1 事件分类/234
9.1.2 事件监听器接口和事件类/235
9.2 JSF事件与请求处理生命周期/236
9.2.1 跟踪生命周期各个阶段/236
9.2.2 何时处理事件/238
9.3 动作事件/239
9.4 值变事件/244
9.5 阶段事件/247
9.6 系统事件/251
9.6.1 系统事件监听器方法/251
9.6.2 系统事件监听器类/257
9.6.3 发布与预订/262
本章小结/263
第10章 复合组件/264
10.1 复合标签库/264
10.2 logPanel例子/266
10.2.1 定义网页/268
10.2.2 使用网页/268
10.2.3 资源库/270
10.2.4 复合组件实例/270
10.2.5 #{cc}隐式对象/271
10.3 属性类型和配置复合组件/271
10.3.1 属性类型/271
10.3.2 配置复合组件/272
10.4 操作服务端数据/274
10.5 复合组件上添加验证器和监听器/277
10.5.1 复合组件上添加验证器/277
10.5.2 复合组件绑定动作监听器/279
10.6 复合组件标签内插入其他标签/281
10.6.1 资源绑定/281
10.6.2 facets/282
10.6.3 插入子标签/282
10.7 复合组件加上JavaScript/283
本章小结/284
第二篇 高级篇
第11章 JSF与Ajax/286
11.1 Ajax引论/286
11.2 一个简单的Ajax例子/287
11.2.1 ajax-login例子/287
11.2.2 实现Ajax的步骤/290
11.2.3 Firebug跟踪Ajax/290
11.3 <f:ajax>与它的属性/293
11.3.1 <f:ajax>包装组件/293
11.3.2 <f:ajax>的属性/293
11.4 Ajax监听事件/294
11.5 监测Ajax请求进度/297
11.6 处理Ajax出错/300
11.7 JSF 2.0中的JavaScript库/301
11.7.1 标准JavaScript资源/301
11.7.2 使用JavaScript实现Ajax/302
11.8 复合组件中使用Ajax/305
本章小结/312
第12章 自定义UI组件/313
12.1 UI组件的构件/313
12.1.1 什么是UI组件/313
12.1.2 UI组件的构件/314
12.2 创建自定义UI组件/315
12.2.1 自定义组件实例(MyHello)/315
12.2.2 接受表单输入的自定义UI组件/319
12.2.3 分离的渲染器/322
12.3 处理自定义组件标签属性/326
12.3.1 自定义标签处理器/326
12.3.2 使用映射处理标签属性/327
12.3.3 使用标签处理器处理标签属性/328
12.4 自定义组件使用 JavaScript/330
12.5 使用子组件和Facet/334
12.6 自定义组件的状态管理/345
本章小结/349
第13章 JSF与JDBC/350
13.1 JDBC概述/350
13.2 Derby数据库引擎/354
13.3 MySQL数据库引擎/358
13.3.1 安装和测试MySQL/359
13.3.2 NetBeans中连接MySQL/360
13.4 使用预先准备好的查询语句/363
13.5 建立和使用存储过程和函数/366
13.6 商务合同/369
13.7 数据库连接池/372
13.7.1 为什么要创建数据库连接池/372
13.7.2 配置数据资源/373
13.7.3 登录-注册-登录实例/376
13.8 Java持久架构/387
13.8.1 Java持久架构引论/387
13.8.2 怎样使用JPA/388
13.8.3 登录-注册-登录实例/389
13.8.4 JPA使用无状态会话Bean/394
13.8.5 JPA使用有状态会话Bean/397
本章小结/403
第14章 JSF中的网络安全/405
14.1 网络安全引论/405
14.1.1 安全概述/405
14.1.2 几个重要的术语/406
14.1.3 Tomcat怎样实现安全领域/407
14.2 表单认证/410
14.2.1 表单认证的七个步骤/411
14.2.2 表单认证实例/415
14.3 基本认证/422
14.3.1 基本认证概述/422
14.3.2 基本认证实例/423
14.4 证书认证/430
14.4.1 不对称加密/430
14.4.2 证书的作用/430
14.4.3 证书认证/431
14.5 安全连接/432
14.5.1 SSL引论/432
14.5.2 Glassfish服务器配置SSL/434
14.5.3 为Tomcat服务器配置SSL/435
14.6 应用管理安全/436
14.6.1 应用管理安全概述/436
14.6.2 检查请求者身份/438
14.6.3 全部用编程处理安全/441
本章小结/445
第15章 综合实例——溧阳虚拟大学/446
15.1 溧阳虚拟大学概况/446
15.1.1 模板/446
15.1.2 登录-注册-登录/449
15.1.3 免费视听/449
15.2 师生论坛/451
15.3 师生互动/457
15.3.1 学生更新“学生笔记”/458
15.3.2 导师发布告/462
15.4 购物车应用/467
15.4.1 JPA和实体类/468
15.4.2 后台托管Bean/470
15.4.3 购物车应用的用户接口/475
15.4.4 购物车应用结构/480
15.5 发送确认电子邮件/494
15.5.1 JavaMail引论/494
15.5.2 发送电子邮件步骤/495
15.5.3 发送确认电子邮件/496
本章小结/498
附录 缩写字索引/499
参考文献/502