JSF第一步

JSF第一步

《JSF第一步》是2007年清華大學出版社出版的圖書,作者是羅會波。

基本介紹

  • 書名:JSF第一步
  • 作者:羅會波
  • ISBN:9787302159735
  • 頁數:551
  • 定價:65.00元
  • 出版社:清華大學出版社
  • 出版時間:2007-10
內容介紹,特點,作者簡介,目錄,

內容介紹

《JSF第一步:JSF+Spring+Hibernate+AJAX編程》講述JSF是表示層框架的標準,Hibernate是一個比較完善的對象關係映射工具,Spring則提供了一個Web套用的輕量級的解決方案。在開發一個多層的Java EE應用程式時,這些框架可謂是相輔相成、相得益彰,可以稱得上是開發輕量級Java EE套用的三劍客。另外,AJAX是一種非常流行的改善用戶體驗的技術,但目前國內外還沒有一本完整地介紹組合這三種框架及AJAX來開發應用程式的書籍,

特點

《JSF第一步:JSF+Spring+Hibernate+AJAX編程》是在這方面的一個嘗試。《JSF第一步:JSF+Spring+Hibernate+AJAX編程》詳盡地介紹了JSF的基本結構和工作原理、標籤、驗證與轉換、事件處理、國際化編程及IoC;對象關係映射的概念、Hibernate的結構及與JSF的集成;Spring的結構、AOP、Spring與JSF和Hibernate的集成;常用IDE(Eclipse和MyEclipse)的使用方法等內容。

作者簡介

羅會波 高級工程師,IBM認證DB2資料庫系統管理員。早年從事中學物理教學工作,後在億利達(Elite)集團明泰R/D部(深圳)從事通信產品研發工作。1996年底進入稅務系統從事信息化工作至今。在億利達工作期間開始接觸彙編語言編程;在稅務系統主持或參與了“湖北省國稅局納稅大廳Web查詢系統”、“全國稅務征管軟體Ctais納稅人查詢系統”等數個省局及市局稅務信息化項目的開發工作;參與了湖北省國稅局內部教材《國稅系統辦公自動化實用指南》一書的編撰工作;曾在《計算機世界》、《電腦愛好者》及《電腦編輯技巧與維護》等報刊雜誌及賽迪風上發表過包括《Struts原理與實踐》系列講座(該系列曾長期占據賽迪網技術文章排行榜TOP10)在內的多篇原創及翻譯的IT技術文章,文風嚴謹,又不失幽默,受到廣大讀者的一致好評。

目錄

第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 EJB 5
1.3.1.3 其他特點 6
1.3.1.4 適應的場合 6
1.3.2 方興未艾的輕量級實現方式 6
1.3.2.1 運行環境 7
1.3.2.2 POJO 7
1.3.2.3 其他特點 7
1.3.2.4 適應場合 7
1.4 風雲際會的框架世界 7
1.4.1 框架的出現與流行 8
1.4.2 大器晚成展新顏——JSF 8
1.4.3 層林深處好冬眠——Hibernate 9
1.4.4 七音合奏春光曲——Spring 9
1.5 為什麼是JSF而不是Struts 9
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 Servlet 18
2.4.1 Servlet的基本概念 18
2.4.2 Servlet的體系結構 18
2.4.3 你的第一個Servlet應用程式——
Hello World 19
2.4.3.1 建立示例套用目錄結構 19
2.4.3.2 編寫Servlet類檔案 19
2.4.3.3 編譯Servlet類檔案 20
2.4.3.4 編寫部署描述器檔案
web.xml 20
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 JSP 24
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 部署和運行JSP 26
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 out 36
2.5.8.2 request 37
2.5.8.3 session 39
2.5.8.4 application 41
2.5.8.5 config 41
2.5.8.6 pageContext 41
2.5.8.7 page 41
2.5.8.8 response 41
2.5.8.9 exception 41
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 JavaBean 45
2.5.11.1 JavaBean的概念 45
2.5.11.2 為什麼要引入JavaBean 46
2.5.11.3 JavaBean的編碼約定 46
2.5.11.4 一個簡單的JavaBean 48
2.5.11.5 在JSP中使用JavaBean 50
2.5.12 JavaBean在JSP中的有效範圍 50
2.5.12.1 演示Page範圍的Bean 50
2.5.12.2 演示Request範圍的Bean 52
2.5.12.3 演示Session範圍的Bean 53
2.5.12.4 演示Application範圍的
Bean 54
2.6 早期框架Struts 55
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 JSF 57
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.jsp 61
3.2.3.2 hello.jsp 62
3.2.3.3 howDoYouDo.jsp 65
3.2.3.4 howAreYou.jsp 66
3.2.4 應用程式的Backing Bean 66
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.xml 69
3.2.5.1 示例套用的導航規則 70
3.5.5.2 示例套用的託管JavaBean
配置 71
3.2.6 應用程式的配置檔案web.xml 71
3.2.7 手工編譯應用程式 72
3.2.8 應用程式上下文 73
3.2.9 建立應用程式上下文及部署套用
程式 73
3.2.9.1 直接修改Tomcat的配置
檔案server.xml 73
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 設定classpath 77
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 將請求映射到FacesServlet 80
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--Model2 104
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 Bean 117
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 標準組件模型Bean 131
6.5.2.1 SelectItem 131
6.5.2.2 SelectItemGroup 131
6.5.2.3 DataModel 131
6.6 標準組件及使用方法 132
6.6.1 用UIViewRoot控制頁面 132
6.6.1.1 UIViewRoot簡介 132
6.6.1.2在JSP頁面上
的套用 133
6.6.1.3的使用 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 單選列表框
HtmlSelectOneListbox 144
6.6.10.2 單選下拉選單
HtmlSelectOneMenu 144
6.6.10.3 單選鈕HtmlSelect-
OneRadio 144
6.6.11 用UISelectMany作為複選組件 145
6.6.11.1 複選列表框
HtmlSelectManyListbox 145
6.6.11.2 複選下拉選單
HtmlSelectManyMenu 145
6.6.11.3 複選鈕
HtmlSelectManyCheckbox 145
6.6.12 用UICommand調用應用程式 146
6.6.12.1 命令按鈕HtmlCommand
Button 146
6.6.12.2 命令超連結
HtmlCommandLink 146
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章 表達式語言與託管Bean 151
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 託管Bean 155
7.2.1 託管Bean創建工具與託管Bean 155
7.2.2 託管Bean的配置 155
7.2.2.1 基本的配置元素 156
7.2.2.2 配置託管Bean的屬性 156
7.2.2.3 託管Bean屬性的初始化與
JSF的IoC 157
7.2.3 List配置為託管Bean 158
7.2.4 Map配置為託管Bean 158
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 Bean 170
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 Bean 178
9.2.7 示例中的頁面檔案 179
9.2.8 在Faces配置檔案中配置導航
規則 180
9.2.9 在Faces配置檔案中配置託管
Bean 180
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 Bean 192
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年齡屬性的數據
類型為int 204
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 示例套用的Backing Bean 220
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 Bean 272
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檔案中配置tiles 281
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使其使用
新的service 308
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 下載日誌器實現Log4J 327
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 什麼是AJAX 334
18.1.2 AJAX的原則 334
18.1.3 AJAX包含那些技術 334
18.1.4 AJAX的工作原理 335
18.2 Ajax4jsf 336
18.2.1 Ajax4jsf概述 336
18.2.2 Ajax4jsf工作原理 336
18.2.3 下載和安裝Ajax4jsf 337
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 使用JDBC 343
19.1.2.2 使用EJB 343
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 Hibernate的配置 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 Bean 368
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
託管bean 375
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 Bean 385
21.3.10 創建註冊頁面及註冊成功頁面 385
21.3.11 在Spring上下文中配置服務及
數據訪問對象 386
21.3.12 配置Faces上下文 388
21.3.13 配置web.xml 388
21.3.14 構建、部署及運行示例套用
程式 389
第22章 使用Eclipse和MyEclipse工具 390
22.1 下載與配置Eclipse和MyEclipse 390
22.1.1 下載IDE軟體 390
22.1.2 配置開發環境 391
22.2 用IDE開發示例 394
22.2.1 建立新項目 394
22.2.2 加入JSf Capabilities 396
22.2.3 加入Spring Capabilities 397
22.2.4 加入Hibernate Capabilities 398
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 配置Application 410
22.2.6.2 配置和生成Backing Bean 410
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.xml 413
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的
Capabilities 420
22.4.6 加入Hibernate的Capabilities 420
22.4.7 套用反向工程生成類和配置
檔案 423
22.4.8 反向工程生成的檔案樣例 425
第23章 AOP及事務管理 427
23.1 AOP簡介 427
23.1.1 什麼是AOP 427
23.1.1.1 對AOP的一些常見的
誤解 427
23.1.1.2 AOP的一些常用術語 428
23.1.2 Spring實現的AOP 428
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 Bean 439
23.4.9 配置web.xml 441
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.xml 445
23.5.5 套用的運行效果 445
23.6 聲明式事務管理的例子 445
23.6.1 聲明式事務管理的方法 445
23.6.2 在Spring的配置檔案中聲明
事務 446
22.6.3 修改web.xml 447
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 Bean 474
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 Bean 480
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.jsp 489
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 Bean 500
24.12.4 更改業務服務接口及實現 501
24.12.5 更改應用程式部署描述器檔案 502
第25章 辦公用品管理系統示例程式 503
25.1 示例程式的需求分析 503
25.1.1 需求分析簡述 503
25.1.2 用例(Use Case)圖 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 Bean 521
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 常用的測試框架JUnit 526
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

相關詞條

熱門詞條

聯絡我們