第一周課程 J2EE和EJB的簡介
第1天課程 挑戰(zhàn)N層開發(fā) 12
1.1 單層程序的開發(fā) 12
1.2 向二層開發(fā)進軍 13
1.3 用模塊簡化復雜性 15
1.3.1 組件技術 16
1.3.2 模塊化的好處 16
1.4 三層方案的優(yōu)勢 16
1.5 企業(yè)計算模塊 17
1.5.1 生命周期 17
1.5.2 持久性 17
1.5.3 命名 18
1.5.4 事務 18
1.6 Java 2企業(yè)版(J2EE) 18
1.6.1 組件和容器 19
1.6.2 J2EE標準服務 19
1.6.3 J2EE藍圖 10
1.6.4 J2EE兼容性測試套件 11
1.7 J2EE的發(fā)展前景 12
1.8 小結 12
1.9 問與答 12
1.10 練習 13
第2天課程 J2EE平臺和角色 14
2.1 再談J2EE平臺 14
2.2 使用Sun微系統的J2EE SDK 15
2.2.1 安裝J2EE SDK 1.3 15
2.2.2 啟動J2EE引用實現(RI) 17
2.2.3 解決J2EE和云景數據庫服務器啟動時的常見問題 19
2.2.4 關閉J2EE RI和云景數據庫服務器 21
2.2.5 本書中涉及的軟件 21
2.3 了解層和組件的概念 22
2.3.1 業(yè)務層 22
2.3.2 表達層 25
2.3.3 組件:以Web應用為中心 26
2.3.4 客戶層 28
2.3.5 獨立的客戶端 31
2.4 了解容器 32
2.5 了解容器為組件提供的服務 34
2.5.1 超文本傳輸協議(HTTP) 34
2.5.2 安全套接層超文本傳輸協議(HTTPS) 34
2.5.3 Java數據庫連接(JDBC) 34
2.5.4 Java事務API(JTA) 34
2.5.5 Java認證和授權服務(JAAS) 35
2.5.6 用于解析XML的Java API(JAXP) 35
2.5.7 Java命名和目錄接口(JNDI) 35
2.5.8 JavaBean激活框架(JAF) 35
2.5.9 JavaMail 36
2.5.10 Java消息服務(JMS) 36
2.5.11 Java接口定義語言(Java IDL) 36
2.5.12 基于IIOP協議的遠程方法調用(RMI-IIOP) 36
2.5.13 連接器體系結構 37
2.6 J2EE平臺上的角色簡介 37
2.6.1 J2EE產品供應商 37
2.6.2 應用程序組件供應商 38
2.6.3 應用程序組裝者 38
2.6.4 應用程序部署者 38
2.6.5 系統管理員 38
2.6.6 工具供應商 38
2.6.7 J2EE工具發(fā)展前景 39
2.7 打包和部署J2EE應用程序 39
2.7.1 J2EE應用程序 40
2.7.2 將模塊分解為組件 41
2.8 小結 42
2.9 問與答 42
2.10 練習——學習實例 43
2.10.1 求職代理 43
2.10.2 使用求職代理實例 43
2.10.3 熟能生巧 45
2.10.4 學習實例在光盤中的目錄 46
2.10.5 安裝實例數據庫 46
第3天課程 命名和目錄服務 49
3.1 命名和目錄服務 49
3.2 為什么使用命名服務 50
3.3 JNDI是什么 50
3.4 常見命名服務 50
3.5 命名約定 51
3.6 使用JNDI 51
3.7 獲得一個初始環(huán)境 52
3.8 初始環(huán)境命名異?!?3
3.8.1 定義JNDI服務 53
3.8.2 JNDI屬性文件 54
3.8.3 應用程序屬性 55
3.8.4 Applet參數 55
3.8.5 硬編碼的屬性 55
3.9 JNDI對象綁定 56
3.9.1 對象綁定 56
3.9.2 綁定時的常見問題 56
3.9.3 名字持久性 57
3.9.4 重綁定對象 57
3.9.5 解除對象綁定 57
3.9.6 對象重命名 58
3.10 JNDI名字查找 58
3.10.1 改變環(huán)境參數 58
3.10.2 定位RMI-IIOP對象 59
3.11 環(huán)境參數 60
3.11.1 環(huán)境參數列表 60
3.11.2 創(chuàng)建和銷毀環(huán)境參數 62
3.12 更多關于JNDI名字的內容 63
3.12.1 特殊字符 63
3.12.2 復合名字與混合名字 63
3.12.3 URL的 64
3.13 屬性 64
3.13.1 LDAP X.500命名概述 65
3.13.2 獲取LDAP服務器 65
3.13.3 使用OpenLDAP 65
3.13.4 配置JNDI以使用LDAP 68
3.13.5 測試LDAP服務器 68
3.13.6 獲取目錄環(huán)境 69
3.13.7 讀取屬性 69
3.13.8 搜索對象 70
3.13.9 操作屬性 72
3.14 更多關于對象的內容 73
3.14.1 從代碼基中裝載類 74
3.14.2 定義代碼基 74
3.14.3 引用 76
3.15 JNDI還可以做什么 79
3.15.1 JNDI事件 79
3.15.2 安全性 79
3.16 小結 80
3.17 問與答 81
3.18 練習 81
第4天課程 EJB簡介 82
4.1 什么是EJB 82
4.1.1 Bean. 客戶端. 容器和服務器 82
4.1.2 EJB概覽 83
4.1.3 發(fā)現EJB 83
4.1.4 EJB的類型 84
4.1.5 EJB的常見使用 84
4.2 為什么使用EJB 84
4.2.1 隱藏程序的復雜性 85
4.2.2 從UI和數據訪問中分離業(yè)務邏輯 85
4.2.3 容器服務 86
4.3 EJB中包括什么 86
4.3.1 業(yè)務接口 86
4.3.2 業(yè)務邏輯 88
4.3.3 廠類信息 92
4.3.4 Bean元數據 93
4.4 如何創(chuàng)建EJB 93
4.4.1 創(chuàng)建機制 94
4.4.2 創(chuàng)建代碼的限制 94
4.4.3 創(chuàng)建可部署組件 94
4.5 如何部署EJB 97
4.5.1 在容器中插入配置 97
4.5.2 執(zhí)行部署 97
4.6 如何使用EJB 97
4.6.1 發(fā)現EJB 97
4.6.2 檢索與使用 98
4.6.3 除去EJB 98
4.6.4 運行客戶端 99
4.7 在J2EE RI中部署和使用一個EJB 99
4.7.1 打開學習實例的EAR文件 100
4.7.2 查看學習實例應用程序 101
4.7.3 部署實例應用程序 103
4.7.4 測試實例應用程序 104
4.7.5 解決實例應用程序中出現的問題 105
4.8 小結 106
4.9 問與答 106
4.10 練習 107
第5天課程 會話EJB 108
5.1 概述 108
5.2 會話Bean的javax.ejb包 109
5.3 無狀態(tài)會話Bean的生命周期 110
5.4 指定無狀態(tài)會話Bean 113
5.5 無狀態(tài)會話Bean的實現 115
5.5.1 javax.ejb.SessionBean的實現 115
5.5.2 本地接口方法的實現 115
5.5.3 遠程接口方法的實現 116
5.5.4 異常 118
5.6 配置和部署一個無狀態(tài)會話Bean 119
5.6.1 使用deploytool 119
5.6.2 結構元素 120
5.6.3 表達元素 121
5.6.4 會話元素 122
5.6.5 部署企業(yè)應用程序 128
5.7 有狀態(tài)會話Bean的生命周期 128
5.8 指定有狀態(tài)會話Bean 131
5.9 有狀態(tài)會話Bean的實現 132
5.9.1 鈍化 132
5.9.2 超時 133
5.9.3 連鎖狀態(tài) 133
5.10 配置和部署有狀態(tài)會話Bean 134
5.11 客戶端視圖 134
5.12 模式和習慣 135
5.12.1 業(yè)務接口 135
5.12.2 適配器 137
5.12.3 粗粒度 137
5.13 忠告 137
5.14 小結 138
5.15 問與答 138
5.16 練習 138
第6天課程 實體EJB 141
6.1 概述 141
6.1.1 再談n層體系結構 141
6.1.2 與關系型數據庫管理系統技術的比較 142
6.1.3 識別實體 142
6.2 實體Bean的javax.ejb包 144
6.3 實體Bean的類型 145
6.4 遠程接口與本地接口 145
6.5 BMP實體Bean的生命周期 146
6.6 指定BMP實體Bean 150
6.6.1 本地Home接口 151
6.6.2 本地接口 154
6.7 BMP實體Bean的實現 155
6.7.1 實現本地Home接口方法 159
6.7.2 實現本地接口方法 164
6.7.3 生成ID號 165
6.7.4 再談粒度 167
6.7.5 使用查找方法的注意事項 167
6.7.6 EJB容器性能調試 168
6.8 配置和部署B(yǎng)MP實體Bean 169
6.9 客戶端視圖 172
6.10 再談會話Bean 173
6.11 模式和習慣 176
6.11.1 接口. 外觀和狀態(tài) 176
6.11.2 為實體Bean使用本地接口 176
6.11.3 與值集綁定的類 177
6.11.4 自我封裝域 179
6.11.5 不要為查找方法使用Enumeration 179
6.11.6 晚連接, 早釋放 179
6.11.7 再談業(yè)務接口 180
6.12 忠告 181
6.13 小結 182
6.14 問與答 182
6.15 練習 182
第7天課程 CMP和EJB QL 185
7.1 容器管理的持久性概述 185
7.1.1 N層體系結構(再談談)和CMP字段 186
7.1.2 淺談實例數據庫 188
7.2 CMP實體Bean的生命周期 189
7.3 容器管理的關聯 190
7.3.1 關聯類型 191
7.3.2 導航 191
7.3.3 cmr字段元素 192
7.3.4 操作關聯 194
7.4 EJB查詢語言 197
7.4.1 EJB選擇方法 198
7.4.2 語法和例子 199
7.4.3 更多內容 204
7.5 指定CMP實體Bean 205
7.5.1 本地Home接口 205
7.5.2 本地接口 205
7.6 CMP實體Bean的實現 206
7.6.1 實現javax.ejb.EntityBean 206
7.6.2 實現本地Home接口方法 208
7.6.3 查找方法 210
7.6.4 實現本地接口方法 213
7.7 配置CMP實體Bean 214
7.7.1 entity元素 214
7.7.2 relationships元素 217
7.8 部署CMP實體Bean 221
7.9 模式和習慣 222
7.9.1 在ejbLoad()/ejbStore()中規(guī)范化/反規(guī)范化數據 222
7.9.2 不要顯示cmp字段元素 223
7.9.3 不要顯示cmr字段元素 224
7.9.4 通過Bean接口實施引用的完整性 225
7.9.5 使用選擇方法實現Home方法 225
7.10 忠告 226
7.11 小結 226
7.12 問與答 227
7.13 練習 227
第二周課程 開發(fā)J2EE應用程序
第8天課程 事務處理和持久性 230
8.1 事務處理概述 230
8.2 容器管理的事務劃分 232
8.3 Bean管理的事務劃分 237
8.3.1 動機和限制 237
8.3.2 使用Java 事務API 237
8.3.3 部署B(yǎng)MTD Bean 240
8.3.4 客戶劃分事務 240
8.3.5 再談異常 241
8.4 延長有狀態(tài)會話bean的生命周期 242
8.5 后臺事務:事務實質 243
8.5.1 事務管理器. 資源管理器和2PC 244
8.5.2 JTA API 245
8.5.3 事務出錯后應如何解決 247
8.5.4 JTA與JTS 248
8.6 持久性技術概述 249
8.7 JDBC 250
8.8 SQLj 252
8.8.1 SQLj Part 0 253
8.8.2 SQLj Part 1 257
8.8.3 SQLj Part 2 261
8.9 JDO 264
8.9.1 JDO概念 265
8.9.2 javax.jdo類和接口 267
8.9.3 查詢 268
8.9.4 其他功能 270
8.10 忠告 270
8.11 小結 271
8.12 問與答 271
8.13 練習 272
第9天課程 Java消息服務 273
9.1 消息 273
9.2 Java消息服務API 275
9.3 JMS API體系結構 275
9.3.1 消息域 277
9.3.2 JMS 點對點消息域 277
9.3.3 JMS發(fā)布/訂閱消息域 277
9.4 使用JBoss開發(fā)JMS應用程序 278
9.5 使用J2EE RI開發(fā)JMS應用程序 279
9.5.1 J2EE RI連接工廠 279
9.5.2 在J2EE RI中添加目的地 279
9.5.3 在J2EE RI中創(chuàng)建隊列 279
9.6 點對點消息實例 281
9.6.1 JMS消息 282
9.6.2 創(chuàng)建消息 283
9.6.3 發(fā)送消息 284
9.6.4 關閉連接 284
9.6.5 發(fā)送JMS文本消息實例 284
9.6.6 使用消息 285
9.7 簡單的同步接收器實例 286
9.7.1 接收JMS文本消息實例 286
9.7.2 異步消息 287
9.8 發(fā)布/訂閱消息域 288
9.9 發(fā)布/訂閱消息實例 289
9.9.1 公告板發(fā)布程序 289
9.9.2 公告板訂閱程序 291
9.9.3 創(chuàng)建持久訂閱 292
9.9.4 JMS的其他特點 294
9.10 XML簡介 296
9.11 小結 297
9.12 問與答 297
9.13 練習 298
第10天課程 消息驅動Bean 299
10.1 什么是消息驅動Bean 299
10.1.1 消息生產者的觀點 300
10.1.2 與其他EJB的異同之處 300
10.2 消息驅動Bean的編程接口 300
10.3 消息驅動Bean的生命周期 301
10.4 創(chuàng)建消息驅動Bean 302
10.4.1 就緒方法池 302
10.4.2 刪除Bean 303
10.4.3 使用消息 303
10.4.4 處理異?!?03
10.4.5 容器管理的事務處理和Bean管理的事務處理 304
10.4.6 消息認可 305
10.4.7 JMS消息過濾器 305
10.5 編寫簡單的消息驅動Bean 305
10.6 運行實例 307
10.6.1 創(chuàng)建隊列 307
10.6.2 部署消息驅動Bean 308
10.6.3 創(chuàng)建發(fā)送客戶端以創(chuàng)建消息 311
10.7 開發(fā)代理學習實例 312
10.7.1 步驟1——Sender Helper類 313
10.7.2 步驟2——代理和注冊會話Bean 314
10.7.3 步驟3——消息驅動bean 316
10.7.4 步驟4——創(chuàng)建JMS隊列 321
10.7.5 步驟5——部署EJB 321
10.7.6 步驟6——測試ApplicantMatch Bean 321
10.8 使用其他的體系結構 321
10.9 小結 322
10.10 問與答 322
10.11 練習 322
第11天課程 JavaMail 324
11.1 E-Mail常識 324
11.1.1 簡單郵件傳輸協議(SMTP) 325
11.1.2 郵箱協議(POP3) 326
11.1.3 網絡消息訪問協議(IMAP) 326
11.1.4 其他協議 326
11.1.5 多用途Internet郵件擴展(MIME) 326
11.2 JavaMail API簡介 326
11.3 安裝開發(fā)環(huán)境 327
11.4 發(fā)送第一封電子郵件 327
11.5 創(chuàng)建多媒體電子郵件 331
11.5.1 創(chuàng)建消息:方法#1 332
11.5.2 創(chuàng)建消息:方法#2 335
11.6 發(fā)送帶附件的電子郵件 339
11.7 探索JavaMail API 342
11.7.1 檢索消息 342
11.7.2 刪除消息 345
11.7.3 取得附件 346
11.7.4 認證用戶和安全性 349
11.8 小結 352
11.9 問與答 352
11.10 練習 353
第12天課程 Servlet 354
12.1 Servlet的用途和使用 354
12.1.1 為Web應用程序修改Servlet 354
12.1.2 服務器與平臺獨立性 355
12.1.3 高效與可擴展性 355
12.1.4 整合Servlet和服務器 355
12.2 HTTP簡介 356
12.2.1 HTTP結構 356
12.2.2 其他的HTTP方法 358
12.2.3 服務器響應 358
12.2.4 內容類型頭 359
12.3 HTML簡介 359
12.4 Servlet環(huán)境 363
12.5 Servlet類繼承體系 363
12.6 簡單的Servlet實例 363
12.7 向Servlet傳遞參數數據 368
12.7.1 如何訪問參數 368
12.7.2 具有參數的Servlet實例 368
12.7.3 使用POST請求 370
12.7.4 Servlet生命周期 370
12.7.5 Servlet環(huán)境 371
12.8 Web應用程序 372
12.8.1 Web應用程序的文件和目錄結構 372
12.8.2 Web應用程序的部署描述符 373
12.9 處理錯誤 374
12.9.1 HTTP錯誤 374
12.9.2 Servlet異常處理 375
12.10 保留客戶端信息和狀態(tài)信息 376
12.10.1 使用會話對象 376
12.10.2 表單隱藏域 377
12.10.3 Cookie 378
12.10.4 創(chuàng)建一個Cookie 378
12.10.5 重寫URL 379
12.11 Servlet過濾 380
12.11.1 設計過濾器 380
12.11.2 審計過濾器實例 381
12.11.3 部署過濾器 382
12.12 事件監(jiān)聽 385
12.13 Servlet線程 388
12.14 安全性和Servlet沙箱 388
12.15 求職代理學習實例 389
12.15.1 AgencyTable Servlet代碼 389
12.15.2 部署AgencyTable Servlet 391
12.16 小結 394
12.17 問與答 394
12.18 練習 394
第13天課程 JSP 396
13.1 JSP是什么 396
13.1.1 角色分離 397
13.1.2 轉換和執(zhí)行 397
13.2 JSP語法和結構 398
13.3 第一個JSP實例 399
13.4 JSP生命周期 402
13.4.1 發(fā)現和糾正JSP錯誤 403
13.4.2 JSP生命周期方法 406
13.5 JSP指令 406
13.5.1 include指令 407
13.5.2 page指令 407
13.6 存取HTTP Servlet變量 410
13.7 使用HTTP請求的參數 410
13.8 用JavaBean簡化JSP網頁 412
13.8.1 什么是JavaBean 412
13.8.2 定義JavaBean 412
13.8.3 取得Bean屬性 413
13.8.4 設置Bean屬性 413
13.8.5 初始化Bean 414
13.8.6 在求職代理實例中使用Bean 414
13.9 向求職代理實例中添加Web接口 417
13.9.1 結構和導航 417
13.9.2 外觀和感受 419
13.9.3 錯誤處理頁的定義 425
13.9.4 部署JSP學習實例 427
13.10 比較JSP和Servlet 429
13.11 小結 430
13.12 問與答 430
13.13 練習 430
第14天課程 JSP標記庫 432
14.1 標記庫扮演的角色 432
14.2 開發(fā)簡單的自定義標記 433
14.2.1 使用簡單的標記 433
14.2.2 標記庫描述符(TLD) 434
14.2.3 自定義Java標記 435
14.2.4 自定義標記的生命周期方法 437
14.2.5 自定義標記“Hello World" 437
14.2.6 部署標記庫Web應用程序 438
14.2.7 定義TLD位置 439
14.2.8 使用簡單的標記 440
14.3 帶屬性的標記 440
14.4 定義腳本變量的標記 442
14.5 迭代標記 446
14.6 協作標記 449
14.6.1 使用共享腳本變量 449
14.6.2 分層的標記結構 449
14.7 定義標記的額外信息對象 455
14.7.1 驗證屬性 456
14.7.2 定義腳本變量 457
14.8 處理標記體 458
14.9 JSP標準標記庫(JSPTL) 460
14.9.1 在J2EE RI中使用JSPTL 461
14.9.2 使用JSPTL的forEach標記 461
14.9.3 其他JSPTL標記 463
14.9.4 JSPTL腳本語言 464
14.9.5 其他Jakarta標記庫 464
14.10 小結 465
14.11 問與答 465
14.12 練習 466
第三周課程 在企業(yè)中集成J2EE
第15天課程 安全 468
15.1 安全概述 468
15.2 常用安全技術 470
15.2.1 對稱加密法 470
15.2.2 非對稱加密 471
15.2.3 SSL和HTTPS 471
15.2.4 校驗和與摘要 472
15.2.5 數字證書 472
15.3 J2EE中的安全 473
15.3.1 J2EE安全術語 473
15.3.2 使用J2EE RI安全 474
15.4 安全和EJB 476
15.4.1 定義EJB安全 476
15.4.2 定義角色 476
15.4.3 定義安全身份 478
15.4.4 定義方法許可 479
15.4.5 映射代理到角色 483
15.4.6 使用角色作為安全身份 484
15.5 Web應用程序和組件的安全 488
15.5.1 Web 認證 489
15.5.2 配置J2EE RI 基本認證 489
15.5.3 聲明的Web授權 490
15.5.4 可編程Web授權 495
15.5.5 加入可編程Web安全到學習實例 495
15.5.6 使用安全的Web認證方案 497
15.6 安全和JNDI 497
15.6.1 簡單LDAP認證 498
15.6.2 SASL認證 498
15.7 小結 500
15.8 問與答 500
15.9 練習 501
第16天課程 整合XML和J2EE 502
16.1 平臺無關數據交換的原因 502
16.2 XML起源 503
16.3 XML結構和語法 504
16.3.1 HTML和XML 504
16.3.2 XML文檔結構 505
16.3.3 聲明 505
16.3.4 元素 505
16.3.5 結構良好的XML文檔 506
16.3.6 屬性 507
16.3.7 注釋 507
16.4 創(chuàng)建有效XML文檔 508
16.4.1 文檔類型定義 508
16.4.2 名稱空間 511
16.4.3 用XML Schema強化文檔結構 512
16.4.4 如何在J2EE中使用XML 513
16.5 解析XML 514
16.6 JAXP包 515
16.7 使用SAX解析XML 515
16.8 文檔對象模型(DOM)解析器 519
16.9 修改DOM樹 523
16.10 支持XML綁定的Java體系結構 524
16.11 擴展求職代理學習實例 525
16.11.1 步驟1——改變會話Bean 526
16.11.2 步驟2——修改MessageSender幫助類 527
16.11.3 步驟3——修改ApplicationMatch消息驅動Bean 528
16.12 小結 530
16.13 問與答 530
16.14 練習 530
第17天課程 XML文檔轉換 532
17.1 在客戶端表示XML文檔 532
17.1.1 在瀏覽器上表示XML文檔 533
17.1.2 可擴展樣式表語言(XSL) 533
17.1.3 XSL格式化對象(XSL-FO) 533
17.2 可擴展樣式表轉換(XSLT) 534
17.2.1 應用樣式表 535
17.2.2 在服務器上存儲轉換后的文檔 535
17.2.3 在客戶端表示XML文檔和樣式表 535
17.2.4 在服務器上轉換XML文檔 536
17.3 通過J2EE使用XALAN 536
17.3.1 使用XALAN轉換XML文檔 537
17.3.2 從命令行使用XALAN 537
17.4 在Java應用程序中使用XSLT 538
17.5 XSLT樣式表 542
17.5.1 模板規(guī)則 542
17.5.2 XML元素的文本表示 546
17.5.3 通過XSLT使用Xpath 547
17.5.4 默認的樣式表規(guī)則 549
17.5.5 處理屬性 549
17.6 使用樣式表元素 550
17.6.1 處理空格和文本 551
17.6.2 添加注釋 552
17.6.3 屬性值 553
17.6.4 創(chuàng)建和復制元素 554
17.6.5 屬性和屬性集 557
17.6.6 其他XSL元素 559
17.7 XSLT編譯器 562
17.8 小結 562
17.9 問與答 562
17.10 練習 563
第18天課程 模式 567
18.1 J2EE模式 567
18.1.1 什么是模式 567
18.1.2 為什么使用模式 568
18.1.3 模式的類型 569
18.1.4 J2EE模式 569
18.1.5 模式目錄 570
18.2 應用J2EE特定的模式 570
18.2.1 在環(huán)境中應用模式 570
18.2.2 通用模式 571
18.2.3 J2EE表達層模式 571
18.2.4 J2EE業(yè)務層模式 572
18.2.5 J2EE綜合層模式 572
18.2.6 J2EE中的模式 573
18.3 環(huán)境中的模式 573
18.3.1 分析學習實例 573
18.3.2 會話Facade和實體EJB 574
18.3.3 數據交換和值對象 575
18.3.4 非實體EJB的數據訪問 578
18.3.5 消息和異步激活 584
18.3.6 組裝實體 584
18.3.7 組裝JSP 585
18.3.8 JSP和關注點分離 587
18.3.9 客戶端代理服務器和委托 590
18.3.10 定位服務 591
18.3.11 其他業(yè)務 591
18.3.12 重構學習實例 592
18.4 J2EE模式趨勢 592
18.5 小結 592
18.6 問與答 593
18.7 練習 593
第19天課程 整合外部資源 594
19.1 回顧外部資源和原有系統 594
19.2 連接器體系結構簡介 595
19.2.1 體系結構概述 595
19.2.2 角色與職責 596
19.3 使用公共客戶接口 598
19.3.1 與EIS交互 599
19.3.2 安裝資源適配器 599
19.3.3 創(chuàng)建第一個CCI應用程序 600
19.3.4 管理事務和查找記錄 606
19.4 其他連接技術簡介 610
19.5 CORBA簡介 610
19.6 Java IDL簡介 611
19.7 使用基于IIOP的RMI 612
19.7.1 基于JRMP的RMI實例 612
19.7.2 基于IIOP的RMI實例 616
19.8 JNI簡介 619
19.9 整合技術評估 622
19.10 小結 623
19.11 問與答 623
19.12 練習 623
第20天課程 借助J2EE使用RPC樣式的Web服務 625
20.1 Web服務概述 626
20.1.1 什么是Web服務 626
20.1.2 為什么使用Web服務 627
20.1.3 Web服務技術和協議 627
20.1.4 Web服務體系結構 627
20.2 J2EE的Web服務 628
20.2.1 J2EE的Web服務體系結構 629
20.2.2 工具和技術 629
20.2.3 整合Web服務和已存在的J2EE組件 631
20.3 使用基于SOAP. RPC樣式的Web服務 631
20.3.1 面向RPC的Web服務 632
20.3.2 在Tomcat 4.0下設置Axis 633
20.3.3 服務描述信息 634
20.3.4 WSDL文檔剖析 634
20.3.5 從WSDL創(chuàng)建Java代理服務器 636
20.3.6 通過SOAP調用Web服務 638
20.3.7 折衷方案 641
20.3.8 調試SOAP交互 641
20.4 實現基于SOAP. RPC樣式的Web服務 643
20.4.1 將Java類包裝為Web服務 643
20.4.2 Web服務的客戶端 646
20.4.3 從WSDL開始 648
20.4.4 使用Axis JWS文件 650
20.4.5 會話情景和Web服務 652
20.4.6 將存在的J2EE功能包裝為Web服務 655
20.5 參數類型和類型映射 656
20.5.1 Java和SOAP/WSDL類型間的映射 656
20.5.2 采用Serializer映射復雜類型 657
20.5.3 深入探討復雜類型映射 663
20.6 小結 663
20.7 問與答 663
20.8 練習 664
第21天課程 Web服務注冊表和消息樣式的Web服務 665
21.1 Web服務注冊表 665
21.1.1 什么是Web服務注冊表 665
21.1.2 為什么我們需要Web服務注冊表 666
21.1.3 注冊表如何工作 666
21.1.4 注冊表分類 666
21.1.5 ebXML Registry和Repository 667
21.1.6 UDDI概述 668
21.2 訪問UDDI注冊表中的信息 668
21.2.1 使用UDDI4J操縱服務信息 669
21.2.2 使用IBM的WSTK客戶端API操縱服務信息 671
21.2.3 檢索和使用信息 672
21.3 使用JAXR進行注冊表訪問 672
21.3.1 一種通用方法 672
21.3.2 使用JAXR存儲和檢索服務信息 674
21.4 使用基于消息的SOAP接口 674
21.4.1 消息樣式與RPC樣式 675
21.4.2 創(chuàng)建客戶 675
21.4.3 創(chuàng)建服務 676
21.5 使用JAXM發(fā)送和接收SOAP消息 676
21.5.1 JAXM和J2EE 677
21.5.2 配置JAXM 677
21.5.3 發(fā)送基本的SOAP消息 678
21.5.4 運行簡單的客戶 682
21.5.5 填充消息 682
21.5.6 Header和附件 685
21.5.7 使用JAXM接收SOAP消息 686
21.5.8 使用JAXM profile 688
21.5.9 使用JAXM Profile發(fā)送一條消息 690
21.5.10 使用JAXM profile接收一條消息 692
21.6 小結 694
21.7 問與答 694
21.8 練習 695
附錄A UML簡介 696
A.1 UML簡介 696
A.2 用例圖 697
A.3 類圖 698
A.3.1 關聯 699
A.3.2 屬性 699
A.3.3 操作 700
A.3.4 泛化 701
A.3.5 約束 701
A.4 順序圖 702
附錄B SQL語句參考 704
B.1 常用的SQL語句(SQL99) 704
B.1.1 修改表(ALTER TABLE) 704
B.1.2 創(chuàng)建表(CREATE TABLE) 705
B.1.3 創(chuàng)建視圖(CREATE VIEW) 705
B.1.4 刪除(DELETE) 706
B.1.5 刪除數據表(DROP TABLE) 706
B.1.6 刪除視圖(DROP VIEW) 706
B.1.7 插入(INSERT) 706
B.1.8 選擇(SELECT) 706
B.1.9 內聯接 707
B.1.10 交叉聯接 707
B.1.11 左外聯接 707
B.1.12 右外聯接 707
B.1.13 全聯接 708
B.1.14 更新(UPDATE) 708
B.2 常用的SQL子句 708
B.2.1 FROM子句 708
B.2.2 WHERE子句 708
B.2.3 GROUP BY子句 709
B.2.4 HAVING子句 709
B.2.5 ORDER BY子句 709
附錄C XML概述 710
C.1 什么是XML 710
C.1.1 元素 710
C.1.2 聲明 711
C.1.3 注釋 712
C.1.4 特殊字符 712
C.1.5 名稱空間 712
C.2 強化XML文檔結構 713
C.2.1 文檔類型定義 713
C.2.2 XML Schema 716
C.3 在哪里獲取更多相關信息 717
附錄D Java Community Process 719
D.1 JCP簡介 719
D.2 JCP相關內容 719
D.2.1 JCP成員 719
D.2.2 專家組 720
D.2.3 公共成員 720
D.2.4 過程管理辦公室 720
D.2.5 執(zhí)行委員會 720
D.3 了解JSR進程 720
D.4 進入下一步 721
術語表 722