2024香港最具教育競爭力中學/小學/幼稚園50強龍虎榜
2024香港最具教育競爭力中學/小學/幼稚園排名指南
最近十一年香港最具教育競爭力中學/小學/幼稚園50強完整版榜單:
2024202320222021/202019201820172016201520142013
教育競爭力評比體系說明
校風評比體系說明
服务全球华人的中英文書籍網上書店
您的購物車是空的

Seam實戰

  • 作者:(美) 艾倫 著 崔毅 等 譯
  • 出版社: 人民郵電出版社
  • 出版時間:2010-06-01
  • 版次:1
  • 商品編號: 10064379

    頁數:481

    印次:1

    印刷時間:2010-06-01


HK$118.70 (速遞費用須知)
購買額滿HK$158免運費
免郵費優惠僅限香港、澳门、
台灣及中國大陸

購買數量:

內容簡介

 

 本書深入講解了JBoss Seam,介紹了Seam如何消除了不必要的層和配置,解決了JSF最常見的難點,建立了JSF、EJB 3和JavaBean組件間缺少的鏈接。書中也介紹了如何利用Seam進行技術綜合,如業務過程、有狀態的頁面流、Ajax遠程處理、PDF生成、異步任務等。
  本書適用於Java程序員閱讀。

作者簡介

  Dan Allen 資深軟件專家,精通Java框架、測試框架、JavaScript、DOM、CSS等。他還是開源技術的狂熱擁護者。
我來評論這本書

 

目錄

第一部分 瞭解Seam
第1章 Seam使Java EE一體化 2
1.1 我該選用哪種框架 3
1.2 選擇Seam 3
1.2.1 完整的應用程序棧 4
1.2.2 開發Seam的原因 4
1.2.3 「廠商壟斷」傳聞真相 5
1.2.4 Seam用例 6
1.3 Seam的統一方法 7
1.3.1 Seam整合了JSF、JPA和POJO組件 7
1.3.2 上下文組件模型 9
1.4 牛刀小試 12
1.4.1 充當Backing Bean的實體類 12
1.4.2 全能的組件 13
1.4.3 將組件綁定到視圖上 14
1.4.4 按需獲取數據 16
1.4.5 可點擊列表 16
1.4.6 為JSF設計的集成測試 17
1.5 Seam的核心競爭力 18
1.5.1 讓JSF變成能手 19
1.5.2 讓你快速構建「富」應用 21
1.5.3 構建敏捷的開發環境 22
1.6 小結 23

第2章 seam-gen實踐 25
2.1 Open 18原型 25
2.1.1 整裝待發 26
2.1.2 將實體映射到數據庫Schema 27
2.2 讓seam-gen完成初始工作 30
2.2.1 seam-gen的特點 30
2.2.2 seam-gen提供的特性 31
2.3 用seam-gen啟動項目 32
2.3.1 seam-gen命令一覽 32
2.3.2 與seam-gen的針鋒對話 34
2.3.3 創建基礎項目結構 37
2.3.4 生成CRUD 38
2.4 將項目部署到JBoss應用服務器 40
2.4.1 部署 40
2.4.2 展開 41
2.4.3 切換環境 42
2.4.4 啟動JBoss應用服務器 43
2.5 展示與講述、改變和重複 45
2.5.1 球場漫步 45
2.5.2 反向工程的過程 50
2.5.3 探討生成項目的結構 53
2.6 快速開發seam-gen項目 56
2.6.1 增量熱部署 57
2.6.2 用IDE加速開發 60
2.7 小結 69

第二部分 Seam基礎知識
第3章 Seam的生命週期 72
3.1 Seam如何參與請求 73
3.1.1 Seam的開關 73
3.1.2 JSF Servlet:Seam的動力 74
3.1.3 通過Seam的資源Servlet訪問資源 79
3.1.4 Seam的Servlet過濾器鏈 80
3.1.5 Seam的階段監聽器 82
3.2 沒有Seam的JSF生命週期 83
3.2.1 JSF生命週期階段 84
3.2.2 初始請求 85
3.2.3 回傳 87
3.2.4 JSF生命週期的缺點 88
3.3 Seam面向頁面生命週期的附加功能 90
3.3.1 pages.xml的高級編排 90
3.3.2 智能導航 92
3.3.3 Seam UI命令組件 95
3.3.4 頁面參數 96
3.3.5 頁面動作:先執行我 100
3.4 頁面動作與導航的結合 101
3.4.1 對請求進行完整性檢查 102
3.4.2 內建的頁面視圖 103
3.4.3 對搜索引擎友好的URL 104
3.5 Seam的JSF生命週期 106
3.5.1 階段監聽器和Servlet過濾器 106
3.5.2 概覽增強的生命週期 106
3.6 用try-catch塊包圍生命週期 109
3.6.1 以優雅的方式處理失敗 109
3.6.2 註冊異常處理器 109
3.6.3 將異常扼殺在萌芽中 110
3.7 小結 111

第4章 組件及其上下文 113
4.1 Seam的上下文命名容器 113
4.1.1 Seam的上下文模型 114
4.1.2 統一了Java的Servlet上下文 114
4.1.3 Seam中新的有狀態上下文 115
4.1.4 Seam中增強的Servlet上下文 116
4.2 組件的分類 117
4.2.1 組件與組件實例 117
4.2.2 Seam管理組件 118
4.3 用註解定義組件 119
4.3.1 給組件取個名稱 120
4.3.2 給組件一個作用域 121
4.4 完整的組件範例 122
4.4.1 創建實體組件 122
4.4.2 準備動作Bean組件 126
4.4.3 集成測試組件 127
4.4.4 讓組件「鉤進」JSF 128
4.5 組件的一生 131
4.5.1 加載組件定義 131
4.5.2 何時安裝組件 132
4.5.3 給一個組件多個角色 134
4.5.4 在啟動時實例化組件 135
4.5.5 組件生命週期回調 136
4.5.6 將組件組裝起來 138
4.5.7 所有組件在哪裡結束生命週期 139
4.6 在Seam中使用EJB 3會話Bean 139
4.6.1 到底是誰的組件 140
4.6.2 Seam會話Bean組件的生成 141
4.6.3 整合機制 142
4.7 訪問組件 146
4.7.1 訪問模式 146
4.7.2 訪問策略 147
4.8 小結 153

第5章 Seam組件描述符 155
5.1 利用XML定義組件 156
5.1.1 描述符的選擇策略 156
5.1.2 組件描述符的結構 157
5.1.3 細粒度組件描述符 159
5.2 組件描述符中的XML命名空間 160
5.2.1 XML命名空間聲明的作用 160
5.2.2 為包中的組件定義XML命名空間 163
5.2.3 如何轉譯XML命名空間 164
5.2.4 引入上下文變量前綴 167
5.3 配置組件屬性 168
5.3.1 將組件定義成對象原型 168
5.3.2 在何處定義組件屬性 169
5.3.3 屬性值類型 175
5.3.4 組裝組件 180
5.4 組件定義和組件配置 182
5.4.1 避免與現有定義相衝突 183
5.4.2 混和使用註解和XML 184
5.5 配置和啟用內建組件 184
5.5.1 用組件描述符控制Seam 184
5.5.2 配置Seam的國際化支持 185
5.6 小結 187

第6章 IoC 189
6.1 bijection:依賴注入的演變 190
6.1.1 引入bijection 190
6.1.2 高爾夫球場上的bijection 191
6.1.3 激活bijection 191
6.2 動態的依賴注入 193
6.2.1 聲明注入點 193
6.2.2 注入流程 195
6.2.3 混合作用域和可序列化的能力 197
6.2.4 注入變體 198
6.3 注出上下文變量 200
6.3.1 注出流程 200
6.3.2 注出用例 202
6.3.3 內建的數據模型支持 204
6.4 避開bijection 211
6.4.1 內部方法調用 211
6.4.2 方法上下文探秘 213
6.4.3 重入(Reentrant)方法調用 213
6.4.4 通過關閉攔截器來關閉bijection 215
6.5 組件事件 216
6.5.1 通過組件觸發事件 216
6.5.2 定義事件觀察者 218
6.5.3 在頁面轉換中觸發事件 219
6.5.4 內建事件 220
6.6 自定義的方法攔截器 221
6.6.1 攔截器的利與弊 221
6.6.2 定義Seam攔截器 223
6.7 工廠和管理器組件 224
6.7.1 上下文變量@Factory 224
6.7.2 @Unwrap組件 230
6.8 小結 233

第三部分 Seam的狀態管理
第7章 Seam的工作單元:對話 236
7.1 學會辨別對話的狀態 236
7.1.1 重新定義工作單元 237
7.1.2 管理狀態的壓力 238
7.2 對話上下文 240
7.2.1 從HTTP會話中劃出工作空間 240
7.2.2 可以在對話中保存什麼數據 242
7.3 建立對話範圍 243
7.3.1 對話的狀態 243
7.3.2 啟動長期對話 246
7.3.3 讓對話繼續 252
7.3.4 將對象收集到對話中 253
7.3.5 終止長期對話 256
7.4 將對話擱置 258
7.4.1 放棄對話 258
7.4.2 創建嵌套對話 259
7.5 對話轉換 262
7.5.1 用對話作為工作空間 262
7.5.2 給對話一個說明 264
7.5.3 利用內建的對話轉換器 265
7.6 用頁面流驅動對話 270
7.6.1 構建頁面流 270
7.6.2 瞭解頁面流 271
7.6.3 推進頁面流 273
7.6.4 處理返回按鈕 275
7.7 特定的對話 276
7.7.1 生意開張 276
7.7.2 展示結果 277
7.8 小結 278

第8章 瞭解Java持久化 279
8.1 Java持久化原理 280
8.1.1 建立期望值 280
8.1.2 Java持久化的四大要素 280
8.2 實體和關係 281
8.2.1 映射元數據 282
8.2.2 傳遞性持久化 282
8.2.3 在持久層中引入註解 283
8.3 持久化單元 284
8.3.1 定義JCA數據源 284
8.3.2 持久化單元描述符 285
8.3.3 持久化管理器工廠 287
8.4 持久化管理器 287
8.4.1 獲得持久化管理器 287
8.4.2 持久化管理器的管理功能 288
8.4.3 設置持久化上下文的作用域 289
8.5 事務 289
8.5.1 事務API的分類 289
8.5.2 原子工作單元 290
8.5.3 ACID縮寫 291
8.6 管理企業中的持久化 292
8.6.1 擴展持久化上下文簡介 292
8.6.2 擴展持久化上下文的好處 293
8.7 在JPA或Hibernate中做出選擇 298
8.7.1 Hibernate和JPA之間的關係 298
8.7.2 Hibernate和JPA之間的區別 299
8.7.3 Seam的合成方法 299
8.8 小結 300

第9章 受Seam管理的持久化和事務 301
9.1 正確管理持久化上下文 301
9.1.1 尊重持久化管理器 302
9.1.2 管理擴展的持久化上下文 303
9.2 強化持久化管理器的能力 304
9.2.1 Seam的標準強化功能 304
9.2.2 讓Hibernate充分發揮 307
9.3 在Seam中構建持久化單元 309
9.3.1 Seam的持久化管理器工廠 309
9.3.2 受Seam管理的持久化上下文 311
9.3.3 通過JNDI共用持久化管理器工廠 313
9.3.4 在啟動時驗證持久化上下文 315
9.4 Seam的事務支持 316
9.4.1 全局事務 316
9.4.2 Seam的事務抽象層 317
9.4.3 控制受Seam管理的事務 319
9.4.4 應用程序事務 321
9.5 小結 324

第10章 快速開發Seam應用程序 325
10.1 框架中的框架 325
10.1.1 持久化API的包裝 326
10.1.2 持久化控制器 327
10.1.3 兩種用途 329
10.2 採用Home組件的有狀態CRUD 330
10.2.1 彌補Anemic Domain Model的不足 330
10.2.2 領域對象中引入Home 330
10.2.3 Home的應用 334
10.2.4 離開Home的風險 344
10.2.5 CRUD XML 349
10.3 提供反饋 351
10.3.1 自定義狀態消息 351
10.3.2 創建與i18n兼容的消息 352
10.3.3 事務成功事件 353
10.4 用Query組件進行更智能的查詢 354
10.4.1 創建結果集列表 355
10.4.2 對結果集分頁 357
10.4.3 同時刪除多個記錄 359
10.4.4 對結果集排序 360
10.4.5 對結果集添加限制 362
10.5 小結 367

第四部分 深入業務需求
第11章 保護Seam應用程序安全 370
11.1 啟動驗證 371
11.1.1 給用戶一個id 371 
11.1.2 用3個步驟實現驗證 372
11.1.3 概覽Seam的id管理 378
11.1.4 更「基礎的」驗證 379
11.2 保護頁面安全 381
11.2.1 JSF安全的挑戰 381
11.2.2 請求驗證 383
11.2.3 安全地服務頁面 387
11.3 基於角色的授權 388
11.3.1 表達限制 389
11.3.2 聲明基於角色的限制 391
11.4 利用Drools進行基於規則的授權 394
11.4.1 規則與角色 394
11.4.2 配置Drools 394
11.4.3 用Drools創建規則 396
11.4.4 自動偵測上下文 401
11.5 人機分離 403
11.5.1 CAPTCHA概覽 403
11.5.2 在表單中添加一個CAPTCHA問訊 403
11.6 小結 404

第12章 Ajax和JavaScript遠程處理 405
12.1 結合JSF使用Ajax 406
12.1.1 採用server-centric應用程序模型 406
12.1.2 Ajax4jsf和ICEfaces向JSF開啟了通信渠道 406
12.1.3 Seam在基於Ajax的JSF請求中的作用 410
12.2 部分提交表單 412
12.2.1 即時校驗 412
12.2.2 精通業務的校驗 414
12.2.3 協助用戶填寫表單 415
12.3 ICEfaces的Ajax Push 416
12.4 JavaScript與Seam的遠程處理 418
12.4.1 透明的Ajax 418
12.4.2 讓瀏覽器訪問Seam組件 420
12.4.3 調用服務器端組件 423
12.4.4 本地存根 426
12.5 對話的遠程處理調用 429
12.5.1 加入正在進行的對話 429
12.5.2 啟動對話 430
12.5.3 成批發送請求 431
12.6 響應GWT遠程調用 432
12.6.1 GWT整合簡介 432
12.6.2 準備遠程處理服務 432
12.6.3 通過Seam遠程處理GWT服務調用 433
12.7 小結 434

第13章 文件、豐富渲染和電子郵件支持 436
13.1 加載文件並渲染動態圖像 436
13.1.1 接受文件加載 437
13.1.2 從原始數據渲染圖像 439
13.2 用iText生成PDF 441
13.2.1 用UI組件對PDF進行排版 441
13.2.2 處理表格和單元格 445
13.2.3 添加顏色 448
13.2.4 優雅的失敗和友好的文件擴展名 448
13.2.5 提供動態文件 449
13.3 用JFreeChart輕鬆繪製圖表 451
13.3.1 圖表基礎知識 451
13.3.2 柱狀圖 452
13.3.3 線圖 453
13.3.4 餅狀圖 454
13.4 用Seam的方式構建電子郵件 455
13.4.1 發出第一條消息 455
13.4.2 在消息中附加其他因素 458
13.4.3 在Seam中構建JavaMail 461
13.4.4 發佈動態消息 464
13.5 用resource bundle定製UI 465
13.5.1 讓Seam使用正確的語言 465
13.5.2 主題 468
13.6 小結 470

附錄A Seam的準備工作 471
A.1 準備工作 471
A.1.1 與Java 5的兼容性 472
A.1.2 Java EE 5應用服務器 472
A.1.3 沒有(JavaServer)Faces 474
A.2 下載Seam發行包 475
A.2.1 Seam的模塊 475
A.2.2 諸多文件和範例 476
A.2.3 在雜亂中尋找seam-gen 476
A.3 seam-gen和Open 18範例應用程序 476
A.3.1 源代碼 476
A.3.2 H2數據庫 477
A.3.3 Apache Ant帶動了seam-gen 477
A.3.4 隨意選用RichFaces或ICEfaces 477
A.4 管理seam-gen工程中的類庫 478
A.5 添加Seam作為Maven 2依賴 478
參考文獻 480


我們接受以下的付款方式︰VISA、Mastercard、JCB 信用卡、PayPal、銀行轉帳。