第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
· · · · · · (
收起)