JDK_API剖析之java.net包
為實現網絡應用程序提供類。(按照字母順序排序)
1、Authenticator
- 抽象類
- 自1.2開始有
- 無父類和接口
-
Authenticator 類表示懂得如何獲得網絡連接驗證的對象。通常,它通過提示用戶輸入信息來完成此操作。應用程序通過重寫子類中的
getPasswordAuthentication()
使用此類。此方法通常使用各種 getXXX() 訪問器方法獲取關於請求驗證的實體的信息。然後,它必須通過與用戶交互或者某些其他非交互手段獲取用戶名和密碼。之後憑據將以PasswordAuthentication
返回值的形式返回。接下來通過調用setDefault(Authenticator)
2、BindException
- 類、異常
- 自1.1開始有
- 繼承SocketException
-
試圖將套接字綁定到本地地址和端口時發生錯誤的情況下,拋出此異常。這些錯誤通常發生在端口正在使用中或無法分配所請求的本地地址時。
3、CacheRequest
- 抽象類
- 自1.5開始有
- 無父類和接口
-
表示在 ResponseCache 中存儲資源的通道。這種類的實例提供一個 OutputStream 對象,協議處理程序可以調用該對象來將資源數據存儲到緩存中;另外還提供一個 abort() 方法,該方法允許中斷和放棄緩存存儲操作。如果從緩存讀取響應或將響應寫入緩存時遇到 IOException,則將中止當前緩存存儲操作。
4、CacheResponse
- 抽象類
- 自1.5開始有
- 無父類和接口
-
表示從 ResponseCache 獲取資源的通道。這種類的實例提供返回實體正文的 InputStream,同時提供一個返回關聯響應頭的 getHeaders() 方法。
5、ConnectException
- 類、異常
- 自1.1開始有
- 繼承SocketException
-
試圖將套接字連接到遠程地址和端口時發生錯誤的情況下,拋出此異常。這些錯誤通常發生在拒絕遠程連接時(例如,沒有任何進程在遠程地址/端口上進行偵聽)。
6、ContentHandler
- 抽象類
- 自1.0開始有
- 無父
-
抽象類
ContentHandler
URLConnection
讀取Object
的所有類的超類。應用程序一般不直接調用此類中的getContent
方法。而是調用URL
或URLConnection
類中的getContent
方法。應用程序的內容處理程序工廠(實現ContentHandlerFactory
接口的類的實例,該接口通過調用setContentHandler
設置)通過某個String
來調用,該 String 給出將在套接字上接收的對象的 MIME 類型。工廠返回ContentHandler
的子類的實例,並調用其getContent
方法創建對象。
7、ContentHandlerFactory
- 接口
- 自1.0開始有
- 無父
-
此接口定義內容處理程序的工廠。此接口的實現應該將 MIME 類型映射到
ContentHandler
的實例中。URLStreamHandler
類使用此接口創建 MIME 類型的ContentHandler
。 - 創建從
URLStreamHandler
讀取對象的新ContentHandler
的方法createContentHandler(String mimetype)
8、CookieHandler
- 抽象類
- 自1.5開始有
- 無父
-
CookieHandler 對象提供一種回調機制以將 HTTP 狀態管理策略實現掛鉤到 HTTP 協議處理程序。HTTP 狀態管理機制利用 HTTP 請求和響應指定創建有狀態的會話的方式。
可以通過執行 CookieHandler.setDefault(CookieHandler) 來註冊 HTTP 協議處理程序要使用的系統級 CookieHandler。調用 CookieHandler.getDefault() 可以獲取當前註冊的 CookieHandler。 有關 HTTP 狀態管理的更多信息,請參見 RFC 2965: HTTP 狀態管理機制。
9、CookieManager
- 抽象類
- 自1.6開始有
- 繼承CookieHandler
-
CookieManager 提供
CookieHandler
的具體實現,它將 cookie 的存儲區與圍繞接受和拒絕 cookie 的策略分離開來。使用管理存儲的CookieStore
以及做出 cookie 接受/拒絕決策的CookiePolicy
對象來初始化 CookieManager。java.net 包中的 HTTP cookie 管理如下所示:
use CookieHandler <------- HttpURLConnection ^ | impl | use CookieManager -------> CookiePolicy | use |--------> HttpCookie | ^ | | use | use | |--------> CookieStore ^ | impl | Internal in-memory implementation
10、CookiePolicy
- 接口
- 自1.6開始有
- 無父
-
CookiePolicy 實現決定應該接受哪個 cookie 以及應該拒絕哪個 cookie。提供了三種預定義的策略實現,即 ACCEPT_ALL、ACCEPT_NONE 和ACCEPT_ORIGINAL_SERVER。
11、CookieStore
- 接口
- 自1.6開始有
- 無父
-
表示 cookie 存儲區的 CookieStore 對象。可以存儲和獲取 cookie。
CookieManager
將調用 CookieStore.add 為每個傳入的 HTTP 響應保存 cookie,調用 CookieStore.get 為每個傳出的 HTTP 請求獲取 cookie。CookieStore 負責移除已過期的 HttpCookie 實例。
12、DatagramPacket
- final類
- 自1.0開始有
- 無父
-
此類表示數據報包。數據報包用來實現無連接包投遞服務。每條報文僅根據該包中包含的信息從一臺機器路由到另一臺機器。從一臺機器發送到另一臺機器的多個包可能選擇不同的路由,也可能按不同的順序到達。不對包投遞做出保證。
13、DatagramSocket
- 類
- 自1.0開始有
- 無父
-
此類表示用來發送和接收數據報包的套接字。
數據報套接字是包投遞服務的發送或接收點。每個在數據報套接字上發送或接收的包都是單獨編址和路由的。從一臺機器發送到另一臺機器的多個包可能選擇不同的路由,也可能按不同的順序到達。
在 DatagramSocket 上總是啟用 UDP 廣播發送。為了接收廣播包,應該將 DatagramSocket 綁定到通配符地址。在某些實現中,將 DatagramSocket 綁定到一個更加具體的地址時廣播包也可以被接收。
示例:
DatagramSocket s = new DatagramSocket(null); s.bind(new InetSocketAddress(8888));
這等價於:DatagramSocket s = new DatagramSocket(8888);
兩個例子都能創建能夠在 UDP 8888 端口上接收廣播的 DatagramSocket。
14、DatagramSocketImpl
- 抽象類
- 自1.1開始有
- 實現SocketOptions
- 數據報和多播套接字實現的抽象基類。
15、DatagramSocketImplFactory
- 接口
- 自1.3開始有
- 無父
-
此接口定義用於數據報套接字實現的工廠。
DatagramSocket
類使用它來創建實際的套接字實現。 - 方法DatagramSocketImpl
createDatagramSocketImpl()
16、FileNameMap
- 接口
- 自1.3開始有
- 無父
-
提供在文件名和 MIME 類型字符串之間進行映射的機制的簡單接口。
- 方法
String
getContentTypeFor(String fileName),獲取指定文件名的 MIME 類型。
17、HttpCookie
- final類
- 自1.6開始有
- 實現Cloneable
-
HttpCookie 對象表示一個 http cookie,該 cookie 帶有服務器和用戶代理之間的狀態信息。廣泛采用 Cookie 來創建有狀態 (stateful) 會話。
18、HttpURLConnection
- 抽象類
- 自1.1開始有
- 繼承URLConnection
-
支持 HTTP 特定功能的 URLConnection。有關詳細信息,請參閱 the spec 。每個 HttpURLConnection 實例都可用於生成單個請求,但是其他實例可以透明地共享連接到 HTTP 服務器的基礎網絡。請求後在 HttpURLConnection 的 InputStream 或 OutputStream 上調用 close() 方法可以釋放與此實例關聯的網絡資源,但對共享的持久連接沒有任何影響。如果在調用 disconnect() 時持久連接空閑,則可能關閉基礎套接字。
19、IDN
- final類
- 自1.6開始有
- 無父
-
提供在普通 Unicode 表示形式和 ASCII 兼容性編碼 (ACE) 表示形式之間進行國際化域名 (IDN) 轉換的方法。國際化域名可以使用整個 Unicode 範圍內的字符,而傳統域名只限於 ASCII 字符。ACE 是只使用 ASCII 字符的 Unicode 字符串編碼方式,能夠與只識別傳統域名的軟件(如 Domain Name System)一起使用。
20、Inet4Address
- final類
- 自1.4開始有
- 繼承InetAddress
-
此類表示 Internet Protocol version 4 (IPv4) 地址。此類是由 RFC 790:Assigned Numbers、RFC 1918:Address Allocation for Private Internets 和 RFC 2365:Administratively Scoped IP Multicast 定義的。
IP 地址的文本表示形式
用作方法輸入的 IPv4 地址的文本表示形式采取以下形式之一:
d.d.d.d d.d.d d.d d 當指定四個部分時,將每個部分解釋為一個數據字節,並從左到右分配給 IPv4 地址的四個字節。
當指定三部分地址時,將最後一個部分解釋為 16 位量,並放置在網絡地址的最右邊兩個字節。這使得三部分地址格式便於將 Class B 網絡地址指定為 128.net.host。
當提供兩部分地址時,將最後一個部分解釋為 24 位量,並放置在網絡地址的最右邊三個字節。這使得兩部分地址格式便於將 Class A 網絡地址指定為 net.host。
當僅給出一個部分時,值被直接存儲在網絡地址中,無需進行字節重排。
對於將文本表示形式作為輸出值返回的方法而言,使用第一種形式,即使用以點分隔的四個字符串。
21、Inet6Address
- final類
- 自1.4開始有
- 繼承InetAddress
-
此類表示互聯網協議第 6 版 (IPv6) 地址。
22、InetAddress
- 類
- 自1.0開始有
- 實現Serializable
-
此類表示互聯網協議 (IP) 地址。
23、InetSocketAddress
- 類
- 自1.0開始有
- 繼承SocketAddress
-
此類表示互聯網協議 (IP) 地址。
JDK_API剖析之java.net包