經典Java EE企業套用實戰

經典Java EE企業套用實戰

《經典JavaEE企業套用實戰》是2010年電子工業出版社出版的圖書,作者是李剛。

基本介紹

  • 書名:經典Java EE企業套用實戰
  • 作者:李剛
  • ISBN:9787121115349
  • 類別:開發技術>Java EE
  • 頁數:659
  • 定價:79.00元
  • 出版社:電子工業出版社
  • 出版時間:2010 年8月
內容介紹,作者介紹,作品目錄,

內容介紹

本書是《輕量級Java EE企業套用實戰》的姊妹篇,《輕量級Java EE企業套用實戰》主要介紹以Spring+Hibernate為基礎的Java EE套用;本書則主要介紹以EJB 3+JPA為基礎的Java EE套用。EJB 3、JPA規範都屬於Sun公司所制訂的Java EE規範,因此把基於EJB 3+JPA的套用稱為經典Java EE架構,目前這種架構在Java開發領域也有極大的市場占有率。
本書介紹了Java EE規範的三大主要規範JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分則包含Session Bean、Message Driven Bean的詳細介紹。所使用的套用伺服器是JBoss 5.1和WebLogic 11g,詳細介紹了這兩種套用伺服器的安裝和使用,以及如何在兩大主流伺服器上安裝、部署Java EE套用。
本書內容主要包括三部分,第一部分介紹Java EE開發的基礎知識,以及如何搭建開發環境,包括安裝JBoss、WebLogic套用伺服器,以及如何使用SVN、NetBeans等。第二部分詳細講解了JSF RI、JTA、JNDI、RMI、JMS、JavaMail、EJB 3的Session Bean、Message Driven Bean、JPA、JAX-WS 2、JAAS等Java EE知識,這部分知識以JSF+EJB 3+JPA整合開發為重點,通過使用NetBeans IDE工具上手,帶領讀者逐步深入JSF+EJB 3+JPA整合開發。這部分內容是筆者講授“瘋狂Java實訓”的培訓講義,也是本書的重點部分。第三部分提供了一個JSF+EJB 3+ JPA整合開發的項目:電子拍賣系統。這個項目包括5個實體,這5個實體之間具有複雜的關聯關係,而且業務邏輯也相對複雜,希望讓讀者理論聯繫實際,真正將JSF+EJB 3+JPA整合真正運用到實際開發中。該案例採用目前最流行、最規範的Java EE架構,整個套用分為JPA實體層、EAO層、業務邏輯層、MVC層和視圖層,各層之間分層清晰,層與層之間以松耦合的方法組織在一起。該案例既提供了IDE無關的、基於Ant管理的項目源碼,也提供了基於NetBeans IDE的項目源碼,最大限度地滿足讀者的需求。
本書沒有介紹JSP、Servlet等Java Web的相關內容,但這些知識是閱讀本書的基礎,如果讀者還沒有相關知識,建議先閱讀《輕量級Java EE企業套用實戰》中相關知識。如果讀者在閱讀此書時遇到了技術難題,可登錄http://www.crazyit.org發帖,筆者將會及時予以解答。
閱讀本書之前,建議先認真閱讀筆者所著的《瘋狂Java講義》一書。本書適合有較好的Java編程基礎,或有較好的JSP、Servlet基礎的讀者閱讀。尤其適合於對JSF、EJB 3、JPA了解不夠深入,或對JSF+EJB 3+JPA整合開發不太熟悉的開發人員閱讀。

作者介紹

作者從事過近10年的J2EE套用開發,曾任LITEON公司的J2EE技術主管,負責該公司的企業信息平台的架構設計;曾任廣州電信、廣東龍泉科技等公司的技術培訓導師;2007年3月26日的《電腦報》專訪人物;現任新東方IT培訓廣州中心軟體教學總監,併兼任廣東技術師範學院計算機科學系的兼職副教授。培訓的學生已在華為、立信、中企動力、京華網路等公司就職。 已出版《Spring2.0寶典》、《基於J2EE的Ajax寶典》、《輕量級J2EE企業套用實戰》等專著

作品目錄

第0章 學習Java的正確方法 1
0.1 我適合不適合編程 2
0.2 走出象牙塔 4
0.3 學習Java,應該如此瘋狂 7
第1篇 基礎知識
第1章 經典Java EE套用和開發環境 9
1.1 經典Java EE套用概述 10
1.1.1 Java EE 6相關規範 10
1.1.2 經典Java EE套用的分層模型 11
1.1.3 經典Java EE套用的組件 13
1.1.4 經典Java EE套用架構的優勢 13
1.1.5 常用的企業伺服器 14
1.2 經典Java EE套用相關技術 14
1.2.1 JSP、Servlet和JavaBean及替代技術 14
1.2.2 JSF及替代技術 15
1.2.3 EJB組件技術簡介 15
1.3 JBoss的下載和安裝 15
1.3.1 下載和安裝JBoss伺服器 16
1.3.2 配置JBoss的服務連線埠 18
1.3.3 進入控制台 19
.1.3.4 部署Web套用 22
1.4 WebLogic的下載和安裝 24
1.4.1 WebLogic的下載和安裝 24
1.4.2 WebLogic的基本配置 25
1.4.3 修改WebLogic的服務連線埠 29
1.4.4 部署Web套用 30
1.5 NetBeans的安裝和使用 32
1.5.1 NetBeans的下載和安裝 32
1.5.2 使用NetBeans開發Java EE套用 33
1.5.3 打開NetBeans項目 36
1.5.4 導入Eclipse項目 37
1.6 使用SVN進行協作開發 38
1.6.1 下載和安裝SVN伺服器 39
1.6.2 配置SVN資源庫 39
1.6.3 下載和安裝SVN客戶端 41
1.6.4 發布項目到伺服器 41
1.6.5 從伺服器下載項目 42
1.6.6 提交(Commit)修改 42
1.6.7 同步(Update)本地檔案 43
1.6.8 添加檔案和目錄 44
1.6.9 刪除檔案和目錄 45
1.6.10 查看檔案或目錄的版本變革 45
1.6.11 從以前版本重新開始 46
1.6.12 創建分支 46
1.6.13 沿著分支開發 46
1.6.14 合併分支 47
1.6.15 使用NetBeans作為SVN客戶端 48
1.7 本章小結 50
第2篇 整合開發
第2章 JSF的基本用法 51
2.1 MVC和JSF 52
2.1.1 MVC和常見MVC框架 52
2.1.2 JSF的優勢 56
2.2 下載和安裝JSF 57
2.3 JSF使用入門 60
2.3.1 從輸入頁面開始 60
2.3.2 開發託管Bean 61
2.3.3 定義導航規則 63
2.4 解讀JSF配置 65
2.4.1 配置核心控制器(FacesServlet) 65
2.4.2 JSF配置檔案結構 68
2.5 託管Bean和表達式語言 69
2.5.1 託管Bean的屬性和表達式語言 69
2.5.2 託管Bean的方法 78
2.5.3 託管Bean的分類 80
2.5.4 初始化託管Bean的屬性 85
2.5.5 通過FacesContext訪問套用環境 89
2.6 導航模型 91
2.6.1 靜態導航 93
2.6.2 動態導航 93
2.7 使用UI標籤創建視圖頁面 94
2.7.1 UI標籤概述 94
2.7.2 UI標籤的通用屬性 97
2.7.3 表單相關標籤 98
2.7.4 其他標籤 103
2.8 JSF的運行流程和生命周期 109
2.8.1 恢復視圖階段 110
2.8.2 套用請求值階段 110
2.8.3 處理輸入校驗階段 111
2.8.4 更新模型的值階段 111
2.8.5 調用套用階段 111
2.8.6 生成回響階段 111
2.9 利用JSF的訊息 112
2.10 本章小結 116
第3章 深入使用JSF 117
3.1 JSF事件機制 118
3.1.1 Java事件模型概述 118
3.1.2 Java事件模型示例 119
3.1.3 JSF事件模型 120
3.1.4 Action事件 122
3.1.5 值改變事件 125
3.1.6 生命周期事件 128
3.1.7 將監聽器綁定到Bean屬性 130
3.2 JSF的國際化支持 132
3.2.1 載入國際化資源檔案 132
3.2.2 使用國際化訊息 134
3.2.3 動態數據國際化 137
3.2.4 讓用戶選擇語言 142
3.3 使用轉換器完成類型轉換 143
3.3.1 轉換器概述、用途 144
3.3.2 JSF內建轉換器 144
3.3.3 使用轉換器 145
3.3.4 轉換失敗後的錯誤訊息 149
3.4 自定義轉換器 154
3.4.1 實現轉換器類 154
3.4.2 註冊轉換器 156
3.4.3 使用自定義轉換器 159
3.4.4 綁定到Bean屬性的轉換器 159
3.5 使用驗證器進行輸入校驗 161
3.5.1 輸入校驗概述 161
3.5.2 JSF內置校驗器 162
3.5.3 校驗失敗後的錯誤訊息 163
3.5.4 必填校驗器 165
3.6 自定義校驗器 166
3.6.1 開發自定義校驗器 166
3.6.2 註冊校驗器 167
3.6.3 使用自定義校驗器 168
3.6.4 為自定義校驗器開發專用標籤 169
3.6.5 使用託管Bean的方法執行校驗 173
3.6.6 綁定到Bean屬性的校驗器 175
3.7 本章小結 177
第4章 利用JDBC和JTA訪問資料庫和管理全局事務 178
4.1 JDBC和容器管理的數據源 179
4.1.1 JDBC概述 179
4.1.2 使用JDBC執行資料庫訪問 180
4.1.3 使用WebLogic伺服器管理的數據源 182
4.1.4 使用JBoss伺服器管理的數據源 187
4.2 事務和JTA 191
4.2.1 事務的基本概念 191
4.2.2 分散式事務處理、XA規範和
2PC協定 192
4.2.3 使用JTA全局事務保證多資料庫的一致性 193
4.3 事務隔離、傳播屬性的設定 198
4.3.1 並發訪問和隔離 198
4.3.2 事務屬性 199
4.4 EJB的事務管理 201
4.4.1 容器管理事務(CMT) 201
4.4.2 Bean管理事務(BMT) 201
4.5 事務逾時設定 201
4.6 本章小結 203
第5章 JNDI和遠程方法調用 204
5.1 JNDI的概念 205
5.1.1 命名服務 205
5.1.2 目錄服務 206
5.1.3 JNDI的優點 206
5.2 JNDI編程入門 207
5.2.1 檔案系統的命名服務 207
5.2.2 JNDI編程 208
5.3 伺服器提供的JNDI支持 212
5.3.1 WebLogic的JNDI支持 212
5.3.2 JBoss的JNDI支持 215
5.4 RMI概述 216
5.4.1 RMI的相關概念 216
5.4.2 RMI的作用和意義 217
5.5 RMI編程 217
5.5.1 開發RMI伺服器 217
5.5.2 開發RMI客戶端 220
5.5.3 RMI的基本原理 220
5.6 同時作為客戶端和伺服器的RMI程式 222
5.6.1 開發客戶端程式 222
5.6.2 開發伺服器端程式 223
5.7 本章小結 225
第6章 利用JMS實現企業訊息處理 226
6.1 面向訊息的架構和JMS概述 227
6.1.1 面向訊息的套用架構 227
6.1.2 JMS的基礎知識和優勢 228
6.1.3 JMS的兩個重要版本 229
6.2 PTP類型的JMS 230
6.2.1 配置PTP的JMS伺服器 231
6.2.2 PTP訊息的傳送 241
6.2.3 PTP訊息的同步接收 244
6.2.4 PTP訊息的異步接收 246
6.3 Pub-Sub類型的JMS 248
6.3.1 配置Pub-Sub模型的JMS伺服器 248
6.3.2 訊息的生產、消費 250
6.3.3 可靠的JMS訂閱 251
6.4 JMS訊息 253
6.4.1 JMS訊息類型 253
6.4.2 JMS訊息頭和訊息屬性 253
6.4.3 重用訊息對象 254
6.4.4 JMS傳遞方式和有效時間 255
6.4.5 設定訊息的優先權 256
6.4.6 訊息的確認方式 256
6.4.7 訊息選擇器 257
6.4.8 訊息的臨時目的 261
6.5 使用佇列瀏覽器查看全部訊息 264
6.6 JMS和事務 265
6.6.1 使用事務性Session 265
6.6.2 利用JTA全局事務 267
6.7 JMS伺服器的異常監聽 268
6.8 JMS集群 269
6.9 本章小結 270
第7章 利用JavaMail實現E-mail 271
7.1 E-mail簡介 272
7.1.1 SMTP協定簡介 272
7.1.2 POP3協定簡介 272
7.1.3 IMAP4協定簡介 273
7.1.4 E-mail的用途 273
7.2 JavaMail介紹 274
7.2.1 JavaMail下載和安裝 274
7.2.2 JavaMail的常用API 275
7.2.3 使用JavaMail傳送郵件 277
7.2.4 使用JavaMail接收郵件 281
7.3 套用伺服器的JavaMail支持 287
7.3.1 在WebLogic中配置JavaMail 288
7.3.2 通過WebLogic的郵件支持來傳送郵件 290
7.3.3 在JBoss中配置JavaMail 292
7.4 本章小結 294
第8章 會話EJB 295
8.1 EJB概述 296
8.1.1 EJB的概念和意義 296
8.1.2 EJB的發展歷史 298
8.1.3 EJB的優勢和使用場景 299
8.2 EJB的分類 301
8.2.1 Session Bean的概念和作用 302
8.2.2 Message Driven Bean的概念和作用 303
8.2.3 實體和JPA 303
8.3 開發無狀態的Session Bean 304
8.3.1 開發遠程調用的無狀態Session Bean 304
8.3.2 開發本地調用的無狀態Session Bean 311
8.4 發布Session Bean 314
8.4.1 打包EJB-JAR 315
8.4.2 Annotation與部署描述檔案 315
8.5 開發有狀態的Session Bean 318
8.6 Session Bean的生命周期 321
8.6.1 無狀態Session Bean的生命周期 321
8.6.2 有狀態Session Bean的生命周期 322
8.6.3 定製Session Bean的生命周期行為 323
8.7 在Session Bean中使用事務 327
8.7.1 容器管理事務 327
8.7.2 Bean管理事務 330
8.8 攔截器 332
8.9 依賴注入 335
8.9.1 EJB注入 336
8.9.2 資源注入 339
8.10 配置EJB引用 340
8.11 使用計時器進行任務調度 342
8.12 本章小結 345
第9章 訊息驅動EJB 346
9.1 JMS和EJB 347
9.1.1 為什麼使用MDB 347
9.1.2 使用MDB的設計原則 348
9.2 使用訊息驅動Bean 349
9.2.1 使用@MessageDriven和@ActivationConfigProperty 350
9.2.2 實現MessageListener 352
9.2.3 MDB的生命周期 353
9.2.4 MDB中的依賴注入 356
9.2.5 事務管理和異常處理 359
9.3 使用NetBeans開發EJB 359
9.3.1 使用NetBeans開發Session Bean 359
9.3.2 使用NetBeans開發MDB 362
9.4 本章小結 363
第10章 Java持久化API(JPA) 364
10.1 實體簡介 365
10.1.1 對象/關係資料庫映射(ORM) 365
10.1.2 JPA的映射規則 367
10.1.3 JPA規範簡介 368
10.2 實體入門 368
10.2.1 開發實體 369
10.2.2 在Java SE環境下使用Hibernate JPA實現 370
10.2.3 在Java SE環境下使用TopLink JPA實現 374
10.2.4 在Java SE環境下使用EntityManager 377
10.2.5 使用orm.xml管理O/R映射 379
10.3 理解實體 382
10.3.1 持久化上下文和持久化單元 382
10.3.2 實體類的要求 382
10.3.3 實體的狀態 383
10.3.4 管理實體的方法 384
10.4 實體的基本映射 387
10.4.1 映射實體類的屬性 387
10.4.2 將實體映射到多個表 394
10.4.3 映射複合類型的屬性 396
10.4.4 映射實體類的主鍵 398
10.5 關聯關係映射 402
10.5.1 單向N-1關聯 403
10.5.2 單向1-1關聯 406
10.5.3 單向1-N關聯 409
10.5.4 單向N-N關聯 411
10.5.5 雙向1-1關聯 414
10.5.6 雙向1-N關聯 417
10.5.7 雙向N-N關聯 420
10.5.8 使用Map集合記錄關聯實體 423
10.5.9 對關聯實體進行排序 424
10.6 繼承關係映射 426
10.6.1 整個類層次對應一張表的映射策略 427
10.6.2 連線子類的映射策略 430
10.6.3 每個具體類對應一張表的映射策略 434
10.7 使用抽象實體和非實體父類 436
10.7.1 抽象實體 436
10.7.2 非實體父類 438
10.7.3 重定義子類實體的外鍵列 440
10.8 實體的生命周期和監聽器 444
10.8.1 實體的生命周期與回調事件 444
10.8.2 使用專門的監聽器實現回調 448
10.8.3 為全部實體配置默認監聽器 450
10.8.4 排除監聽器 452
10.9 本章小結 455
第11章 JPA的查詢支持 456
11.1 查詢API 457
11.1.1 面向對象的JPQL 457
11.1.2 查詢API簡介 457
11.2 執行查詢 459
11.2.1 使用Query創建查詢 459
11.2.2 設定查詢參數 459
11.2.3 取得查詢結果 460
11.3 JPQL語法 461
11.3.1 使用from子句 462
11.3.2 使用select子句 463
11.3.3 查詢部分屬性 463
11.3.4 查詢中使用構造器 464
11.3.5 使用distinct排除相同的記錄 465
11.3.6 where子句和條件表達式 466
11.3.7 使用JPQL函式 466
11.3.8 多態查詢 467
11.3.9 關聯和連線 469
11.3.10 使用order by進行結果排序 473
11.3.11 JPQL查詢的聚集函式 473
11.3.12 使用group by進行分組 474
11.3.13 結果集分頁 475
11.3.14 使用子查詢 475
11.3.15 命名查詢 476
11.4 批量更新和批量刪除 478
11.4.1 批量更新 479
11.4.2 批量刪除 480
11.5 原生SQL查詢 481
11.5.1 使用原生SQL查詢 481
11.5.2 結果集映射和實體查詢 482
11.5.3 使用命名的原生SQL查詢 486
11.5.4 調用存儲過程 488
11.6 本章小結 490
第12章 Web層和EJB的整合 491
12.1 Java EE套用的架構 492
12.1.1 SSH架構的複習和套用架構的思考 492
12.1.2 MVC層和業務層整合 494
12.1.3 DAO模式和EAO模式 495
12.1.4 使用Session Facade模式 499
12.2 從Web層訪問Session Bean 500
12.2.1 使用依賴注入訪問無狀態Session Bean 501
12.2.2 通過EJB引用訪問有狀態Session Bean 507
12.2.3 在工具類中調用Session Bean 509
12.3 在Web層使用JPA 511
12.3.1 使用容器管理的EntityManager 512
12.3.2 在容器內使用應用程式管理的EntityManager 516
12.3.3 通過ThreadLocal在容器外使用安全的EntityManager 518
12.4 基於JBoss的JSF+EJB 3+JPA整合 522
12.4.1 開發JPA實體 522
12.4.2 開發EAO對象 524
12.4.3 開發業務邏輯組件 526
12.4.4 定義JSF的託管Bean來處理請求 527
12.5 基於WebLogic的Struts 2+EJB 3+JPA整合 531
12.5.1 開發實體並配置持久化單元 531
12.5.2 開發EAO組件和業務邏輯組件 532
12.5.3 配置EJB引用 532
12.5.4 定義Action來處理用戶請求 532
12.6 本章小結 536
第13章 EJB和Web Service 537
13.1 Web Service概述 538
13.1.1 Web Service概述 538
13.1.2 Web Service平台概述 539
13.1.3 Web Service的廣泛套用 542
13.2 JAX-WS:Java EE 5 Web Service平台 543
13.2.1 Java EE的Web Service支持 543
13.2.2 為什麼選擇EJB開發Web Service 544
13.3 使用JAX-WS 2.0開發Web Service 545
13.3.1 使用@WebService 545
13.3.2 使用@WebMethod 551
13.3.3 使用@SOAPBinding指定Web Service風格 553
13.3.4 使用@WebParam 555
13.3.5 使用@WebResult 556
13.3.6 使用@OneWay 558
13.4 客戶端調用Web Service 558
13.5 本章小結 559
第14章 利用JAAS開發安全的套用 560
14.1 JAAS概述 561
14.1.1 Java EE套用的安全概述 561
14.1.2 安全域、用戶、組和角色概念 561
14.1.3 JAAS的基本流程 563
14.2 管理伺服器的用戶和組 565
14.2.1 管理WebLogic伺服器上的用戶和組 565
14.2.2 管理JBoss伺服器上的用戶和角色 573
14.2.3 使用RDBMS管理Jboss伺服器上的用戶和角色 574
14.3 開發安全的Web套用 576
14.3.1 聲明安全性 576
14.3.2 映射安全形色 579
14.3.3 基於JBoss伺服器的表單登錄 580
14.3.4 基於WebLogic伺服器的安全形色映射 583
14.3.5 基於WebLogic伺服器的表單登錄 583
14.3.6 Web套用中編程式安全 584
14.4 開發安全的Java EE套用 585
14.4.1 為EJB聲明安全性 585
14.4.2 套用客戶端訪問被保護的方法 587
14.4.3 使用Web組件調用EJB被保護的方法 588
14.4.4 EJB中編程式安全 592
14.5 使用SSL建立安全連線 592
14.5.1 SSL基礎知識 593
14.5.2 安裝和配置SSL支持 593
14.5.3 在配置描述符中指定安全連線 595
14.6 本章小結 597
第3篇 套用實踐
第15章 電子拍賣系統 598
15.1 系統功能簡介和架構設計 599
15.1.1 系統功能簡介 599
15.1.2 系統架構設計 599
15.2 持久層設計 600
15.2.1 系統實體 601
15.2.2 系統E-R圖和數據表 601
15.2.3 實現JPA 實體 603
15.2.4 管理持久化單元 612
15.3 實現系統EAO層 614
15.3.1 實現EAO基類 615
15.3.2 實現系統EAO組件 618
15.4 實現業務邏輯層 622
15.4.1 定義業務邏輯組件接口 622
15.4.2 依賴注入EAO組件 624
15.4.3 業務邏輯組件中的異常處理 625
15.4.4 處理用戶競價 627
15.4.5 判斷拍賣物品狀態 631
15.4.6 事務管理 633
15.5 實現系統Web層 633
15.5.1 安裝JSF 633
15.5.2 處理用戶登錄 634
15.5.3 圖形驗證碼 639
15.5.4 登錄控制 642
15.5.5 添加物品 643
15.5.6 處理用戶競價 650
15.6 使用SiteMesh頁面裝飾 656
15.6.1 在Web套用中安裝SiteMesh 656
15.6.2 定義頁面裝飾 657
15.7 本章小結 659

相關詞條

熱門詞條

聯絡我們