一、URL概念
URL(Uniform Resource Locator,统一资源定位符)是为标志Internet上资源位置而设的一种编制方式。在Internet上的每个文件都有一个用URL来标志的地址。它最初是由蒂姆.伯纳斯.李发明用来作为万维网的地址,现在它已经被万维网联盟编制为因特网标准RFC 1738。
URL的基本结构由以下5部分组成,各部分之间采用不同的分隔符: 传输协议 ://主机 [:端口] [/文件] [# 引用]
<传输协议> 指定传输协议名,如HTTP、FTP、FILE等,默认为HTTP。
<主机> 指定资源所在的计算机名,可以是IP地址或主机域名。
<端口> 指定提供服务的端口号,取值为0~65535之间的整数,0~1023端口是特定网络应用的专用端口,如HTTP用80端口,FTP用20和21端口。
<文件> 指定资源文件的路径名,web站点主页文件名默认为index.html。
<引用> 指定资源内的某个引用(reference)。
<端口> 、<文件>和<引用>是可选项,可不加,如: http://www.edu.cn:80/index.html
二、URL类
(一)URL类表示URL地址。类声明与构造如下:
public final class URL implements java.io.Serializable{
public URL(String spec)throws MalformedURLException;
public URL(String protocol, String host,int port, String filename)throws MalformedURLException
}
其中,参数spec指定一个包含协议、主机、端口、文件名的完整URL地址;protocol指定协议;host指定主机;port指定端口;filename指定文件名。
例如,创建一下URL对象:
URL url1 = new URL("file://localhost/D:/Program Flies/Java/docs/api/index.html");
URL url2 = new URL("http://www.phei.com.cn");
(二)URL类常用的方法:
String getAuthority():获得此URL的授权部分。
Object getContent():获得此URL的内容。
int getDefaultPort():获得与此URL关联协议的默认端口号。
String getFile():获得此URL的文件名。
String getHost():获得此URL的主机名(如果适用)。
String getPath():获得此URL的路径部分。
int getPort():获得此URL的端口号。
String getProtocol():获得此URL的协议名称。
String getQuery():获得此URL的查询部分。
String getRef():获得此URL的锚点(也称为"引用")。
String getUserInfo():获得此URL的userInfo部分。
URLConnection openConnection():返回一个URLConnection对象,它表示到URL所引用的远程对象的连接。
InputStream openStream():打开到此URL的连接,并返回一个用于从该连接读入的InputStream。
boolean sameFile(URL other):比较两个URL,不包括片段部分。
protected void set(String protocol, String host, int port, String file, String ref):设置URL的字段。
static void setURLStreamHandlerFacto