图书介绍

JSF第一步 JSF+Spring+Hibernate+AJAX编程实践PDF|Epub|txt|kindle电子书版本网盘下载

JSF第一步 JSF+Spring+Hibernate+AJAX编程实践
  • 罗会波著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302159734
  • 出版时间:2007
  • 标注页数:552页
  • 文件大小:63MB
  • 文件页数:575页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

JSF第一步 JSF+Spring+Hibernate+AJAX编程实践PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 为什么要学习框架及学习什么样的框架1

1.1 Java的发展与变化1

1.1.1 版本与称谓的变化1

1.1.2 应用程序开发方式的变迁1

1.2 两种形式的多层结构的J2EE应用程序2

1.2.1 胖客户端J2EE应用程序2

1.2.2 Web应用程序3

1.3 Web应用的两种实现方式4

1.3.1 传统的重量级实现方式5

1.3.1.1 运行环境5

1.3.1.2 EJB5

1.3.1.3 其他特点6

1.3.1.4 适应的场合6

1.3.2 方兴未艾的轻量级实现方式6

1.3.2.1 运行环境7

1.3.2.2 POJO7

1.3.2.3 其他特点7

1.3.2.4 适应场合7

1.4 风云际会的框架世界7

1.4.1 框架的出现与流行8

1.4.2 大器晚成展新颜——JSF8

1.4.3 层林深处好冬眠——Hibernate9

1.4.4 七音合奏春光曲——Spring9

1.5 为什么是JSF而不是Struts9

1.5.1 比Struts更高的抽象9

1.5.2 早先暴露的缺陷不断被弥补11

1.5.2.1 解决了与JSP集成中的一些突出问题11

1.5.2.2 统一表达式语言与JSTL迭代标签的支持11

1.5.2.3 其他新的特征12

1.5.3 客户端技术的完美结合12

1.5.3.1 可以借助JavaScript改善用户体验12

1.5.3.2 可与AJAX无缝集成12

第2章 JSF与Web应用程序13

2.1 JSF的设计目标及与Web应用的关系13

2.2 Web应用程序概览13

2.2.1 基本的Web组件13

2.2.2 Web部署描述器文件13

2.2.3 Web应用程序的物理结构14

2.3 Web应用程序的开发环境配置14

2.3.1 Java 2 SDK的下载与安装14

2.3.2 Web容器的下载与安装15

2.3.3 环境变量的设置16

2.3.4 其他准备工作16

2.4 Servlet18

2.4.1 Servlet的基本概念18

2.4.2 Servlet的体系结构18

2.4.3 你的第一个Servlet应用程序——Hello World19

2.4.3.1 建立示例应用目录结构19

2.4.3.2 编写Servlet类文件19

2.4.3.3 编译Servlet类文件20

2.4.3.4 编写部署描述器文件web.xml20

2.4.3.5 部署与运行示例应用21

2.4.3.6 原理分析22

2.4.4 Servlet的生命周期22

2.4.4.1 初始化23

2.4.4.2 处理请求23

2.4.4.3 销毁24

2.4.5 Servlet的作用域对象24

2.4.6 过滤请求与响应24

2.5 JSP24

2.5.1 JSP如何表示静态内容25

2.5.2 JSP如何表示动态内容25

2.5.3 JSP的注释25

2.5.3.1 HTML注释26

2.5.3.2 JSP注释26

2.5.4 JSP示例26

2.5.4.1 建立应用程序目录26

2.5.4.2 编写JSP示例代码26

2.5.4.3 部署和运行JSP26

2.5.5 JSP与Servlet的关系27

2.5.5.1 JSP转换为Servlet后执行27

2.5.5.2 JSP转化后的Servlet的简要分析27

2.5.5.3 JSP为Servlet提供了模板机制29

2.5.6 JSP的元素29

2.5.6.1 指令29

2.5.6.2 动作30

2.5.6.3 脚本元素30

2.5.7 JSP的标签库32

2.5.7.1 标签库的组成32

2.5.7.2 自定义标签库33

2.5.7.3 JSP标准标签库35

2.5.8 JSP的内建对象35

2.5.8.1 out36

2.5.8.2 request37

2.5.8.3 session39

2.5.8.4 application41

2.5.8.5 config41

2.5.8.6 pageContext41

2.5.8.7 page41

2.5.8.8 response41

2.5.8.9 exception41

2.5.9 JSP中的异常处理42

2.5.10 Web组件间的关联关系42

2.5.10.1 包含42

2.5.10.2 请求转发43

2.5.10.3 重定向45

2.5.11 JavaBean45

2.5.11.1 JavaBean的概念45

2.5.11.2 为什么要引入JavaBean46

2.5.11.3 JavaBean的编码约定46

2.5.11.4 一个简单的JavaBean48

2.5.11.5 在JSP中使用JavaBean50

2.5.12 JavaBean在JSP中的有效范围50

2.5.12.1 演示Page范围的Bean50

2.5.12.2 演示Request范围的Bean52

2.5.12.3 演示Session范围的Bean53

2.5.12.4 演示Application范围的Bean54

2.6 早期框架Struts55

2.6.1 应用程序的分层55

2.6.2 表单的处理与验证55

2.6.3 类型转换56

2.6.4 导航56

2.6.5 资源管理56

2.6.6 国际化编程56

2.6.7 异常处理的加强56

2.6.8 模板的重用管理与布局57

2.7 JSF57

2.7.1 具有早期框架的一些特性57

2.7.2 有状态的用户界面组件模型57

2.7.3 用户界面事件的服务器端的处理58

2.7.4 自动生成各种标志语言58

2.7.5 与业务对象的声明式集成58

第3章 JSF应用程序开发入门59

3.1 JSF开发环境的配置59

3.1.1 JSF参考实现的下载与安装59

3.1.2 ANT的下载与安装60

3.1.3 环境变量的设置60

3.2 开发您的第一个JSF应用程序60

3.2.1 Hello World应用程序的需求分析61

3.2.2 应用程序的目录结构61

3.2.3 应用程序的页面文件61

3.2.3.1 index.jsp61

3.2.3.2 hello.jsp62

3.2.3.3 howDoYouDo.jsp65

3.2.3.4 howAreYou.jsp66

3.2.4 应用程序的Backing Bean66

3.2.4.1 Backing Bean及其作用66

3.2.4.2 示例中的Backing Bean类文件67

3.2.4.3 Backing Bean的特点69

3.2.5 JSF的配置文件faces-config.xml69

3.2.5.1 示例应用的导航规则70

3.5.5.2 示例应用的托管JavaBean配置71

3.2.6 应用程序的配置文件web.xml71

3.2.7 手工编译应用程序72

3.2.8 应用程序上下文73

3.2.9 建立应用程序上下文及部署应用程序73

3.2.9.1 直接修改Tomcat的配置文件server.xml73

3.2.9.2 使用Tomcat页面形式的管理工具73

3.2.10 运行应用程序74

3.3 用ANT工具构建应用程序75

3.3.1 ANT工具简介75

3.3.2 创建build.xml文件76

3.3.2.1 设置属性76

3.3.2.2 设置classpath77

3.3.2.3 定义clean目标77

3.3.2.4 定义prepare目标77

3.3.2.5 定义deploy.copyJars目标77

3.2.2.6 定义build目标78

3.3.2.7 定义build.war目标79

3.3.2.8 定义deploy目标79

3.3.3 用ANT工具自动构建和部署应用程序79

第4章 JSF中的请求处理80

4.1 JSF处理请求的基本过程80

4.1.1 将请求映射到FacesServlet80

4.1.2 FacesServlet类80

4.1.3 获得配置Servlet的配置信息81

4.1.4 初始化时获得Faces上下文工厂和生命周期实例81

4.1.5 FacesServlet对请求的处理过程81

4.1.5.1 获得Faces上下文并用它处理当前请求82

4.1.5.2 调用请求处理生命周期的execute()方法82

4.1.5.3 调用请求处理生命周期的render()方法82

4.1.5.4 释放Faces上下文对象83

4.1.5.5 与普通Servlet对请求处理的比较83

4.1.6 处理完成后的资源释放83

4.2 Faces上下文83

4.2.1 Faces上下文简介83

4.2.2 Faces上下文的主要方法84

4.2.2.1 获取应用程序实例84

4.2.2.2 获取外部上下文84

4.2.2.3 获取与设置视图根85

4.2.2.4 处理消息队列85

4.2.2.5 获取呈现器工具包86

4.2.2.6 流程控制方法86

4.2.2.7 获取表达式语言上下文87

4.2.2.8 响应88

4.2.2.9 获取Faces上下文的当前实例88

4.3 请求处理的生命周期88

4.3.1 获得生命周期对象88

4.3.2 生命周期的场景89

4.3.2.1 非Faces请求生成Faces响应89

4.3.2.2 Faces请求生成非Faces响应90

4.3.2.3 Faces请求生成Faces响应90

4.3.3 标准的JSF请求处理生命周期90

4.3.3.1 重建视图92

4.3.3.2 应用请求值93

4.3.3.3 处理验证94

4.3.3.4 更新模型值95

4.3.3.5 调用应用程序95

4.3.3.6 呈现响应95

4.4 Application及相关的类96

4.4.1 Application简介96

4.4.2 Application的主要属性97

4.4.2.1 动作监听器97

4.4.2.2 导航处理器98

4.4.2.3 视图处理器98

4.4.2.4 缺省呈现包标识98

4.4.2.5 状态管理器98

4.4.2.6 表达式语言解析器98

4.4.3 Application动作98

4.4.4 Application作为组件工厂99

4.4.5 Application支持国际化编程的方法99

第5章 JSF的体系结构101

5.1 MVC架构模式101

5.1.1 耦合与解耦101

5.1.2 MVC架构模式102

5.1.3 Web应用中的MVC Model2104

5.2 MVC架构模式的实现策略105

5.2.1 Struts的实现策略105

5.2.2 JSF的实现策略105

5.2.2.1 JSF的控制器部分106

5.2.2.2 JSF的视图部分107

5.2.2.3 JSF的模型部分107

5.3 JSF的主要组成部分108

5.3.1 JSF主要组成部分及其关系108

5.3.1.1 组成部分概览108

5.3.1.2 各部分之间的关系109

5.3.2 用户界面组件109

5.3.2.1 对组件的直观认识109

5.3.2.2 JSF的组件模型109

5.3.2.3 组件模型中的接口110

5.3.2.4 组件模型中的类111

5.3.2.5 组件的作用112

5.3.2.6 组件的属性112

5.3.2.7 组件在服务器和客户端的表现形式113

5.3.2.8 组件的标识114

5.3.2.9 通过标识引用组件115

5.3.2.10 组件是有状态的116

5.3.2.11 标准组件与自定义组件116

5.3.3 呈现器116

5.3.4 Backing Bean117

5.3.5 事件与事件监听器118

5.3.6 导航系统119

5.3.7 类型转换器120

5.3.8 验证器120

5.3.9 消息120

第6章 标准用户界面组件122

6.1 标准组件概述122

6.1.1 组件的类型122

6.1.2 组件的家族122

6.1.3 组件的呈现器类型123

6.2 JSF的呈现模型123

6.2.1 直接实现方式123

6.2.2 委托实现方式123

6.2.3 呈现包工厂124

6.2.4 呈现包124

6.2.5 呈现器125

6.3 JSF实现的缺省呈现器类型与标准组件HTML具体类的关系126

6.4 组件在JSP页面上的表示127

6.4.1 在JSP页面中使用用户界面组件的定制动作128

6.4.2 核心标签库128

6.4.3 HTML标签库128

6.4.4 组件的HTML属性130

6.5 标准组件数据模型130

6.5.1 标准组件与呈现无关的属性130

6.5.2 标准组件模型Bean131

6.5.2.1 SelectItem131

6.5.2.2 SelectItemGroup131

6.5.2.3 DataModel131

6.6 标准组件及使用方法132

6.6.1 用UIViewRoot控制页面132

6.6.1.1 UIViewRoot简介132

6.6.1.2 <f:view>在JSP页面上的应用133

6.6.1.3 <f:subview>的使用134

6.6.2 用UIForm处理表单136

6.6.3 用UIParameter传递参数137

6.6.4 用Facet制作表头、表脚及列头137

6.6.5 用UIInput处理输入138

6.6.5.1 用HtmlInputText输入单行文本139

6.6.5.2 用HtmlInputSecret输入密码139

6.6.5.3 用HtmlInputTextarea输入多行文本139

6.6.5.4 用HtmlInputHidden作为隐含字段140

6.6.6 用UIOutput处理输出140

6.6.6.1 用HtmlOutputText输出简单文本140

6.6.6.2 用HtmlOutputFormat输出格式化文本141

6.6.6.3 用HtmlOutputLabel作为组件的标注142

6.6.6.4 用HtmlOutputLink作为超链接142

6.6.7 用UISelectItem提供单个选项142

6.6.8 用UISelectItems提供多个选项143

6.6.9 用UISelectBoolean表示逻辑选项143

6.6.10 用UISelectOne作为单选组件144

6.6.10.1 单选列表框HtmlSelectOneListbox144

6.6.10.2 单选下拉菜单HtmlSelectOneMenu144

6.6.10.3 单选钮HtmlSelect-OneRadio144

6.6.11 用UISelectMany作为复选组件145

6.6.11.1 复选列表框HtmlSelectManyListbox145

6.6.11.2 复选下拉菜单HtmlSelectManyMenu145

6.6.11.3 复选钮HtmlSelectManyCheckbox145

6.6.12 用UICommand调用应用程序146

6.6.12.1 命令按钮HtmlCommandButton146

6.6.12.2 命令超链接HtmlCommandLink146

6.6.13 用UIMessage显示特定组件的消息147

6.6.14 用UIMessages显示多条消息147

6.6.15 用UIGraphic显示图片148

6.6.16 用UIPanel分组与布局组件148

6.6.16.1 用HtmlPanelGroup分组组件148

6.6.16.2 用HtmlPanelGrid布局组件148

6.6.17 用UIColumn表示数据列149

6.6.18 用UIData显示数据集中的数据149

6.6.19 到哪里获得组件更详细的信息150

第7章 表达式语言与托管Bean151

7.1 表达式语言的出现151

7.1.1 统一表达式语言出现的背景151

7.1.1.1 JSP的表达式语言151

7.1.1.2 JSF自己的表达式语言152

7.1.1.3 JSP与JSF表达式语言的冲突153

7.1.2 统一表达式语言153

7.1.2.1 值表达式153

7.1.2.2 方法表达式154

7.1.2.3 解决原来的JSP与JSF表达式的冲突问题154

7.2 托管Bean155

7.2.1 托管Bean创建工具与托管Bean155

7.2.2 托管Bean的配置155

7.2.2.1 基本的配置元素156

7.2.2.2 配置托管Bean的属性156

7.2.2.3 托管Bean属性的初始化与JSF的IoC157

7.2.3 List配置为托管Bean158

7.2.4 Map配置为托管Bean158

7.3 托管Bean的有效范围159

7.3.1 请求范围159

7.3.2 会话范围160

7.3.3 应用程序范围160

7.3.4 NONE范围160

7.3.5 不同范围间的托管Bean的引用161

第8章 JSF中的导航163

8.1 JSF导航概述163

8.1.1 应用程序动作与导航163

8.1.2 导航处理器的行为是可以配置的163

8.2 JSF支持的导航形式164

8.2.1 动态导航164

8.2.1.1 何为动态导航164

8.2.1.2 简单动态导航示例回顾164

8.2.2 静态导航165

8.2.2.1 何为静态导航165

8.2.2.2 静态导航示例165

8.3 导航规则167

8.3.1 导航规则需要配置的元素167

8.3.2 导航规则的匹配算法167

8.3.3 复杂导航规则的配置示例168

8.4 动作事件监听器方法对导航的影响169

8.4.1 动作事件监听器方法间接影响导航169

8.4.2 动作事件监听器方法对导航影响的示例169

8.4.2.1 导航出发页面169

8.4.2.2 包含动作事件监听器方法和动作方法的Backing Bean170

8.4.2.3 导航目的地页面171

8.4.2.4 配置导航规则172

8.4.2.5 部署和运行示例应用程序172

第9章 JSF与应用程序模型层的集成174

9.1 JSF作为表现层框架174

9.1.1 JSF结构回顾174

9.1.2 Backing Bean扮演的角色174

9.1.3 编写Backing Bean代码时的不良实践174

9.2 登录示例应用程序175

9.2.1 示例登录应用的需求分析175

9.2.2 登录示例应用的界面175

9.2.3 目录结构176

9.2.4 业务服务接口176

9.2.5 业务服务实现176

9.2.6 示例应用的Backing Bean178

9.2.7 示例中的页面文件179

9.2.8 在Faces配置文件中配置导航规则180

9.2.9 在Faces配置文件中配置托管Bean180

9.2.10 部署和运行示例应用181

9.3 JSF中的控制反转(IoC)182

9.3.1 登录示例应用的不足182

9.3.2 控制反转(IoC)及依赖注入(DI)182

9.3.2.1 控制反转及依赖注入简介182

9.3.2.2 依赖注入的形式183

9.4 在JSF应用程序中使用依赖注入185

9.4.1 在Backing Bean使用type2型依赖注入185

9.4.2 在Faces配置文件中配置依赖关系186

9.4.3 部署和运行示例应用187

第10章 JSF的事件处理188

10.1 JSF事件及事件监听器模型188

10.1.1 事件类188

10.1.2 监听器类189

10.1.3 事件广播及处理189

10.2 JSF中的事件分类190

10.2.1 值改变事件190

10.2.2 动作事件190

10.2.3 阶段事件190

10.3 事件处理示例190

10.3.1 值改变事件的处理示例190

10.3.1.1 示例应用的页面文件191

10.3.1.2 在Backing Bean中编写处理值改变事件方法192

10.3.1.3 在Faces配置文件中配置Backing Bean192

10.3.1.4 部署和运行192

10.3.1.5 用专门的监听器来处理值改变事件193

10.3.2 动作事件的处理示例194

10.3.2.1 在页面中使用命令超链接194

10.3.2.2 在Backing Bean中编写事件处理方法195

10.3.2.3 部署和运行示例应用196

10.3.3 Immediate组件使用示例197

10.3.3.1 在页面上使用Immediate组件197

10.3.3.2 在Backing Bean中编写事件监听器方法199

10.3.3.3 观察示例应用的运行效果199

第11章 JSF中的转换201

11.1 JSF的转换模型201

11.1.1 什么是JSF中的转换201

11.1.2 JSF中为什么需要转换201

11.1.3 JSF中何时发生转换202

11.1.4 JSF的转换器接口202

11.2 使用JSF的标准转换器203

11.2.1 JSF的标准转换器203

11.2.2 使用标准转换器的一般方式203

11.3 自动转换方式示例204

11.3.1 在注册页面增加一个表示年龄的文本输入框204

11.3.2 在注册成功的页面上显示年龄204

11.3.3 Backing Bean年龄属性的数据类型为int204

11.3.4 示例应用的业务数据对象205

11.3.5 示例应用中的自定义异常206

11.3.6 示例应用的业务服务206

11.3.7 示例应用的Faces配置206

11.3.8 自动转换的效果207

11.3.8.1 自动转换失败的效果207

11.3.8.2 自动转换成功的效果207

11.4 使用组件标签的属性208

11.5 使用转换器标签208

11.6 Java中的日期与时间209

11.6.1 Java中的Date类209

11.6.2 Calendar类210

11.6.3 GregorianCalendar类210

11.6.4 日期、时间的格式化211

11.6.5 访问数据库时使用的日期类211

11.7 日期时间转换器示例212

11.7.1 建立示例应用的目录结构212

11.7.2 新建一个可以输入日期的页面213

11.7.3 在页面上使用显示日期的组件213

11.7.4 Backing Bean中的日期型属性213

11.7.5 业务对象中的日期属性214

11.7.6 业务服务接口中的日期型参数215

11.7.7 在业务服务实现中处理日期型数据215

11.7.8 更改示例应用的Faces配置216

11.7.9 日期转换的效果217

11.8 数字转换器218

11.9 使用自定义转换器218

11.9.1 创建自定义转换器218

11.9.2 注册自定义转换器220

11.10 自定义的转换器示例220

11.10.1 建立示例应用的目录结构220

11.10.2 示例应用的BackingBean220

11.10.3 新建自定义格式的业务对象222

11.10.4 修改原业务对象223

11.10.5 在业务服务接口的方法中加入新参数223

11.10.6 更改业务服务实现类224

11.10.7 在Faces中配置自定义转换器225

11.10.8 在用户注册页面上使用自定义转换器225

11.10.9 在注册成功页面上使用自定义转换器226

11.10.10 检验自定义转换器的使用效果226

第12章 JSF中的验证227

12.1 JSF的验证模型227

12.1.1 验证器类227

12.1.2 验证器的注册227

12.1.3 验证处理过程228

12.1.4 标准验证器实现228

12.2 使用标准验证器示例229

12.2.1 建立示例应用目录结构229

12.2.2 在页面中使用标准验证器229

12.2.3 部署和运行应用程序230

12.3 正则表达式简介231

12.4 使用自定义验证器示例233

12.4.1 建立示例应用目录233

12.4.2 创建自定义验证器类234

12.4.3 在Faces配置文件中注册验证器235

12.4.4 在页面中使用自定义验证器235

12.4.5 自定义验证器的使用效果235

12.5 使用Backing Bean的验证方法237

12.5.1 建立示例应用目录结构237

12.5.2 在Backing Bean中编写验证方法237

12.5.3 在Faces配置中删除自定义验证器238

12.5.4 在页面中引用验证方法238

12.5.5 运行应用程序查看验证效果239

第13章 JSF的国际化编程240

13.1 问题的由来240

13.2 字符集的基础知识240

13.2.1 计算机表示字符的方式与字符集240

13.2.2 字符集的发展241

13.2.3 UTF-8字符集242

13.3 Java及Web中的编码243

13.3.1 Java中的编码243

13.3.2 Web中的编码243

13.4 中文乱码的几种表现形式及成因浅析244

13.4.1 字符变问号244

13.4.2 部分汉字是乱码247

13.4.3 显示乱码(有些是汉字但并不是你预期的)248

13.4.4 读写数据库时出现乱码250

13.5 JSF国际化编程的思路250

13.6 JSF国际化编程的实现251

13.6.1 支持国际化编程的应用的基本特征251

13.6.2 Java平台的本地化类251

13.6.3 资源束252

13.6.4 日期与数字的格式化253

13.7 登录示例程序的国际化与本地化254

13.7.1 收集区域敏感数据255

13.7.2 制作缺省资源文件255

13.7.3 改编页面文件256

13.7.4 编写和配置Servlet过滤器258

13.7.5 构建和运行应用程序259

13.7.6 编写中文资源文件259

13.7.7 检验应用程序的运行效果260

13.8 图片的国际化261

13.8.1 在项目中建立存放图片的目录262

13.8.2 制作对应各种不同语言的图片262

13.8.3 在页面文件上添加图片262

13.8.4 在资源束文件中加上对应图片键-值对263

13.8.5 在build.xml中添加拷贝图片的内容263

13.8.6 观察应用程序的运行结果264

13.9 异常消息的国际化264

13.9.1 异常消息的种类265

13.9.2 标准异常消息265

13.9.3 自定义异常消息的处理过程266

13.10 异常消息国际化示例266

13.10.1 在资源文件中加上消息的键-值对266

13.10.2 创建消息工厂267

13.10.3 业务模型中的消息处理方式267

13.10.4 Backing Bean中的消息处理方式267

13.10.5 示例应用的运行效果269

13.11 日期的国际化示例269

13.11.1 示例应用要实现的效果269

13.11.2 建立示例应用的目录结构269

13.11.3 修改页面文件270

13.11.4 准备资源文件270

13.11.5 修改业务对象271

13.11.6 修改业务模型中的类文件271

13.11.7 修改Backing Bean272

13.11.8 国际化编程后的效果检验274

第14章 JSF与Tiles框架的集成275

14.1 页面布局的几种可选方案275

14.1.1 使用JSP指令的方法275

14.1.2 使用JSP标签279

14.1.3 使用Tiles框架279

14.2 Tiles框架简介280

14.3 用Tiles布局页面的示例280

14.3.1 建立示例应用的目录结构280

14.3.2 下载和安装与Tiles有关的库文件280

14.3.3 编写tiles的配置文件281

14.3.4 在web.xml文件中配置tiles281

14.3.5 编写布局模板文件282

14.3.6 编写布局的各组成部分的页面文件283

14.3.7 编写应用模板的页面文件284

14.3.8 示例应用的运行效果284

14.4 用Tiles布局Frame页面285

14.4.1 Frame页面的基础知识285

14.4.2 一个简单的Frame页面例子286

14.4.3 让Frame页面居中显示288

14.5 用Tiles布局Frame页面的示例289

14.5.1 建立示例应用的目录结构289

14.5.2 新建图片文件289

14.5.3 更改tiles配置289

14.5.4 新建frame布局模板页面289

14.5.5 新建用于导航的菜单页面290

14.5.6 新建带frame的页面291

14.5.7 应用程序的运行效果291

第15章 JSF访问数据库293

15.1 MS SQL Server数据库的安装293

15.1.1 SQL Server数据库的安装过程293

15.1.2 数据库补丁包的安装296

15.2 JDBC简介297

15.2.1 JDBC的发展历程297

15.2.2 JDBC的结构和工作原理298

15.2.3 JDBC驱动器300

15.2.4 JDBC的使用场景300

15.2.5 两层模式300

15.2.6 三层模式301

15.2.6.1 客户层301

15.2.6.2 中间层301

15.2.6.3 数据源层302

15.3 数据访问对象模式简介302

15.4 让登录程序访问数据库中用户信息302

15.4.1 建立数据库302

15.4.2 建立数据库表303

15.4.3 在表中输入实验用的数据304

15.4.4 下载和安装JDBC驱动程序304

15.4.5 建立应用程序的目录结构305

15.4.6 增加应用程序访问数据库的部分305

15.4.7 修改应用程序的业务逻辑部分307

15.4.8 修改backing bean使其使用新的service308

15.4.9 创建与数据访问相关的自定义异常类309

15.4.10 修改资源文件,添加新的键-值对311

15.4.11 配置应用程序311

15.4.12 运行应用程序313

第16章 应用程序中的异常处理315

16.1 Java异常的分类315

16.2 Java处理异常的一般方法317

16.3 创建自己的异常子类320

16.4 成链异常321

16.5 JSF应用程序的异常处理322

第17章 应用程序的日志324

17.1 为什么要记日志324

17.2 用什么记日志324

17.3 怎么记日志324

17.4 在登录示例程序中记日志326

17.4.1 建立示例应用目录结构326

17.4.2 下载通用日志包326

17.4.3 下载日志器实现Log4J327

17.4.4 写日志有关的配置文件327

17.4.5 创建一个空的日志文件329

17.4.6 编写访问日志接口的应用程序代码329

17.4.7 部署和运行应用程序331

第18章 JSF与AJAX集成334

18.1 AJAX概述334

18.1.1 什么是AJAX334

18.1.2 AJAX的原则334

18.1.3 AJAX包含那些技术334

18.1.4 AJAX的工作原理335

18.2 Ajax4jsf336

18.2.1 Ajax4jsf概述336

18.2.2 Ajax4jsf工作原理336

18.2.3 下载和安装Ajax4jsf337

18.3 示例应用程序338

18.3.1 建立应用程序的目录结构339

18.3.2 需要的库文件339

18.3.3 在web.xml文件中添加Ajax4jsf的过滤器339

18.3.4 在注册页面中使用Ajax4jsf标签339

18.3.5 在Backing Bean中添加动作监听器方法340

18.3.6 部署和运行应用340

第19章 ORM及其Hibernate实现341

19.1 ORM简介341

19.1.1 对象模型与关系范例的失配341

19.1.1.1 粒度问题341

19.1.1.2 子类型问题341

19.1.1.3 标识符问题342

19.1.1.4 关联问题342

19.1.1.5 对象图导航问题343

19.1.2 集成层的可选方案343

19.1.2.1 使用JDBC343

19.1.2.2 使用EJB343

19.1.2.3 使用面向对象的数据库系统344

19.1.2.4 使用对象/关系映射(ORM)344

19.1.3 ORM面临的问题344

19.2 Hibernate的结构简介344

19.2.1 核心应用程序编程接口345

19.2.2 回调接口347

19.2.3 扩展接口348

19.3 映射对象348

19.3.1 基本映射348

19.3.2 标识的属性349

19.3.3 标识生成器350

19.3.4 多对一映射/一对多映射350

19.3.5 多对一中的类示例350

19.3.6 多对一/一对多的表间关系353

19.3.7 多对一/一对多的映射文件353

19.3.8 多对一元素的主要属性354

19.3.9 集合映射355

19.3.10 外键元素355

19.3.11 一对多元素的主要属性355

19.3.12 多对多映射355

19.4 检索对象357

19.4.1 Hibernate查询语言357

19.4.2 条件查询358

19.4.3 SQL查询358

19.5 报表查询358

第20章 JSF与Hibernate的集成360

20.1 Hibemate的配置360

20.1.1 Hibernate的下载360

20.1.2 需要的库文件361

20.1.3 持久化类的映射文件361

20.1.4 Hibernate配置文件362

20.2 用Hibernate重写登录程序的数据库访问部分362

20.2.1 辅助工具类362

20.2.2 项目使用的数据库363

20.3 具体的实现363

20.3.1 创建应用程序项目目录363

20.3.2 修改build.xml文件及调整部分配置文件的目录363

20.3.3 准备必要的Java库文件363

20.3.4 创建辅助工具类363

20.3.5 创建持久类及映射文件364

20.3.6 创建Hibernate配置文件364

20.3.7 创建DAO接口365

20.3.8 创建DAO的Hibernate实现类366

20.3.9 创建应用服务的Hibernate实现类367

20.3.10 修改Backing Bean368

20.3.11 用ANT构建和部署应用程序368

20.3.12 运行应用程序369

20.4 对应用程序的回顾369

20.4.1 关于Hibernate Session的关闭问题369

20.4.2 关于示例程序中的修改问题369

20.4.3 关于DAO代码简化的问题370

20.5 进一步简化DAO代码370

20.5.1 DAO中的样板代码370

20.5.2 去除样板代码的方法371

20.5.3 部署和运行新项目373

第21章 JSF与Spring和Hibernate的集成374

21.1 Spring的组成374

21.2 Spring中的IoC以及用Spring管理JSF托管bean375

21.2.1 JSF与Spring集成的原理375

21.2.2 集成所需要做的配置工作375

21.2.3 期版本的JSF参考实现在实际集成中会遇到的问题377

21.2.4 项目使用的数据库378

21.3 用JSF、Spring和Hibernate编写注册登录示例378

21.3.1 建立应用程序项目的目录结构378

21.3.2 准备Spring库文件378

21.3.3 准备JSF与Spring的胶代码库文件380

21.3.4 创建数据访问接口381

21.3.5 创建数据访问实现类381

21.3.6 创建业务服务接口382

21.3.7 创建业务服务实现类382

21.3.8 创建持久化类及映射文件384

21.3.9 创建Backing Bean385

21.3.10 创建注册页面及注册成功页面385

21.3.11 在Spring上下文中配置服务及数据访问对象386

21.3.12 配置Faces上下文388

21.3.13 配置web.xml388

21.3.14 构建、部署及运行示例应用程序389

第22章 使用Eclipse和MyEclipse工具390

22.1 下载与配置Eclipse和MyEclipse390

22.1.1 下载IDE软件390

22.1.2 配置开发环境391

22.2 用IDE开发示例394

22.2.1 建立新项目394

22.2.2 加入JSf Capabilities396

22.2.3 加入Spring Capabilities397

22.2.4 加入Hibernate Capabilities398

22.2.5 业务层与集成层对象的编写与配置402

22.2.5.1 引入访问数据库所需要的包文件402

22.2.5.2 配置数据源403

22.2.5.3 创建持久化对象及其映射文件404

22.2.5.4 修改Hibernate sessionFactory的配置405

22.2.5.5 创建数据访问对象的接口及实现类408

22.2.5.6 创建应用服务接口及实现类和自定义异常类408

22.2.5.7 配置其他对象408

22.2.6 应用程序表示层对象的编写与配置409

22.2.6.1 配置Application410

22.2.6.2 配置和生成Backing Bean410

22.2.6.3 在Backing Bean中注入依赖411

22.2.6.4 在Backing Bean中编写动作方法412

22.2.6.5 可视化方式制作页面文件412

22.2.6.6 配置导航规则412

22.2.7 配置应用程序的部署描述器文件web.xml413

22.2.8 部署和运行项目415

22.3 用IDE打开示例应用的方法417

22.4 在IDE中使用Hibernate的反向工程417

22.4.1 创建一个新项目417

22.4.2 创建数据库417

22.4.3 创建数据库浏览器窗口418

22.4.4 建立必要的包420

22.4.5 加入JSF和Spring的Capabilities420

22.4.6 加Hibernate的Capabilities420

22.4.7 应用反向工程生成类和配置文件423

22.4.8 反向工程生成的文件样例425

第23章 AOP及事务管理427

23.1 AOP简介427

23.1.1 什么是AOP427

23.1.1.1 对AOP的一些常见的误解427

23.1.1.2 AOP的一些常用术语428

23.1.2 Spring实现的AOP428

23.1.2.1 Spring实现的AOP的特点428

23.1.2.2 Spring中AOP的应用429

23.2 事务简介429

23.2.1 事务的基本属性429

23.2.2 Spring的事务策略429

23.2.3 Spring支持的事务隔离度430

23.2.4 Spring支持的事务传播类型430

23.3 事务管理示例431

23.3.1 示例应用要演示的情形431

23.3.2 数据库表的建立431

23.4 没有事务管理的例子432

23.4.1 编写持久化对象的类文件432

23.4.2 编写映射文件433

24.4.3 编写DAO接口434

23.4.4 编写DAO实现类435

23.4.5 编写业务服务接口436

23.4.6 编写没有事务处理的业务服务436

23.4.7 编写没有事务管理的Spring配置438

23.4.8 示例应用的Backing Bean439

23.4.9 配置web.xml441

23.4.10 应用程序的页面文件441

23.4.11 示例应用的运行效果441

23.5 编程式事务管理的例子442

23.5.1 编程式事务管理的一般方法442

23.5.2 编写编程式事务的业务服务442

23.5.3 编写编程式事务管理的Spring配置444

23.5.4 修改web.xml445

23.5.5 应用的运行效果445

23.6 声明式事务管理的例子445

23.6.1 声明式事务管理的方法445

23.6.2 在Spring的配置文件中声明事务446

22.6.3 修改web.xml447

23.6.4 应用的运行效果447

第24章 权限系统示例应用程序448

24.1 基于角色的访问控制448

24.2 应用程序的界面448

24.2.1 登录界面449

24.2.2 管理员用户界面449

24.2.3 普通用户界面450

24.3 数据库设计451

24.3.1 表的结构451

24.3.2 表之间的关系454

24.4 持久化对象455

24.4.1 持久化对象的类文件455

24.4.2 持久化对象的映射文件461

24.5 数据访问对象463

24.5.1 数据访问对象接口464

24.5.2 数据访问对象实现465

24.6 业务服务469

24.6.1 业务服务接口469

24.6.2 业务服务实现470

24.6.3 编程式事务在示例中的应用473

24.7 Backing Bean474

24.7.1 使用Backing Bean的策略474

24.7.2 示例Backing Bean的编码475

24.7.3 安全退出系统的动作478

24.7.4 在Backing Bean中验证Email地址478

24.7.5 在Backing Bean中引用其他Backing Bean480

24.8 配置文件482

24.8.1 应用程序部署描述器文件482

24.8.2 JSF配置文件483

24.8.3 Spring配置文件486

24.8.4 Hibernate的配置文件489

24.9 页面文件489

24.9.1 index.jsp489

24.9.2 登录页面文件489

24.9.3 Frameset文件490

24.9.4 树型菜单文件491

24.9.5 添加新用户的页面文件492

24.9.6 指派用户角色的页面文件492

24.9.7 安全登出系统的页面文件495

24.9.8 显示操作结果的页面文件495

24.9.9 页面间的导航关系496

24.10 辅助文件496

24.10.1 字符集过滤器类文件496

24.10.2 资源文件497

24.10.3 消息工厂类文件497

24.11 怎样让示例程序运行起来497

24.11.1 创建示例数据库497

24.11.2 更改配置文件中的数据库密码498

24.11.3 用IDE部署示例应用498

24.12 为已有的JSF项目增加AJAX支持498

24.12.1 导入库文件498

24.12.2 更改页面文件498

24.12.3 更改Backing Bean500

24.12.4 更改业务服务接口及实现501

24.12.5 更改应用程序部署描述器文件502

第25章 办公用品管理系统示例程序503

25.1 示例程序的需求分析503

25.1.1 需求分析简述503

25.1.2 用例(UseCase)图503

25.1.3 用例文档的书写504

25.1.4 系统需要用到的页面505

25.1.5 业务规则的说明506

25.1.6 其他要求506

25.2 示例程序的架构设计506

25.2.1 多层架构506

25.2.2 选择合适的技术506

25.2.3 表示层设计507

25.2.4 业务逻辑层设计507

25.2.5 数据映射层设计507

25.2.6 数据库设计507

25.3 示例程序的实现508

25.3.1 表示层实现508

25.3.2 业务层实现510

25.3.3 数据映射层实现512

25.4 其他实用功能的实现512

25.4.1 文件上传512

25.4.1.1 Java中的输入输出与流512

25.4.1.2 文件的路径与目录512

25.4.1.3 MyFaces的文件上传标签513

25.4.2 文件上传的实现513

25.4.3 处理分页518

25.4.4 发送电子邮件521

25.4.4.1 Spring对电子邮件的抽象521

25.4.4.2 编写Backing Bean521

25.4.4.3 配置邮件发送器和邮件消息523

25.4.4.4 编写发送邮件的方法524

25.4.4.5 发送邮件时需要加入的库文件525

25.5 示例应用程序的测试525

25.5.1 测试简介525

25.5.2 测试的分类526

25.5.3 模拟测试与集成测试526

25.5.4 常用的测试框架JUnit526

25.5.5 测试用例的运行方式527

25.5.6 数据访问层测试示例528

25.5.6.1 创建测试基类528

25.5.6.2 创建测试具体类529

25.5.6.3 修改向导生成的测试类文件531

25.5.6.4 测试过程532

25.5.6.5 在IDE中测试易出现的问题533

25.6 部署和运行应用程序533

25.6.1 数据库的建立533

25.6.2 配置文件中的参数更改534

第26章 应用程序的安全性535

26.1 应用程序的安全性简介535

26.2 权限管理示例程序的安全性考虑535

26.2.1 控制对资源的访问535

26.2.2 保护敏感数据536

26.3 防止用户绕过登录的方法537

26.3.1 登录时保存信息到HttpSession中537

26.3.2 制作验证HttpSession中内容的页面539

26.3.3 在需要保护的页面前部包含验证页面539

26.4 Java密码架构和加密服务提供者540

26.4.1 Java密码架构540

26.4.2 加密服务提供者541

26.4.3 Java密码架构的使用方式541

26.5 消息摘要与口令认证541

26.5.1 什么是消息摘要541

26.5.2 口令的加密存储542

26.5.3 加密后的口令的验证543

26.6 权限管理应用的口令加密示例544

26.6.1 新建示例项目544

26.6.2 更改人员表中口令字段的数据类型544

26.6.3 改变持久化类中口令字段的数据类型544

26.6.4 更改映射文件中口令字段的数据类型545

26.6.5 在业务服务实现中增加口令加密方法546

26.6.6 在业务服务实现中增加口令验证方法547

26.6.7 更改业务服务实现的注册新用户方法548

26.6.8 更改业务服务实现的登录方法549

26.6.9 更改业务服务实现的用户改变口令方法551

26.6.10 在数据库表中查看口令数据552

热门推荐