Java網(wǎng)絡編程核心技術(shù)詳解(視頻微課版)
定 價:129 元
- 作者:孫衛(wèi)琴
- 出版時間:2020/3/1
- ISBN:9787121383151
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:600
- 紙張:
- 版次:01
- 開本:16開
本書結(jié)合大量典性的實例,詳細介紹了用Java來編寫網(wǎng)絡應用程序的技術(shù)。本書的范例都基于最新的JDK10版本。本書內(nèi)容包括:Java網(wǎng)絡編程的基礎(chǔ)知識、 套接字編程、非阻塞通信、創(chuàng)建HTTP服務器與客戶程序、數(shù)據(jù)報通信、對象的序列化與反序列化、Java反射機制、RMI框架、JDBC API、JavaMail API、MVC設(shè)計模式、安全網(wǎng)絡通信、XML數(shù)據(jù)處理和Web服務。閱讀本書,讀者不僅可以掌握網(wǎng)絡編程的實用技術(shù),還可以進一步提高按照面向?qū)ο蟮乃枷雭碓O(shè)計和編寫Java軟件的能力。本書適用于所有Java編程人員,包括Java初學者及資深Java開發(fā)人員。本書還可作為高校的Java教材,以及企業(yè)Java培訓教材。
孫衛(wèi)琴,知名IT作家和Java專家,畢業(yè)于上海交通大學,隨后主要從事基于Java的軟件開發(fā)工作,在此其間還從事Java方面的培訓和咨詢工作。2002年開始Java技術(shù)領(lǐng)域的創(chuàng)作,文風清晰嚴謹、深入淺出,深受讀者歡迎,其多部作品的銷量在同類書籍中一度位居全國榜首。代表著作有:《大話Java程序設(shè)計從入門到精通》《Java面向?qū)ο缶幊獭贰禞ava網(wǎng)絡編程核心技術(shù)詳解》《Java逍遙游記》《Hibernate逍遙游記》《精通JPA與Hibernate: Java對象持久化技術(shù)詳解》 《精通Struts: 基于MVC的Java Web設(shè)計與開發(fā)》 《Tomcat與Java Web開發(fā)技術(shù)詳解》 《Java 2認證考試指南與試題解析》
第 1 章 Java 網(wǎng)絡編程入門
1.1 進程之間的通信
1.2 計算機網(wǎng)絡的概念
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 創(chuàng)建 EchoServer
1.5.2 創(chuàng)建 EchoClient
1.6 小結(jié)
1.7 練習題
第 2 章 Socket 用法詳解
2.1 構(gòu)造 Socket
2.1.1 設(shè)定等待建立連接的超時時間
2.1.2 設(shè)定服務器的地址
2.1.3 設(shè)定客戶端的地址
2.1.4 客戶連接服務器時可能拋出的異常
2.1.5 使用代理服務器
2.1.6 InetAddress 地址類的用法
2.1.7 NetworkInterface 類的用法
2.2 獲取 Socket 的信息
2.3 關(guān)閉 Socket
2.4 半關(guān)閉 Socket
2.5 設(shè)置 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 設(shè)定連接時間、延遲和帶寬的相對重要性
2.6 發(fā)送郵件的 SMTP 客戶程序
2.7 小結(jié)
2.8 練習題
第 3 章 ServerSocket 用法詳解
3.1 構(gòu)造 ServerSocket
3.1.1 綁定端口
3.1.2 設(shè)定客戶連接請求隊列的長度
3.1.3 設(shè)定綁定的 IP 地址
3.1.4 默認構(gòu)造方法的作用
3.2 接收和關(guān)閉與客戶的連接
3.3 關(guān)閉 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 設(shè)定連接時間、延遲和帶寬的相對重要
3.6 創(chuàng)建多線程的服務器
3.6.1 為每個客戶分配一個線程
3.6.2 創(chuàng)建線程池
3.6.3 使用 JDK 類庫提供的線程池
3.6.4 向線程池提交有異步運算結(jié)果的任務
3.6.5 使用線程池的注意事項
3.7 關(guān)閉服務器
3.8 小結(jié)
3.9 練習題
第 4 章 非阻塞通信
4.1 線程阻塞的概念
4.1.1 線程阻塞的原因
4.1.2 服務器程序用多線程處理阻塞通信的局限
4.1.3 非阻塞通信的基本思想
4.2 非阻塞通信 API 的用法
4.2.1 緩沖區(qū)
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 創(chuàng)建阻塞的 EchoServer
4.3.2 創(chuàng)建非阻塞的 EchoServer
4.3.3 在 EchoServer 中混合用阻塞模式與非阻塞模式
4.4 客戶端編程范例
4.4.1 創(chuàng)建阻塞的 EchoClient
4.4.2 創(chuàng)建非阻塞的 EchoClient
4.5 異步通道和異步運算結(jié)果
4.6 在 GUI 中用 SwingWorker 實現(xiàn)異步交互
4.6.1 SwingWorker 類的用法
4.6.2 用 SwingWorker 類來展示進度條
4.6.3 用 SwingWorker 類實現(xiàn)異步的 AsynEchoClient
4.7 小結(jié)
4.8 練習題
第 5 章 創(chuàng)建非阻塞的 HTTP 服務器
5.1 HTTP 簡介
5.1.1 HTTP 請求格式
5.1.2 HTTP 響應格式
5.1.3 測試 HTTP 請求
5.2 創(chuàng)建非阻塞的 HTTP 服務器
5.2.1 服務器主程序:HttpServer 類
5.2.2 具有自動增長的緩沖區(qū)的 ChannelIO 類
5.2.3 負責處理各種事件的 Handler 接口
5.2.4 負責處理接收連接就緒事件的 AcceptHandler 類
5.2.5 負責接收 HTTP 請求和發(fā)送 HTTP 響應的 RequestHandler 類
5.2.6 代表 HTTP 請求的 Request 類
5.2.7 代表 HTTP 響應的 Response 類
5.2.8 代表響應正文的 Content 接口及其實現(xiàn)類
5.2.9 運行 HTTP 服務器
5.3 小結(jié)
5.4 練習題
第 6 章 客戶端協(xié)議處理框架
6.1 客戶端協(xié)議處理框架的主要類
6.2 在客戶程序中運用協(xié)議處理框架
6.2.1 URL 類的用法
6.2.2 URLConnection 類的用法
6.3 實現(xiàn)協(xié)議處理框架
6.3.1 創(chuàng)建 EchoURLConnection 類
6.3.2 創(chuàng)建 EchoURLStreamHandler 及工廠類
6.3.3 創(chuàng)建 EchoContentHandler 類及工廠類
6.3.4 在 EchoClient 類中運用 ECHO 協(xié)議處理框架
6.4 小結(jié)
6.5 練習題
第 7 章 用 Swing 組件展示 HTML 文檔
7.1 在按鈕等組件上展示 HTML 文檔
7.2 用 JEditorPane 組件創(chuàng)建簡單的瀏覽器
7.2.1 處理 HTML 頁面上的超級鏈接
7.2.2 處理 HTML 頁面上的表單
7.2.3 創(chuàng)建瀏覽器程序
7.3 小結(jié)
7.4 練習題
第 8 章 基于 UDP 的數(shù)據(jù)報和套接字
8.1 UDP 簡介
8.2 DatagramPacket 類
8.2.1 選擇數(shù)據(jù)報的大小
8.2.2 讀取和設(shè)置 DatagramPacket 的屬性
8.2.3 數(shù)據(jù)格式的轉(zhuǎn)換
8.2.4 重用 DatagramPacket
8.3 DatagramSocket 類
8.3.1 構(gòu)造 DatagramSocket
8.3.2 接收和發(fā)送數(shù)據(jù)報
8.3.3 管理連接
8.3.4 關(guān)閉 DatagramSocket
8.3.5 DatagramSocket 的選項
8.3.6 IP 服務類型選項
8.4 DatagramChannel 類
8.4.1 創(chuàng)建 DatagramChannel
8.4.2 管理連接
8.4.3 用 send()方法發(fā)送數(shù)據(jù)報
8.4.4 用 receive()方法接收數(shù)據(jù)報
8.4.5 用 write()方法發(fā)送數(shù)據(jù)報
8.4.6 用 read()方法接收數(shù)據(jù)報
8.4.7 Socket 選項
8.5 組播
8.5.1 MulticastSocket 類
8.5.2 組播 Socket 的范例
8.6 小結(jié)
8.7 練習題
第 9 章 對象的序列化與反序列化
9.1 JDK 類庫中的序列化 API
9.1.1 把對象序列化到文件
9.1.2 把對象序列化到網(wǎng)絡
9.2 實現(xiàn) Serializable 接口
9.2.1 序列化對象圖
9.2.2 控制序列化的行為
9.2.3 readResolve()方法在單例類中的運用
9.3 實現(xiàn) Externalizable 接口
9.4 可序列化類的不同版本的序列化兼容性
9.5 小結(jié)
9.6 練習題
第 10 章 Java 語言的反射機制
10.1 Java Reflection API 簡介
10.2 在遠程方法調(diào)用中運用反射機制
10.3 代理模式
10.3.1 靜態(tài)代理類
10.3.2 動態(tài)代理類
10.3.3 在遠程方法調(diào)用中運用代理類
10.4 小結(jié)
10.5 練習題
第 11 章 RMI 框架
11.1 RMI 的基本原理
11.2 創(chuàng)建第 1 個 RMI 應用
11.2.1 創(chuàng)建遠程接口
11.2.2 創(chuàng)建遠程類
11.2.3 創(chuàng)建服務器程序
11.2.4 創(chuàng)建客戶程序
11.2.5 運行 RMI 應用
11.3 遠程對象工廠設(shè)計模式
11.4 遠程方法中的參數(shù)與返回值傳遞
11.5 回調(diào)客戶端的遠程對象
11.6 遠程對象的并發(fā)訪問
11.7 分布式垃圾收集
11.8 遠程對象的 equals()、hashCode()和 clone()方法
11.9 使用安全管理器
11.10 RMI 應用的部署以及類的動態(tài)加載
11.11 遠程激活
11.12 小結(jié)
11.13 練習題
第 12 章 通過 JDBC API 訪問數(shù)據(jù)庫
12.1 JDBC 的實現(xiàn)原理
12.2 安裝和配置 MySQL 數(shù)據(jù)庫
12.3 JDBC API 簡介
12.4 JDBC API 的基本用法
12.4.1 處理字符編碼的轉(zhuǎn)換
12.4.2 把連接數(shù)據(jù)庫的各種屬性放在配置文件中
12.4.3 管理 Connection、Statement 和 ResultSet 對象的生命周期
12.4.4 執(zhí)行 SQL 腳本文件
12.4.5 處理 SQLException
12.4.6 輸出 JDBC 日志
12.4.7 獲得新插入記錄的主鍵值
12.4.8 設(shè)置批量抓取屬性
12.4.9 檢測驅(qū)動器使用的 JDBC 版本
12.4.10 元數(shù)據(jù)
12.5 可滾動以及可更新的結(jié)果集
12.6 行集
12.7 調(diào)用存儲過程
12.8 處理 Blob 和 Clob 類型數(shù)據(jù)
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 設(shè)置事務隔離級別
12.10 數(shù)據(jù)庫連接池
12.10.1 創(chuàng)建連接池
12.10.2 DataSource 數(shù)據(jù)源
12.11 小結(jié)
12.12 練習題
第 13 章 基于 MVC 和 RMI 的分布式應用
13.1 MVC 設(shè)計模式簡介
13.2 store 應用簡介
13.3 創(chuàng)建視圖
13.4 創(chuàng)建控制器
13.5 創(chuàng)建模型
13.6 創(chuàng)建獨立應用
13.7 創(chuàng)建分布式應用
13.8 小結(jié)
13.9 練習題
第 14 章 通過 JavaMail API 收發(fā)郵件
14.1 E-mail 協(xié)議簡介
14.1.1 SMTP
14.1.2 POP3
14.1.3 接收郵件的新協(xié)議 IMAP
14.1.4 MIME 簡介.
14.2 JavaMail API 簡介
14.3 建立 JavaMail 應用程序的開發(fā)環(huán)境
14.3.1 獲得 JavaMail API 的類庫
14.3.2 安裝和配置郵件服務器
14.4 創(chuàng)建 JavaMail 應用程序
14.5 身份驗證
14.6 授權(quán)碼驗證
14.7 URLName 類
14.8 創(chuàng)建和讀取復雜電子郵件
14.8.1 郵件地址
14.8.2 郵件頭部
14.8.3 郵件標記
14.8.4 郵件正文
14.9 操縱郵件夾
14.10 小結(jié)
14.11 練習題
第 15 章 安全網(wǎng)絡通信
15.1 SSL 簡介
15.1.1 加密通信
15.1.2 安全證書
15.1.3 SSL 握手
15.1.4 創(chuàng)建自我簽名的安全證書
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 創(chuàng)建基于 SSL 的安全服務器和安全客戶
15.4 小結(jié)
15.5 練習題
第 16 章 XML 數(shù)據(jù)處理
16.1 用 DOM 處理 XML 文檔
16.2 用 SAX 處理 XML 文檔
16.2.1 創(chuàng)建 XML 文檔的具體處理類 CustomerHandler
16.2.2 創(chuàng)建 XML 文檔的解析類 SaxDemo
16.3 用 JDOM 處理 XML 文檔
16.4 用 DOM4J 處理 XML 文檔
16.5 Java 對象的 XML 序列化和反序列化
16.6 小結(jié)
16.7 練習題
第 17 章 用 Axis 發(fā)布 Web 服務
17.1 SOAP 簡介
17.2 建立 Apache Axis 環(huán)境
17.3 在 Tomcat 上發(fā)布 Apache-Axis Web 應用
17.4 創(chuàng)建 SOAP 服務
17.4.1 創(chuàng)建提供 SOAP 服務的 Java 類
17.4.2 創(chuàng)建 SOAP 服務的發(fā)布描述文件
17.5 發(fā)布和管理 SOAP 服務
17.5.1 發(fā)布 SOAP 服務
17.5.2 管理 SOAP 服務
17.6 創(chuàng)建和運行 SOAP 客戶程序
17.7 小結(jié)
17.8 練習題
第 18 章 用 Spring 整合 CXF 發(fā)布 Web 服務
18.1 創(chuàng)建 Web 服務接口和實現(xiàn)類
18.2 在 Spring 配置文件中配置 Web 服務
18.3 在 web.xml 配置文件中配置 Spring 和 CXF
18.4 在 Tomcat 中發(fā)布 Web 服務
18.5 創(chuàng)建和運行客戶程序
18.6 小結(jié)
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 處理編譯和運行錯誤