20180826(05)- Java URL處理
Java URL處理
URL(Uniform Resource Locator)中文名為統一資源定位符,有時也被俗稱為網頁地址。
表示為網際網路上的資源,如網頁或者FTP地址。
本章節我們將介紹Java是如處理URL的。URL可以分為如下幾個部分。
protocol://host:port/path?query#ref
protocol host port path?query#ref
protocols(協議)可以是 HTTP, HTTPS, FTP, 和File。port 為埠號。path為檔案路徑及檔名。
HTTP協議的URL例項如下:
http://www.ziqiangxuetang.com/index.html?language=cn#j2se
以上URL例項併為指定埠,因為HTTP協議預設的埠號為80。
URL 類方法
在java.net包中定義了URL類,該類用來處理有關URL的內容。對於URL類的建立和使用,下面分別進行介紹。
java.net.URL提供了豐富的URL構建方式,並可以通過java.net.URL來獲取資源。
public URL(String protocol, String host, int port, String file) throws MalformedURLException.
通過給定的引數(協議、主機名、埠號、檔名)建立URL。
public URL(String protocol, String host, String file) throws MalformedURLException
使用指定的協議、主機名、檔名建立URL,埠使用協議的預設埠。
public URL(String url) throws MalformedURLException
通過給定的URL字串建立URL
public URL(URL context, String url) throws MalformedURLException
使用基地址和相對URL建立
URL類中包含了很多方法用於訪問URL的各個部分,具體方法及描述如下:
public String getPath()
返回URL路徑部分。
public String getQuery()
返回URL查詢部分。
public String getAuthority()
獲取此 URL 的授權部分。
public int getPort()
返回URL埠部分
public int getDefaultPort()
返回協議的預設埠號。
public String getProtocol()
返回URL的協議
public String getHost()
返回URL的主機
public String getFile()
返回URL檔名部分
public String getRef()
獲取此 URL 的錨點(也稱為"引用")。
public URLConnection openConnection() throws IOException
開啟一個URL連線,並執行客戶端訪問資源。
以上例項演示了使用java.net的URL類獲取URL的各個部分引數:
URL url = new URL("http://www.ziqiangxuetang.com/index.html?language=cn#j2se");
import java.net.*;
import java.io.*;
public class URLDemo{
public static void main(String[] args){
try{
URL url = new URL("http://www.ziqiangxuetang.com/index.html?language=cn#j2se");
System.out.println("URL is " + url.toString());
System.out.println("protocol is "
+ url.getProtocol());
System.out.println("authority is "
+ url.getAuthority());
System.out.println("file name is " + url.getFile());
System.out.println("host is " + url.getHost());
System.out.println("path is " + url.getPath());
System.out.println("port is " + url.getPort());
System.out.println("default port is "
+ url.getDefaultPort());
System.out.println("query is " + url.getQuery());
System.out.println("ref is " + url.getRef());
}catch(IOException e){
e.printStackTrace();
}
}
}
以上例項編譯執行結果如下:
URL is http://www.ziqiangxuetang.com/index.html?language=cn#j2se
protocol is http
authority is www.ziqiangxuetang.com
file name is /index.htm?language=cn
host is www.amrood.com
path is /index.html
port is -1
default port is 80
query is language=cn
ref is j2se
URLConnections 類方法
openConnection() 返回一個 java.net.URLConnection。
例如:
1. 如果你連線HTTP協議的URL, openConnection() 方法返回 HttpURLConnection 物件。
2. 如果你連線的URL為一個 JAR 檔案, openConnection() 方法將返回 JarURLConnection 物件。
URLConnection 方法 略
以下例項中URL採用了HTTP 協議。 openConnection 返回HttpURLConnection物件。
略