《Struts與Ajgx高級程式設計》適合於所有具備一定開發經驗並掌握JSP、servlet以及Struts基礎知識的高級讀者閱讀。
基本介紹
- 書名:Struts與Ajgx高級程式設計
- 作者:John Carnell
- ISBN:9787115172273
- 頁數:409頁
- 出版社:人民郵電出版社
- 出版時間:2008年2月1日
- 裝幀:平裝
- 開本: 16
作者簡介,內容簡介,目錄,
作者簡介
John Carnell,全球領先的企業信息化解決方案和培訓服務供應商NetChange公司的總裁。他對基於組件開發的軟體解決方案有深入的研究,在業界頗負盛名。
內容簡介
《Struts與Ajgx高級程式設計》主要內容:StrutsMVCWeb框架的使用方法,可以幫助讀者解決在日常Web應用程式開發中遇到的各種難題。不合理的設計會導致對Struts框架的長期依賴,這會使代碼復用變得非常複雜。《Struts與Ajgx高級程式設計》基於Struts1.2版對此類問題給出了專業的解決方案。《Struts與Ajgx高級程式設計》的重點在於如何發現常見的設計錯誤(反模式)以及如何使用Struts來解決這些問題。《Struts與Ajgx高級程式設計》內容豐富,信息全面,主要內容包括模式和反模式、Struts基礎及其高級知識、Tiles框架、日誌和調試、elocity模板引擎、Struts和Ajax等。通過《Struts與Ajgx高級程式設計》,讀者不僅能夠深入地了解Struts的工作原理,而且還能掌握處理日常開發中遇到的問題的有效方法。
目錄
第1章 我們做錯了什麼:Web反模式解釋 1
1.1 本書主要內容 2
1.2 本章主要內容 3
1.3 Web應用程式開發面臨的挑戰 4
1.3.1 企業服務 5
1.3.2 套用服務 6
1.4 模式和反模式介紹 7
1.4.1 Web應用程式反模式 8
1.4.2 Concern Slush 9
1.4.3 Tier Leakage 11
1.4.4 Hardwired 13
1.4.5 Validation Confusion 15
1.4.6 Tight-Skins 17
1.4.7 Data Madness 18
1.5 反模式、JOS框架以及經濟學 20
1.6 小結 24
第2章 Struts基礎 25
2.1 JavaEdge應用程式架構 26
2.1.1 設計 26
2.1.2 使用Struts實現MVC模式 28
2.1.3 起步:JavaEdge原始碼樹 30
2.1.4 Command模式的作用 40
2.2 構造表示層 44
2.2.1 JavaEdge主頁 45
2.2.2 Bean標籤 48
2.2.3 邏輯標籤 57
2.2.4 疊代式標籤 58
2.2.5 條件式標籤 58
2.2.6 移動式標籤 61
2.3 小結 62
第3章 使用Struts的表單表示和驗證機制 64
3.1 表單驗證的問題 64
3.2 使用Struts進行表單驗證 65
3.3 使用Struts實現表單驗證 67
3.3.1 struts-config.xml檔案 68
3.3.2 Struts ActionForm類 69
3.3.3 使用數據預先填充ActionForm 75
3.3.4 其他預先填充技術 78
3.3.5 正確地預先填充表單 79
3.3.6 驗證表單數據 80
3.4 Struts HTML標籤庫 88
3.4.1 建立Struts HTML表單 90
3.4.2 使用文本和文本域輸入欄位 92
3.4.3 下拉列表、複選框和單選框 93
3.4.4 創建更加動態的ActionForm 95
3.4.5 ActionForm和業務邏輯 101
3.5 小結 106
第4章 使用Struts管理業務邏輯 107
4.1 業務邏輯反模式和Struts 107
4.1.1 Concern Slush和Struts 108
4.1.2 Tier Leakage和Struts 113
4.1.3 分離業務邏輯和Struts 115
4.2 實現設計模式 117
4.2.1 實現Business Delegate模式 117
4.2.2 實現Service Locator模式 122
4.2.3 繼續研究服務定位器 130
4.2.4 EJB和Struts 134
4.3 處理Action類中的異常 140
4.3.1 Struts 1.0.x的異常處理 141
4.3.2 Struts 1.1和以後版本的異常處理 143
4.3.3 重新編寫ApplicationException類 143
4.3.4 設定struts-config.xml檔案 144
4.3.5 編寫定製的ExceptionHandler 146
4.4 小結 149
第5章 使用ObjectRelational Bridge實現數據訪問層的架構 151
5.1 開發數據訪問策略 152
5.1.1 JavaEdge應用程式的數據訪問模型 153
5.1.2 值對象 158
5.1.3 JavaEdge值對象 159
5.1.4 使用O/R映射工具 162
5.1.5 設定對象/關係映射 165
5.1.6 使用哪個序列管理器 174
5.2 使用OJB 180
5.2.1 數據檢索:一個簡單的例子 185
5.2.2 數據檢索:一個更複雜的範例 187
5.2.3 使用OJB存儲數據 189
5.2.4 使用OJB刪除數據 190
5.3 集成前面的代碼 191
5.4 小結 194
第6章 使用Tiles框架創建靈活的前端套用 196
6.1 Tiles框架是什麼 197
6.2 啟用Struts 1.1版本以使用Tiles 198
6.2.1 配置Tiles外掛程式 199
6.2.2 tiles-defs.xml檔案 201
6.2.3 添加Tiles TLD 201
6.2.4 第一個Tiles模板 201
6.3 Tiles定義是什麼 204
6.4 Tiles定義:基於JSP的方法 205
6.4.1 覆寫Tiles定義的屬性值 207
6.4.2 在Tiles定義中使用啞值 207
6.4.3 JSP Tiles定義的劣勢 208
6.4.4 分析tiles-defs.xml檔案 209
6.4.5 使用Tiles定義的繼承性 209
6.4.6 擴展Tiles定義 212
6.4.7 修改template.jsp檔案 213
6.4.8 給tiles-defs.xml檔案添加一個新的定義 214
6.4.9 修改.homePage定義 215
6.5 把Tiles定義映射到Action Forwards 216
6.6 小結 219
第7章 動態表單和Struts驗證框架 221
7.1 動態表單簡介 222
7.1.1 定義postStoryForm Struts表單bean 222
7.1.2 實現postStoryDynaForm.java類 223
7.1.3 關於BeanUtils和上述代碼的思考 228
7.2 Jakarta Commons Validator框架 231
7.2.1 Validator框架設定 231
7.2.2 實現必填欄位驗證 232
7.2.3 maxlength驗證規則 235
7.3 在ActionForm類中使用Validator框架 237
7.3.1 編寫自己的驗證規則 239
7.3.2 實現粗俗性規則 239
7.3.3 向validator-rules.xml檔案添加粗俗性檢查規則 243
7.3.4 Struts驗證和潛在的長期後果 245
7.3.5 在表單中實現粗俗性規則 246
7.3.6 不使用Java的ActionForm 247
7.3.7 何時使用Validator框架 247
7.4 小結 248
第8章 使用XDoclet加速Struts開發 250
8.1 安裝XDoclet 251
8.2 XDoclet到底是什麼 252
8.2.1 從XDoclet到原始碼及其之間的步驟 255
8.2.2 可用的XDoclet標籤 256
8.2.3 分析一個XDoclet標籤 257
8.3 集成Ant和XDoclet 258
8.4 XDoclet和Struts 262
8.4.1 聲明Struts表單bean 262
8.4.2 聲明Struts動作 263
8.4.3 XDoclet和Java繼承 264
8.4.4 聲明應用程式異常 264
8.4.5 使用 webdoclet ... / 構建strutsconfig.xml檔案 266
8.4.6 XDoclet和Validator框架 267
8.4.7 從Ant生成Validator標籤 270
8.5 小結 272
第9章 日誌和調試 274
9.1 為什麼使用日誌 275
9.2 簡單的Web應用程式日誌 276
9.2.1 ServletContext提供的日誌 276
9.2.2 使用Commons Logging 277
9.3 Java 1.4日誌API 281
9.3.1 Apache log4j 284
9.3.2 使用log4j和Cmmons Logging 285
9.3.3 日誌繼承 289
9.3.4 日誌性能 292
9.3.5 日誌最佳實踐 292
9.3.6 JBoss和log4j 296
9.3.7 在JavaEdge應用程式中集成日誌 297
9.3.8 Web層的日誌 303
9.3.9 使用JBoss和Eclipse調試Struts應用程式 305
9.3.10 調試JavaEdge應用程式 306
9.3.11 快速部署能力 307
9.3.12 調試Struts框架 308
9.4 小結 308
第10章 Velocity模板引擎 309
10.1 模板引擎是什麼 309
10.2 開始行動 310
10.2.1 Velocity類和VelocityContext類 311
10.2.2 Velocity引擎語言 312
10.2.3 變數 313
10.2.4 訪問變數 313
10.2.5 變數值 313
10.2.6 JavaBean屬性 318
10.2.7 算術 318
10.2.8 指令 319
10.2.9 宏 327
10.2.10 Struts和Velocity 328
10.3 使用Velocity的最佳實踐 335
10.3.1 使用宏 335
10.3.2 知道何時使用#parse指令,何時使用#include指令 335
10.3.3 使用JavaBean屬性名稱 335
10.4 小結 335
第11章 擴展Struts框架 336
11.1 擴展Action和ActionForm 336
11.1.1 向自己的動作提供通用服務 337
11.1.2 干涉動作執行 341
11.2 擴展RequestProcessor 343
11.2.1 創建RequestProcessor 343
11.2.2 使用RequestProcessor,而不使用Filter 344
11.2.3 使用RequestProcessor驗證本地訪問 347
11.3 創建配置Bean 347
11.4 再次研究RequestProcessor 349
11.5 創建一個外掛程式 353
11.5.1 新聞列表服務基礎 353
11.5.2 NewsletterManager 353
11.5.3 NewsletterTask 357
11.5.4 NewsletterPlugIn 358
11.5.5 配置外掛程式 361
11.6 小結 362
第12章 Struts和Ajax 363
12.1 Ajax解密 363
12.1.1 在Google中使用Ajax 363
12.1.2 在Yahoo中使用Ajax 364
12.2 在哪些地方應該使用Ajax 364
12.2.1 Ajax和Web 2.0 364
12.2.2 Ajax和SOA 364
12.3 Ajax內部機制 365
12.3.1 Ajax請求-答覆循環 365
12.3.2 XMLHttpRequest對象 366
12.4 Ajax和Struts 367
12.4.1 Cities.jsp檔案 367
12.4.2 GetCitiesNamesAction 370
12.4.3 CitiesDAO 371
12.5 小結 372
附錄A JavaEdge設定和安裝 373
附錄B Struts開發工具 380
附錄C Struts和Strecks 407