8.2 基于URL的高層次Java網(wǎng)絡(luò)編程
8.2.1一致資源定位器URL
URL(Uniform Resource Locator)是一致資源定位器的簡(jiǎn)稱,它表示Internet上某一資源的地址。通過URL我們可以訪問Internet上的各種網(wǎng)絡(luò)資源,比如最常見的WWW,F(xiàn)TP站點(diǎn)。瀏覽器通過解析給定的URL可以在網(wǎng)絡(luò)上查找相應(yīng)的文件或其他資源。
URL是最為直觀的一種網(wǎng)絡(luò)定位方法。使用URL符合人們的語言習(xí)慣,容易記憶,所以應(yīng)用十分廣泛。而且在目前使用最為廣泛的TCP/IP中對(duì)于URL中主機(jī)名的解析也是協(xié)議的一個(gè)標(biāo)準(zhǔn),即所謂的域名解析服務(wù)。使用URL進(jìn)行網(wǎng)絡(luò)編程,不需要對(duì)協(xié)議本身有太多的了解,功能也比較弱,相對(duì)而言是比較簡(jiǎn)單的,所以在這里我們先介紹在Java中如何使用URL進(jìn)行網(wǎng)絡(luò)編程來引導(dǎo)讀者入門。
8.2.2 URL的組成
protocol://resourceName
協(xié)議名(protocol)指明獲取資源所使用的傳輸協(xié)議,如http、ftp、gopher、file等,資源名(resourceName)則應(yīng)該是資源的完整地址,包括主機(jī)名、端口號(hào)、文件名或文件內(nèi)部的一個(gè)引用。例如:
http://www.sun.com/ 協(xié)議名://主機(jī)名
http://home.netscape.com/home/welcome.html 協(xié)議名://機(jī)器名+文件名
http://www.gamelan.com:80/Gamelan/network.html#BOTTOM 協(xié)議名://機(jī)器名+端口號(hào)+文件名+內(nèi)部引用
端口號(hào)是和Socket編程相關(guān)的一個(gè)概念,初學(xué)者不必在此深究,在后面會(huì)有詳細(xì)講解。內(nèi)部引用是HTML中的標(biāo)記,有興趣的讀者可以參考有關(guān)HTML的書籍。
8.2.3 創(chuàng)建一個(gè)URL
為了表示URL, java.net中實(shí)現(xiàn)了類URL。我們可以通過下面的構(gòu)造方法來初始化一個(gè)URL對(duì)象:
(1) public URL (String spec);
通過一個(gè)表示URL地址的字符串可以構(gòu)造一個(gè)URL對(duì)象。
URL urlBase=new URL("http://www. 263.net/")
(2) public URL(URL context, String spec);
通過基URL和相對(duì)URL構(gòu)造一個(gè)URL對(duì)象。
URL net263=new URL ("http://www.263.net/");
URL index263=new URL(net263, "index.html")
(3) public URL(String protocol, String host, String file);
new URL("http", "www.gamelan.com", "/pages/Gamelan.net. html");
(4) public URL(String protocol, String host, int port, String file);
URL gamelan=new URL("http", "www.gamelan.com", 80, "Pages/Gamelan.network.html");
注意:類URL的構(gòu)造方法都聲明拋棄非運(yùn)行時(shí)例外(MalformedURLException),因此生成URL對(duì)象時(shí),我們必須要對(duì)這一例外進(jìn)行處理,通常是用try-catch語句進(jìn)行捕獲。格式如下:
try{
URL myURL= new URL(…)
}catch (MalformedURLException e){
…
//exception handler code here
…
}
8.2.1一致資源定位器URL
URL(Uniform Resource Locator)是一致資源定位器的簡(jiǎn)稱,它表示Internet上某一資源的地址。通過URL我們可以訪問Internet上的各種網(wǎng)絡(luò)資源,比如最常見的WWW,F(xiàn)TP站點(diǎn)。瀏覽器通過解析給定的URL可以在網(wǎng)絡(luò)上查找相應(yīng)的文件或其他資源。
URL是最為直觀的一種網(wǎng)絡(luò)定位方法。使用URL符合人們的語言習(xí)慣,容易記憶,所以應(yīng)用十分廣泛。而且在目前使用最為廣泛的TCP/IP中對(duì)于URL中主機(jī)名的解析也是協(xié)議的一個(gè)標(biāo)準(zhǔn),即所謂的域名解析服務(wù)。使用URL進(jìn)行網(wǎng)絡(luò)編程,不需要對(duì)協(xié)議本身有太多的了解,功能也比較弱,相對(duì)而言是比較簡(jiǎn)單的,所以在這里我們先介紹在Java中如何使用URL進(jìn)行網(wǎng)絡(luò)編程來引導(dǎo)讀者入門。
8.2.2 URL的組成
protocol://resourceName
協(xié)議名(protocol)指明獲取資源所使用的傳輸協(xié)議,如http、ftp、gopher、file等,資源名(resourceName)則應(yīng)該是資源的完整地址,包括主機(jī)名、端口號(hào)、文件名或文件內(nèi)部的一個(gè)引用。例如:
http://www.sun.com/ 協(xié)議名://主機(jī)名
http://home.netscape.com/home/welcome.html 協(xié)議名://機(jī)器名+文件名
http://www.gamelan.com:80/Gamelan/network.html#BOTTOM 協(xié)議名://機(jī)器名+端口號(hào)+文件名+內(nèi)部引用
端口號(hào)是和Socket編程相關(guān)的一個(gè)概念,初學(xué)者不必在此深究,在后面會(huì)有詳細(xì)講解。內(nèi)部引用是HTML中的標(biāo)記,有興趣的讀者可以參考有關(guān)HTML的書籍。
8.2.3 創(chuàng)建一個(gè)URL
為了表示URL, java.net中實(shí)現(xiàn)了類URL。我們可以通過下面的構(gòu)造方法來初始化一個(gè)URL對(duì)象:
(1) public URL (String spec);
通過一個(gè)表示URL地址的字符串可以構(gòu)造一個(gè)URL對(duì)象。
URL urlBase=new URL("http://www. 263.net/")
(2) public URL(URL context, String spec);
通過基URL和相對(duì)URL構(gòu)造一個(gè)URL對(duì)象。
URL net263=new URL ("http://www.263.net/");
URL index263=new URL(net263, "index.html")
(3) public URL(String protocol, String host, String file);
new URL("http", "www.gamelan.com", "/pages/Gamelan.net. html");
(4) public URL(String protocol, String host, int port, String file);
URL gamelan=new URL("http", "www.gamelan.com", 80, "Pages/Gamelan.network.html");
注意:類URL的構(gòu)造方法都聲明拋棄非運(yùn)行時(shí)例外(MalformedURLException),因此生成URL對(duì)象時(shí),我們必須要對(duì)這一例外進(jìn)行處理,通常是用try-catch語句進(jìn)行捕獲。格式如下:
try{
URL myURL= new URL(…)
}catch (MalformedURLException e){
…
//exception handler code here
…
}

