《精通J2EE——Java企業級套用》是2004年清華大學出版社出版的圖書,作者是周立斌等。
基本介紹
- 中文名: 精通J2EE——Java企業級套用
- 作者:周立斌等
- 出版時間:2004年
- 出版社: 清華大學出版社
- ISBN: 9787302085966
- 定價:69.80 元
內容簡介,圖書目錄,
內容簡介
本書連貫集中地介紹了J2EE技術,涵蓋了用Java構建多層企業級應用程式的各個方面的知識——技術設計方法和設計模式。本書分為5個部分,第1部分是技術背景,介紹了EJB、Servlet和JSP等所依賴的J2EE或伺服器端底層技術。第2部分是EJB體系結構。第3部分是Servlet和JSP,它們構成了J2EE應用程式的表示層或Web層。第4部分是其他一些高級技術,包括J2EE事務、FJB安全性、Web服務和SVG。第5部分是設計。講解了J2EE應用程式的設計和Sun的J2EE模型目錄中的設計模式。本書適用於J2EE技術以更好地構建企業級套用的開發人員。
圖書目錄
第Ⅰ部分 技 術 背 景
第1章 使用J2EE的原因 1
1.1 引言 1
1.2 IT組織面臨的挑戰 2
1.3 企業級應用程式開發的需求 3
1.4 技術選擇 4
1.5 選擇Java 和J2EE的理由 4
1.6 警告說明 5
1.7 其他內容 6
1.8 參考文獻 7
第2章 分散式系統入門 8
2.1 分散式應用程式或系統的概念 8
2.2 構建分散式程式的理由 8
2.3 Java對分散式程式的作用 10
2.4 分散式對象系統 11
2.5 J2EE的作用 13
2.6 線上參考文獻 13
第3章 J2EE漫遊 14
3.1 引言 14
3.2 J2EE平台 14
3.3 J2EE技術漫遊 17
3.3.1 通信服務 18
3.3.2 通用服務 20
3.3.3 組件技術 22
3.4 參考文獻 24
第4章 Java和遠程方法調用 25
4.1 引言 25
4.2 遠程方法調用(RMI) 25
4.2.1 遠程接口 25
4.2.2 子類化伺服器類 26
4.2.3 運行rmic編譯器 29
4.2.4 啟動註冊表 29
4.3 RMIClient類 30
4.4 RMI的性能 32
4.5 參數傳遞 36
4.6 線上參考文獻 36
第5章 可激活的伺服器 37
5.1 引言 37
5.2 擴展RMI 37
5.3 實現可激活的伺服器 38
5.3.1 遠程接口 38
5.3.2 Client類 38
5.3.3 可激活的伺服器 39
5.3.4 伺服器設定 40
5.4 運行可激活的客戶機/伺服器 42
5.5 小結 44
5.6 線上參考文獻 44
第6章 JNDI 45
6.1 引言 45
6.2 使用JNDI的必需條件 46
6.3 LDAP 47
6.4 LDAP的功能 48
6.5 使用LDAP 49
6.6 使用JNDI 50
6.7 在LDAP中保存數據 52
6.8 JNDI、RMI和LDAP 55
6.9 小結 56
第7章 Java訊息服務(JMS) 57
7.1 引言 57
7.2 訊息伺服器和JMS 57
7.2.1 什麼是訊息服務 57
7.2.2 為什麼使用訊息服務 57
7.2.3 什麼是JMS 58
7.2.4 JMS API概念 58
7.3 點對點通信 58
7.4 發布/訂閱通信 59
7.5 JMS API 60
7.5.1 連線工廠 60
7.5.2 連線 61
7.5.3 會話 61
7.5.4 訊息 62
7.5.5 目標 64
7.5.6 訊息生產者 65
7.5.7 訊息消費者 66
7.6 點對點應用程式的開發步驟 66
7.6.1 發布目標 67
7.6.2 定義客戶端 67
7.6.3 定義接收訊息的客戶端 71
7.6.4 啟動訊息伺服器 72
7.6.5 編譯並啟動客戶端 73
7.7 發布/訂閱應用程式的開發步驟 74
7.7.1 發布主題 75
7.7.2 定義發布者客戶端 75
7.7.3 定義訂閱者客戶端 76
7.7.4 啟動訊息伺服器 77
7.7.5 編譯並啟動客戶端 77
7.8 其他的JMS特性 78
7.8.1 指定訊息的持久性 78
7.8.2 設定訊息優先權 78
7.8.3 定義訊息持續的時間 78
7.8.4 持久訂閱 79
7.8.5 主題訊息選擇器 79
7.8.6 客戶端驗證 79
7.8.7 事務 79
7.9 小結 79
7.10 線上參考文獻 80
第8章 Java、IDL和ORB 81
8.1 引言 81
8.2 CORBA 81
8.3 Java IDL 82
8.3.1 Java ORB 83
8.3.2 Java命名伺服器 83
8.3.3 將IDL轉化成Java 83
8.3.4 實現伺服器 85
8.3.5 實現客戶端 87
8.3.6 編譯伺服器和客戶端 88
8.3.7 運行應用程式 89
8.3.8 Java IDL和RMI 89
8.4 線上參考文獻 89
第9章 Java資料庫連線 90
9.1 引言 90
9.2 什麼是JDBC 90
9.3 驅動程式提供的內容 92
9.4 註冊驅動程式 92
9.5 打開連線 93
9.6 從資料庫中獲取數據 94
9.7 創建表 95
9.8 applet和資料庫 97
9.9 以批處理方式更新 97
9.10 可滾動和可更新的ResultSet 98
9.11 可更新的ResultSet 101
9.12 JDBC數據源 103
9.13 連線池 105
9.14 RowSet對象 106
9.15 JDBC元數據 109
9.15.1 DatabaseMetaData 109
9.15.2 ResultSetMetaData 110
9.16 線上參考文獻 111
9.17 參考文獻 111
第10章 XML和Java 112
10.1 引言 112
10.2 XML介紹 112
10.2.1 什麼是XML 112
10.2.2 XML文檔 113
10.2.3 XML辭彙表 115
10.2.4 使用DTD 116
10.3 XSL轉換 119
10.4 處理XML 121
10.5 JAXP API 121
10.6 SAX API 122
10.7 DOM API 128
10.8 載入XML文檔 131
10.9 在Java中創建XML文檔 135
10.10 在JAX中使用XSLT 137
第11章 JavaMail API:Mail在其中 141
11.1 引言 141
11.2 JavaMail API 141
11.3 安裝JavaMail 142
11.4 傳送Email 142
11.5 接收訊息 146
11.6 回復訊息 148
11.7 多部分的 MIME訊息 150
11.8 把原始文本加入回覆郵件 151
11.9 郵件轉發 152
11.10 傳送附屬檔案 153
11.11 傳送HTML 156
11.12 小結 157
11.13 線上參考文獻 157
第Ⅱ部分 EJB體系結構
第12章 EJB 體系結構 158
12.1 引言 158
12.2 EJB 伺服器的組成元素 159
12.3 EJB 組件的組成元素 160
12.3.1 本地接口和遠程接口 161
12.3.2 在“堅果殼”(指容器)中開發和部署EJB組件的過程 162
12.3.3 EJB 組件類和接口 163
12.4 從應用程式客戶機訪問EJB 166
12.5 參考文獻 167
第13章 無狀態會話EJB 168
13.1 引言 168
13.2 無狀態會話EJB 的生命周期 168
13.3 無狀態會話EJB的開發過程 171
13.4 業務邏輯接口 172
13.5 生命周期接口 173
13.6 組件類 174
13.6.1 Session Context 對象 175
13.6.2 為什麼組件類不“實現”業務或生命周期接口 176
13.7 部署描述符檔案 177
13.7.1 ejb-jar.xml 檔案 177
13.7.2 JBoss中的jboss.xml 檔案 179
13.8 部署EJB組件 180
13.9 從Java 應用程式客戶機訪問EJB 180
第14章 實體EJB:如何實現容器管理的實體EJB 184
14.1 引言 184
14.2 實體 EJB 生命周期 185
14.3 開發實體EJB的過程 188
14.4 業務邏輯接口 189
14.5 生命周期接口 191
14.5.1 Creator 方法 192
14.5.2 find方法 193
14.5.3 Home 方法 193
14.5.4 Select 方法 193
14.6 主鍵和主鍵類 194
14.7 組件類 197
14.8 部署描述符檔案 202
14.8.1 ejb-jar.xml檔案 202
14.8.2 JBoss jboss.xml檔案 204
14.8.3 JBoss jbosscmp-jdbc.xml 檔案 204
14.9 EJB 查詢語言 206
14.9.1 查詢語言語句 206
14.9.2 <query> 部署描述符 208
14.10 從Java應用程式客戶機中訪問EJB 209
14.11 容器管理關聯 211
14.11.1 在組件類中聲明容器管理關聯 212
14.11.2 關聯部署描述符 215
14.11.3 Jboss jbosscmp-jdbc.xml檔案 217
14.12 參考文獻 219
第15章 集成EJB 220
15.1 引言 220
15.2 BookStore EJB間的互動 220
15.3 環境命名上下文(ENC) 227
15.4 集成EJB時需要考慮的一些設計問題 231
15.4.1 作為界面的會話EJB 231
15.4.2 在EJB中使用JNDI 232
15.4.3 不用實體EJB的時候 232
15.4.4 組件類和業務邏輯接口一致性的編譯期檢查 234
15.4.5 通過使用bulk accessor/updator方法提高性能 235
15.5 Cart EJB程式清單 236
15.6 計時器服務 245
第16章 訊息驅動的EJB 248
16.1 引言 248
16.2 訊息驅動EJB的生命周期 248
16.3 組件類 249
16.4 部署描述符檔案 253
16.4.1 ejb-jar.xml檔案 253
16.4.2 ejb-jar.xml檔案(EJB 2.1) 255
16.4.3 JBoss的jboss.xml檔案 257
16.4.4 JBoss的 jboss-destinations-service.xml 檔案 258
16.4.5 連線到JMS主題的DebugMonitor 258
16.5 從其他的 EJB訪問MDB 263
第Ⅲ部分 Servlets和JSP
第17章 Java Web套用 274
17.1 引言 274
17.2 什麼是Servlet 274
17.3 Web 套用 274
17.4 Web套用的結構 275
17.5 Servlet的工作原理 276
17.6 為什麼使用servlet 277
17.7 Servlet API的結構 278
17.8 開發和部署Web套用的步驟 278
17.9 啟動Tomcat 283
17.10 第二個serlvet示例 284
17.11 選擇doGet還是doPost 287
17.12 Tomcat 288
17.13 小結 288
17.14 線上參考文獻 288
17.15 參考文獻 289
第18章 會話管理和生命周期監控 290
18.1 引言 290
18.2 會話管理 290
18.3 會話跟蹤 292
18.3.1 URL重寫 293
18.3.2 隱藏欄位 293
18.3.3 安全套接字層會話 293
18.3.4 Cookies 294
18.3.5 選擇會話跟蹤的方法 294
18.4 會話示例 294
18.5 更多的會話細節 296
18.6 會話狀態 297
18.7 會話生命周期監控 302
18.8 servlet上下文 302
18.9 ServletContext示例 304
18.10 servlet生命周期事件 307
18.11 參考文獻 309
第19章 JSP 310
19.1 引言 310
19.2 什麼是JSP 310
19.3 簡單的JSP 312
19.4 JSP的組件 313
19.4.1 指令 313
19.4.2 動作 314
19.4.3 隱式對象 314
19.4.4 JSP腳本 314
19.5 使JSP具有互動性 315
19.6 為什麼使用JSP 317
19.7 JSP的問題 318
第20章 JSP標記和隱式對象 320
20.1 引言 320
20.2 JSP標記 320
20.2.1 JSP指令 320
20.2.2 腳本元素 322
20.2.3 動作 325
20.3 隱式對象 327
20.4 作用域 327
第21章 JSP標記庫 330
21.1 引言 330
21.1 為什麼使用標記庫 330
21.3 關鍵概念 331
21.4 創建定製標記 332
21.5 Tag接口 332
21.6 創建標記庫 334
21.6.1 實現標記處理程式類 334
21.6.2 定義標記庫描述符 335
21.6.3 映射標記庫 336
21.6.4 導入標記庫 337
21.6.5 運行Web套用 337
21.7 為標記添加特性 338
21.8 包含正文內容 340
21.9 開發標記庫的原則 344
21.10 引入腳本變數 344
21.11 嵌套標記 345
21.12 標記驗證 345
21.13 處理標記異常 346
21.14 JSTL 347
21.15 小結 349
21.16 線上參考文獻 349
第22章 請求調度 350
22.1 引言 350
22.2 Servlet Chaining 350
22.3 請求調度 351
22.4 獲取RequestDispatcher 352
22.4.1 轉發請求 354
22.4.2 轉發的示例 354
22.4.3 通過請求調度實現包含 359
第23章 過濾 362
23.1 引言 362
23.2 什麼是過濾器 362
23.3 過濾器能做些什麼 363
23.4 過濾器API 364
23.5 實現一個簡單的過濾器 366
23.6 日誌過濾器示例 370
23.7 包裝請求和回響對象 372
23.8 過濾XML來生成HTML 373
第24章 Web應用程式安全化 380
24.1 引言 380
24.2 傳統的方法 380
24.2.1 使用Web伺服器 380
24.2.2 DIY 381
24.3 容器管理的安全性 382
24.3.1 定義用戶 383
24.3.2 配置對Web資源的訪問 384
24.3.3 身份驗證的4種類型 385
24.4 程式化的安全性 389
24.5 配置JSP檔案 391
24.5.1 啟用或禁用EL評估 391
24.5.2 啟用或禁用腳本 391
24.5.3 頁面編碼的聲明 392
24.5.4 定義隱式包含 392
24.6 小結 393
24.7 線上參考文獻 393
第25章 部署配置 394
25.1 引言 394
25.2 上下文初始化 394
25.3 servlet初始化 395
25.4 servlet載入 396
25.5 會話配置 396
25.6 歡迎頁面 397
25.7 錯誤頁面 397
25.8 MIME映射 399
25.9 分散式應用程式 399
25.10 J2EE 1.3中的部署描述符 400
25.11 在J2SE 1.4中部署J2EE應用程式 401
第26章 從Servlet/JSP中訪問EJB 404
26.1 引言 404
26.2 EJB的客戶端訪問 404
26.3 從Web應用程式訪問EJB 405
26.3.1 Web歸檔 405
26.3.2 企業級歸檔 407
26.4 快取EJB引用 408
26.5 示例 409
26.6 小結 413
第Ⅳ部分 其 他 技 術
第27章 部署要點:事務 414
27.1 引言 414
27.2 事務的概念 414
27.3 EJB伺服器支持的事務類型 417
27.4 容器管理的事務 417
27.4.1 Required特性 418
27.4.2 NotSupported特性 418
27.4.3 Supports特性 419
27.4.4 RequiresNew特性 419
27.4.5 Mandatory特性 420
27.4.6 Never特性 420
27.4.7 事務部署描述符 420
27.5 Bean管理的事務 422
27.5.1 User-Transaction接口 423
27.5.2 UserTransaction對象的獲取和使用 424
27.6 事務隔離等級 425
27.6.1 鎖模式 428
27.6.2 指定隔離等級 429
27.7 事務及異常事件 429
27.8 參考文獻 429
第28章 部署要點:安全性 430
28.1 引言 430
28.2 安全概念和體系結構 430
28.2.1 身份驗證 432
28.2.2 訪問控制(授權) 433
28.3 EJB容器管理的安全性 433
28.3.1 聲明的安全性 433
28.3.2 程式化安全性 437
28.3.3 利益相關者的責任 438
28.4 Java身份驗證和授權服務(JAAS)的使用實例 438
28.5 參考文獻 443
第29章 Bean管理的持久性 444
29.1 引言 444
29.2 再談實體EJB生命周期 444
29.3 Bookltem EJB:BMP版 445
29.4 部署描述符檔案 456
29.5 從客戶端訪問BookItem BMP實體 458
第30章 有狀態會話EJB 459
30.1 引言 459
30.2 有狀態會話EJB的生命周期 460
30.3 實現類中可容許的實例變數的規則 461
30.4 有狀態會話EJB的開發過程 461
30.4.1 Purchase EJB的業務邏輯接口 462
30.4.2 Purchase EJB的生命周期接口 463
30.4.3 Purchase EJB組件類 463
30.5 使用SessionSynchronization接口的事務同步化 468
30.6 部署描述符檔案 469
第31章 J2EE連線器體系結構 470
31.1 引言 470
31.2 體系結構概述 471
31.3 連線服務 472
31.4 事務服務 473
31.5 安全服務 474
31.6 通用客戶端接口(CCI) 475
31.7 部署資源適配器 479
31.8 參考文獻 480
第32章 從Java到SVG 481
32.1 引言 481
32.2 SVG的概念 481
32.2.1 SVG的優點 481
32.2.2 SVG的缺點 482
32.3.3 獲得SVG查看器 482
32.2.4 SVG的形式 482
32.3 使用Java創建SVG 483
32.3.1 使用DOM API 483
32.3.2 將XML轉換成SVG 485
32.4 Batik的使用 487
32.4.1 SVG查看器 487
32.4.2 SVG光柵器 487
32.4.3 SVG生成器:從Java圖形生成SVG內容 487
32.4.4 SwingDraw程式 489
32.5 Servlet和JSP 490
32.6 小結 491
32.7 線上參考文獻 491
32.8 附錄:SVGCreator.java 491
第33章 Web服務 494
33.1 引言 494
33.2 Web服務的概念 494
32.2.1 SOAP的概念 494
33.2.2 帶附屬檔案的SOAP 496
33.2.3 WSDL的概念 496
33.2.4 UDDI的概念 498
33.3 Axis的概念 498
33.4 基於Axis Web服務的客戶端 498
33.5 創建簡單的Web服務驅動程式 502
33.5.1 為Web服務設定Tomcat 502
33.5.2 創建簡單的Web服務 502
33.5.3 配置Web服務 504
33.5.4 WSDL的作用 506
33.6 Java Web服務開發包 509
33.7 Java的帶附屬檔案SOAP API 510
33.8 Web服務和J2EE 510
33.9 小結 513
33.10 參考文獻 514
第Ⅴ部分 設 計
第34章 J2EE模式 515
34.1 引言 515
34.2 模式背後的動機 516
34.3 設計模式 517
34.3.1 什麼是設計模式 517
34.3.2 設計模式不是什麼 517
34.3.3 體系結構模式 517
34.3.4 歸類模式 518
34.3.5 何時使用模式 519
34.3.6 設計模式的優點及限制 519
34.4 什麼是J2EE設計模式 519
34.5 J2EE模式目錄 520
34.6 FrontController模式 521
34.6.1 上下文 521
34.6.2 問題 521
34.6.3 強制性 521
34.6.4 解決方案 522
34.6.5 策略 523
34.6.6 結果 523
34.6.7 相關模式 523
34.7 請求-事件-調度程式模式 523
34.7.1 上下文 523
34.7.2 問題 524
34.7.3 強制性 524
34.7.4 解決方案 524
34.7.5 策略 525
34.7.6 結果 527
34.7.7 相關模式 528
34.8 基於J2EE的模型-視圖-控制器 528
34.8.1 上下文 528
34.8.2 問題 528
34.8.3 強制性 528
34.8.4 解決方案 528
34.8.5 策略 530
34.8.6 結果 531
34.8.7 相關模式 531
34.9 小結 531
34.10 進階閱讀材料 531
34.11 參考文獻 532
第35章 故障跟蹤J2EE案例研究 533
35.1 引言 533
35.2 故障跟蹤套用 533
35.2.1 變更請求 533
35.2.2 問題報告 535
35.3 使用故障跟蹤系統 536
35.4 故障跟蹤系統的設計 539
35.5 小結和結論 546