URL提供了一個相當容易理解的形式來惟一確定或對Internet上的信息進行編址。瀏覽器用URL來識別Web上的信息。在Java有網絡類庫中,java.net.URL類爲使用URL在Internet上獲取信息提供了一個簡單的、簡潔的用戶編程接口。
標準的URL以四個元素爲基礎:
第一個是協議名,用冒號(:)來將它與定位符其他部分相隔離。儘管現在所有的事情都通過HTTP協議完成,但它不是惟一的協議,常見的其他協議還有ftp、gother、mailto等。
第二個元素是主機名或所用主機的IP地址,這由左邊的雙斜線(//)和右邊的單斜線(/)或可選冒號(:)限制。
第三個成分,端口號,是可選的參數,由主機名左邊的冒號(:)和右邊的斜線(/)限制(默認端口爲80,是預定義的HTTP端口,所以“:80”是多餘的)。
第四個部分是實際的文件路徑。因此標準的URL格式定義如下:
<scheme> :// <user> : <password> @ <host> : <port> / <url-path>
爲了表示URL,在Java語言的網絡類庫java.net中提供了一個URL類,該類爲在Internet上獲取信息提供了一個簡單的、簡潔的用戶編程接口。URL類有多個構造方法,通過構造方法來初始化一個URL對象。
public URL(String urlSpecifier);
public URL(URL baseURL, String relativeURL);
public URL(String protocolName, String hostName, int port, String path);
public URl(String protocolName, String hostName, String path); // 使用缺省80端口
第一個構造方法是通過一個表示URL地址的字符串來構造一個URL對象,例如:
URL url1= new URL("http://len.javaeye.com");
第二個構造方法是通過一個URL對象和一個文件名來構造一個URL對象,例如:
URL url1 = new URL(http://len.javaeye.com);
URL url2 = new URL(url1, "index.html");
另外的兩個構造方法則是通過分別指定傳輸協議、主機名、端口號、和文件名來構造一個URL對象,例如:
URL url3 = new URL("http", "www.len.com", 80 ,"index.html");
URL url4 = new URL("http", "www.len.com", "index.html");
除了上面的構造方法外,URL還提供了一些成員方法用於獲取URL對象的屬性:
public String getProtocol(); // 獲取URL的協議名
public String getHost(); // 獲取URL的主機名
public int getPort(); // 獲取URL的端口號,如果沒高端口,則返回-1
public String getFile(); // 獲取URL的文件名