Java網絡編程核心技術詳解(視頻微課版)
內容描述
本書結合大量典性的實例,詳細介紹了用Java來編寫網絡應用程序的技術。
本書的範例都基於*新的JDK10版本。
本書內容包括:Java網絡編程的基礎知識、套接字編程、非阻塞通信、
創建HTTP服務器與客戶程序、數據報通信、對象的序列化與反序列化、
Java反射機制、RMI框架、JDBC API 、JavaMail API、MVC設計模式、
安全網絡通信、XML數據處理和Web服務。
閱讀本書,讀者不僅可以掌握網絡編程的實用技術,
還可以進一步提高按照面向對象的思想來設計和編寫Java軟件的能力。
本書適用於所有Java編程人員,包括Java初學者及資深Java開發人員。
本書還可作為高校的Java教材,以及企業Java培訓教材。
目錄大綱
第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處理編譯和運行錯誤
作者介紹
孫衛琴
知名IT作家和Java專家,畢業於上海交通大學,隨後主要從事基於Java的軟件開發工作,
在此其間還從事Java方面的培訓和諮詢工作。
2002年開始Java技術領域的創作,文風清晰嚴謹、深入淺出,深受讀者歡迎,
其多部作品的銷量在同類書籍中一度位居全國榜首。
代表著作有:《大話Java程序設計從入門到精通》《Java面向對象編程》
《Java網絡編程核心技術詳解》《Java逍遙遊記》《Hibernate逍遙遊記》
《精通JPA與Hibernate: Java對象持久化技術詳解》
《精通Struts: 基於MVC的Java Web設計與開發》 《Tomcat與Java Web開發技術詳解》
《Java 2認證考試指南與試題解析》