JavaTM 2 Platform
Standard Ed. 6

java.net
類別 URLStreamHandler

java.lang.Object
  繼承者 java.net.URLStreamHandler

public abstract class URLStreamHandler
extends Object

抽象類別 URLStreamHandler 是所有串流協議處理程序的通用父級類別。串流協議處理程序知道如何為特定的協議型別,如 httpftpgopher 進行連接。

在大多數情況下,URLStreamHandler 子類別的實例都不是由應用程序直接創建的。而是在建構 URL 過程中第一次遇到協議名稱時,自動載入適當的串流協議處理程序。

從以下版本開始:
JDK1.0
另請參見:
URL.URL(java.lang.String, java.lang.String, int, java.lang.String)

建構子摘要
URLStreamHandler()
           
 
方法摘要
protected  boolean equals(URL u1, URL u2)
          提供預設的 equals 計算。
protected  int getDefaultPort()
          返回由該處理程序解析的 URL 的預設埠號。
protected  InetAddress getHostAddress(URL u)
          獲取主機的 IP 位址。
protected  int hashCode(URL u)
          提供預設的雜湊計算。
protected  boolean hostsEqual(URL u1, URL u2)
          比較兩個 URL 的主機元件。
protected abstract  URLConnection openConnection(URL u)
          打開一個到 URL 參數參考的物件的連接。
protected  URLConnection openConnection(URL u, Proxy p)
          與 openConnection(URL) 相同,不同點在於:通過指定的代理進行連接;不支持代理方式的協議處理程序將忽略該代理參數並進行正常的連接。
protected  void parseURL(URL u, String spec, int start, int limit)
          將 URL 的字元表示形式解析為 URL 物件。
protected  boolean sameFile(URL u1, URL u2)
          比較兩個 url 以確定它們是否參考相同的檔案(即具有相同的協議、主機、埠號和路徑)。
protected  void setURL(URL u, String protocol, String host, int port, String file, String ref)
          已過時。 使用 setURL(URL, String, String, int, String, String, String, String);
protected  void setURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref)
          將 URL 參數的欄位設置為指示的值。
protected  String toExternalForm(URL u)
          將特定協議的 URL 轉換為 String
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

URLStreamHandler

public URLStreamHandler()
方法詳細資訊

openConnection

protected abstract URLConnection openConnection(URL u)
                                         throws IOException
打開一個到 URL 參數參考的物件的連接。此方法應該由子類別覆寫。

如果對應處理程序的協議(例如,HTTP 或 JAR)存在屬於以下包或其子包之一的公共、專用 URLConnection 子類別:java.lang、java.io、java.util、java.net,返回的連接將為該子類別的型別。例如,對於 HTTP,將返回 HttpURLConnection,對於 JAR,將返回 JarURLConnection。

參數:
u - 所連接的 URL。
返回:
對應於 URLURLConnection 物件。
拋出:
IOException - 如果打開連接時發生 I/O 錯誤。

openConnection

protected URLConnection openConnection(URL u,
                                       Proxy p)
                                throws IOException
與 openConnection(URL) 相同,不同點在於:通過指定的代理進行連接;不支持代理方式的協議處理程序將忽略該代理參數並進行正常的連接。 調用該方法會提示系統的預設 ProxySelector 設置。

參數:
u - 所連接的 URL。
p - 進行連接所通過的代理。如果希望使用直接連接,則應指定 Proxy.NO_PROXY。
返回:
對應於 URLURLConnection 物件。
拋出:
IOException - 如果打開連接時發生 I/O 錯誤。
IllegalArgumentException - 如果 u 或 p 為 null,或者 p 套件含錯誤的型別。
UnsupportedOperationException - 如果實作該協議的子類別不支持該方法。
從以下版本開始:
1.5

parseURL

protected void parseURL(URL u,
                        String spec,
                        int start,
                        int limit)
URL 的字元表示形式解析為 URL 物件。

如果有任何繼承的上下文,則已將其複製到 URL 參數中。

URLStreamHandlerparseURL 方法按照 http 規範解析該字元串表示形式。多數 URL 協議家族的解析都很相似。具有不同語法的協議的串流協議處理程序必須覆寫該例程。

參數:
u - 用於接收解析規範的結果的 URL
spec - 代表必須解析的 URL 的 String
start - 解析開始處的字元索引。其只傳遞 ':'(如果有一個),用來指定確定的協議名稱。
limit - 停止解析的字元位置。這是字元串的結束或 "#" 字元位置(如果有)。井號之後的所有資訊都指示一個定位點。

getDefaultPort

protected int getDefaultPort()
返回由該處理程序解析的 URL 的預設埠號。具有預設埠號號的處理程序應覆寫此方法。

返回:
由該處理程序解析的 URL 的預設埠號。
從以下版本開始:
1.3

equals

protected boolean equals(URL u1,
                         URL u2)
提供預設的 equals 計算。它可能由其他協議所用的處理程序覆寫,這些協議對 equals() 有不同要求。該方法要求所有參數都不為 null。因為它只能由 java.net.URL 類別調用,所以參數都不為 null,這一點可以得到保證。

參數:
u1 - URL 物件
u2 - URL 物件
返回:
如果兩個 url 被視為相等(即它們參考的是同一檔案中的相同片段),則返回 true
從以下版本開始:
1.3

hashCode

protected int hashCode(URL u)
提供預設的雜湊計算。它可能由其他協議所用的處理程序覆寫,這些協議對 hashCode 計算有不同要求。

參數:
u - URL 物件
返回:
適用於雜湊表索引的 int
從以下版本開始:
1.3

sameFile

protected boolean sameFile(URL u1,
                           URL u2)
比較兩個 url 以確定它們是否參考相同的檔案(即具有相同的協議、主機、埠號和路徑)。該方法要求所有參數都不為 null。因為它只能由 java.net.URL 類別間接調用,所以參數都不為 null,這一點可以得到保證。

參數:
u1 - URL 物件
u2 - URL 物件
返回:
如果 u1 和 u2 參考的是同一檔案,則返回 true
從以下版本開始:
1.3

getHostAddress

protected InetAddress getHostAddress(URL u)
獲取主機的 IP 位址。如果主機欄位為空或出現 DNS 錯誤,則會返回 null。

參數:
u - URL 物件
返回:
表示主機 IP 位址的 InetAddress
從以下版本開始:
1.3

hostsEqual

protected boolean hostsEqual(URL u1,
                             URL u2)
比較兩個 URL 的主機元件。

參數:
u1 - 要比較的第一個主機的 URL
u2 - 要比較的第二個主機的 URL
返回:
當且僅當它們相等時,返回 true,否則返回 false
從以下版本開始:
1.3

toExternalForm

protected String toExternalForm(URL u)
將特定協議的 URL 轉換為 String

參數:
u - URL
返回:
URL 參數的字元串表示形式。

setURL

protected void setURL(URL u,
                      String protocol,
                      String host,
                      int port,
                      String authority,
                      String userInfo,
                      String path,
                      String query,
                      String ref)
URL 參數的欄位設置為指示的值。只有從 URLStreamHandler 派生的類別才能夠在 URL 上調用 set 方法。

參數:
u - 要修改的 URL。
protocol - 協議名稱。
host - 對應 URL 的遠端主機值。
port - 遠端機器上的埠號。
authority - URL 的授權部分。
userInfo - URL 的 userInfo 部分。
path - URL 的 path 部分。
query - URL 的 query 部分。
ref - 參考。
拋出:
SecurityException - 如果該 URL 的協議處理程序與這一個不同
從以下版本開始:
1.3
另請參見:
URL.set(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String)

setURL

@Deprecated
protected void setURL(URL u,
                                 String protocol,
                                 String host,
                                 int port,
                                 String file,
                                 String ref)
已過時。 使用 setURL(URL, String, String, int, String, String, String, String);

URL 參數的欄位設置為指示的值。只有從 URLStreamHandler 派生的類別才能夠在 URL 上調用 set 方法。

參數:
u - 要修改的 URL。
protocol - 協議名稱。從 1.2 開始,忽略了該值。
host - 對應 URL 的遠端主機值。
port - 遠端機器上的埠號。
file - 檔案。
ref - 參考。
拋出:
SecurityException - 如果該 URL 的協議處理程序與這一個不同

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only