第 1 章 Java 網絡編程入門
1.1 進程之間的通信
1.2 計算機網絡的概念
1.3 OSI 參考模型
1.4 TCP/IP 參考模型和 TCP/IP
1.4.1 IP ·
1.4.2 TCP 以及端口
1.4.3 RFC 簡介
1.4.4 客戶/服務器通信模式
1.5 用 Java 編寫客戶/服務器程序
1.5.1 創建 EchoServer
1.5.2 創建 EchoClient
1.6 小結
1.7 練習題
第 2 章 Socket 用法詳解
2.1 構造 Socket
2.1.1 設定等待建立連接的超時時間
2.1.2 設定服務器的地址
2.1.3 設定客戶端的地址
2.1.4 客戶連接服務器時可能拋齣的異常
2.1.5 使用代理服務器
2.1.6 InetAddress 地址類的用法
2.1.7 NetworkInterface 類的用法
2.2 獲取 Socket 的信息
2.3 關閉 Socket
2.4 半關閉 Socket
2.5 設置 Socket 的選項
2.5.1 TCP_NODELAY 選項
2.5.2 SO_RESUSEADDR 選項
2.5.3 SO_TIMEOUT 選項
2.5.4 SO_LINGER 選項
2.5.5 SO_RCVBUF 選項
2.5.6 SO_SNDBUF 選項
2.5.7 SO_KEEPALIVE 選項
2.5.8 OOBINLINE 選項
2.5.9 IP 服務類型選項
2.5.10 設定連接時間、延遲和帶寬的相對重要性
2.6 發送郵件的 SMTP 客戶程序
2.7 小結
2.8 練習題
第 3 章 ServerSocket 用法詳解
3.1 構造 ServerSocket
3.1.1 綁定端口
3.1.2 設定客戶連接請求隊列的長度
3.1.3 設定綁定的 IP 地址
3.1.4 默認構造方法的作用
3.2 接收和關閉與客戶的連接
3.3 關閉 ServerSocket
3.4 獲取 ServerSocket 的信息
3.5 ServerSocket 選項
3.5.1 SO_TIMEOUT 選項
3.5.2 SO_REUSEADDR 選項
3.5.3 SO_RCVBUF 選項
3.5.4 設定連接時間、延遲和帶寬的相對重要
3.6 創建多綫程的服務器
3.6.1 為每個客戶分配一個綫程
3.6.2 創建綫程池
3.6.3 使用 JDK 類庫提供的綫程池
3.6.4 嚮綫程池提交有異步運算結果的任務
3.6.5 使用綫程池的注意事項
3.7 關閉服務器
3.8 小結
3.9 練習題
第 4 章 非阻塞通信
4.1 綫程阻塞的概念
4.1.1 綫程阻塞的原因
4.1.2 服務器程序用多綫程處理阻塞通信的局限
4.1.3 非阻塞通信的基本思想
4.2 非阻塞通信 API 的用法
4.2.1 緩衝區
4.2.2 字符編碼 Charset
4.2.3 通道
4.2.4 SelectableChannel 類
4.2.5 ServerSocketChannel 類
4.2.6 SocketChannel 類
4.2.7 Selector 類
4.2.8 SelectionKey 類
4.2.9 Channels 類
4.2.10 Socket 選項
4.3 服務器編程範例
4.3.1 創建阻塞的 EchoServer
4.3.2 創建非阻塞的 EchoServer
4.3.3 在 EchoServer 中混閤用阻塞模式與非阻塞模式
4.4 客戶端編程範例
4.4.1 創建阻塞的 EchoClient
4.4.2 創建非阻塞的 EchoClient
4.5 異步通道和異步運算結果
4.6 在 GUI 中用 SwingWorker 實現異步交互
4.6.1 SwingWorker 類的用法
4.6.2 用 SwingWorker 類來展示進度條
4.6.3 用 SwingWorker 類實現異步的 AsynEchoClient
4.7 小結
4.8 練習題
第 5 章 創建非阻塞的 HTTP 服務器
5.1 HTTP 簡介
5.1.1 HTTP 請求格式
5.1.2 HTTP 響應格式
5.1.3 測試 HTTP 請求
5.2 創建非阻塞的 HTTP 服務器
5.2.1 服務器主程序:HttpServer 類
5.2.2 具有自動增長的緩衝區的 ChannelIO 類
5.2.3 負責處理各種事件的 Handler 接口
5.2.4 負責處理接收連接就緒事件的 AcceptHandler 類
5.2.5 負責接收 HTTP 請求和發送 HTTP 響應的 RequestHandler 類
5.2.6 代錶 HTTP 請求的 Request 類
5.2.7 代錶 HTTP 響應的 Response 類
5.2.8 代錶響應正文的 Content 接口及其實現類
5.2.9 運行 HTTP 服務器
5.3 小結
5.4 練習題
第 6 章 客戶端協議處理框架
6.1 客戶端協議處理框架的主要類
6.2 在客戶程序中運用協議處理框架
6.2.1 URL 類的用法
6.2.2 URLConnection 類的用法
6.3 實現協議處理框架
6.3.1 創建 EchoURLConnection 類
6.3.2 創建 EchoURLStreamHandler 及工廠類
6.3.3 創建 EchoContentHandler 類及工廠類
6.3.4 在 EchoClient 類中運用 ECHO 協議處理框架
6.4 小結
6.5 練習題
第 7 章 用 Swing 組件展示 HTML 文檔
7.1 在按鈕等組件上展示 HTML 文檔
7.2 用 JEditorPane 組件創建簡單的瀏覽器
7.2.1 處理 HTML 頁麵上的超級鏈接
7.2.2 處理 HTML 頁麵上的錶單
7.2.3 創建瀏覽器程序
7.3 小結
7.4 練習題
第 8 章 基於 UDP 的數據報和套接字
8.1 UDP 簡介
8.2 DatagramPacket 類
8.2.1 選擇數據報的大小
8.2.2 讀取和設置 DatagramPacket 的屬性
8.2.3 數據格式的轉換
8.2.4 重用 DatagramPacket
8.3 DatagramSocket 類
8.3.1 構造 DatagramSocket
8.3.2 接收和發送數據報
8.3.3 管理連接
8.3.4 關閉 DatagramSocket
8.3.5 DatagramSocket 的選項
8.3.6 IP 服務類型選項
8.4 DatagramChannel 類
8.4.1 創建 DatagramChannel
8.4.2 管理連接
8.4.3 用 send()方法發送數據報
8.4.4 用 receive()方法接收數據報
8.4.5 用 write()方法發送數據報
8.4.6 用 read()方法接收數據報
8.4.7 Socket 選項
8.5 組播
8.5.1 MulticastSocket 類
8.5.2 組播 Socket 的範例
8.6 小結
8.7 練習題
第 9 章 對象的序列化與反序列化
9.1 JDK 類庫中的序列化 API
9.1.1 把對象序列化到文件
9.1.2 把對象序列化到網絡
9.2 實現 Serializable 接口
9.2.1 序列化對象圖
9.2.2 控製序列化的行為
9.2.3 readResolve()方法在單例類中的運用
9.3 實現 Externalizable 接口
9.4 可序列化類的不同版本的序列化兼容性
9.5 小結
9.6 練習題
第 10 章 Java 語言的反射機製
10.1 Java Reflection API 簡介
10.2 在遠程方法調用中運用反射機製
10.3 代理模式
10.3.1 靜態代理類
10.3.2 動態代理類
10.3.3 在遠程方法調用中運用代理類
10.4 小結
10.5 練習題
第 11 章 RMI 框架
11.1 RMI 的基本原理
11.2 創建第 1 個 RMI 應用
11.2.1 創建遠程接口
11.2.2 創建遠程類
11.2.3 創建服務器程序
11.2.4 創建客戶程序
11.2.5 運行 RMI 應用
11.3 遠程對象工廠設計模式
11.4 遠程方法中的參數與返迴值傳遞
11.5 迴調客戶端的遠程對象
11.6 遠程對象的並發訪問
11.7 分布式垃圾收集
11.8 遠程對象的 equals()、hashCode()和 clone()方法
11.9 使用安全管理器
11.10 RMI 應用的部署以及類的動態加載
11.11 遠程激活
11.12 小結
11.13 練習題
第 12 章 通過 JDBC API 訪問數據庫
12.1 JDBC 的實現原理
12.2 安裝和配置 MySQL 數據庫
12.3 JDBC API 簡介
12.4 JDBC API 的基本用法
12.4.1 處理字符編碼的轉換
12.4.2 把連接數據庫的各種屬性放在配置文件中
12.4.3 管理 Connection、Statement 和 ResultSet 對象的生命周期
12.4.4 執行 SQL 腳本文件
12.4.5 處理 SQLException
12.4.6 輸齣 JDBC 日誌
12.4.7 獲得新插入記錄的主鍵值
12.4.8 設置批量抓取屬性
12.4.9 檢測驅動器使用的 JDBC 版本
12.4.10 元數據
12.5 可滾動以及可更新的結果集
12.6 行集
12.7 調用存儲過程
12.8 處理 Blob 和 Clob 類型數據
12.9 控製事務
12.9.1 事務的概念
12.9.2 聲明事務邊界的概念
12.9.3 在 mysql.exe 程序中聲明事務
12.9.4 通過 JDBC API 聲明事務邊界
12.9.5 保存點
12.9.6 批量更新
12.9.7 設置事務隔離級彆
12.10 數據庫連接池
12.10.1 創建連接池
12.10.2 DataSource 數據源
12.11 小結
12.12 練習題
第 13 章 基於 MVC 和 RMI 的分布式應用
13.1 MVC 設計模式簡介
13.2 store 應用簡介
13.3 創建視圖
13.4 創建控製器
13.5 創建模型
13.6 創建獨立應用
13.7 創建分布式應用
13.8 小結
13.9 練習題
第 14 章 通過 JavaMail API 收發郵件
14.1 E-mail 協議簡介
14.1.1 SMTP
14.1.2 POP3
14.1.3 接收郵件的新協議 IMAP
14.1.4 MIME 簡介·
14.2 JavaMail API 簡介
14.3 建立 JavaMail 應用程序的開發環境
14.3.1 獲得 JavaMail API 的類庫
14.3.2 安裝和配置郵件服務器
14.4 創建 JavaMail 應用程序
14.5 身份驗證
14.6 授權碼驗證
14.7 URLName 類
14.8 創建和讀取復雜電子郵件
14.8.1 郵件地址
14.8.2 郵件頭部
14.8.3 郵件標記
14.8.4 郵件正文
14.9 操縱郵件夾
14.10 小結
14.11 練習題
第 15 章 安全網絡通信
15.1 SSL 簡介
15.1.1 加密通信
15.1.2 安全證書
15.1.3 SSL 握手
15.1.4 創建自我簽名的安全證書
15.2 JSSE 簡介
15.2.1 KeyStore、KeyManager 與 TrustManager 類
15.2.2 SSLContext 類
15.2.3 SSLServerSocketFactory 類
15.2.4 SSLSocketFactory 類
15.2.5 SSLSocket 類
15.2.6 SSLServerSocket 類
15.2.7 SSLEngine 類
15.3 創建基於 SSL 的安全服務器和安全客戶
15.4 小結
15.5 練習題
第 16 章 XML 數據處理
16.1 用 DOM 處理 XML 文檔
16.2 用 SAX 處理 XML 文檔
16.2.1 創建 XML 文檔的具體處理類 CustomerHandler
16.2.2 創建 XML 文檔的解析類 SaxDemo
16.3 用 JDOM 處理 XML 文檔
16.4 用 DOM4J 處理 XML 文檔
16.5 Java 對象的 XML 序列化和反序列化
16.6 小結
16.7 練習題
第 17 章 用 Axis 發布 Web 服務
17.1 SOAP 簡介
17.2 建立 Apache Axis 環境
17.3 在 Tomcat 上發布 Apache-Axis Web 應用
17.4 創建 SOAP 服務
17.4.1 創建提供 SOAP 服務的 Java 類
17.4.2 創建 SOAP 服務的發布描述文件
17.5 發布和管理 SOAP 服務
17.5.1 發布 SOAP 服務
17.5.2 管理 SOAP 服務
17.6 創建和運行 SOAP 客戶程序
17.7 小結
17.8 練習題
第 18 章 用 Spring 整閤 CXF 發布 Web 服務
18.1 創建 Web 服務接口和實現類
18.2 在 Spring 配置文件中配置 Web 服務
18.3 在 web.xml 配置文件中配置 Spring 和 CXF
18.4 在 Tomcat 中發布 Web 服務
18.5 創建和運行客戶程序
18.6 小結
18.7 練習題
附錄 A 本書範例的運行方法
A.1 本書所用軟件的下載地址
A.2 部分軟件的安裝
A.2.1 安裝 JDK
A.2.2 安裝 ANT
A.2.3 安裝 Tomcat
A.3 編譯源程序
A.4 運行客戶/服務器程序
A.5 處理編譯和運行錯誤
· · · · · · (
收起)