此Java教程适用于JDK 8。本页中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言功能的摘要。
请参阅JDK发行说明,了解所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息。
URL类提供了几种方法,让您查询URL对象。您可以使用这些访问方法从URL中获取协议、授权、主机名、端口号、路径、查询、文件名和引用:
getProtocol
getAuthority
getHost
getPort
getPort方法返回一个整数,表示端口号。如果端口未设置,getPort将返回-1。
getPath
getQuery
getFile
getFile方法返回与getPath相同的值,加上getQuery的连接,如果有的话。
getRef
请记住,并非所有URL地址都包含这些组件。URL类提供这些方法是因为HTTP URL包含这些组件,而且可能是最常用的URL。URL类在某种程度上是以HTTP为中心的。
无论您使用哪个构造函数创建URL对象,都可以使用这些getXXX方法获取有关URL的信息。
URL类以及这些访问方法使您无需再次解析URL!只需根据URL的任何字符串规范创建一个新的URL对象,然后调用所需信息的任何访问方法。下面是一个小例子,它从字符串规范创建一个URL,然后使用URL对象的访问方法解析URL:
import java.net.*;
import java.io.*;
public class ParseURL {
public static void main(String[] args) throws Exception {
URL aURL = new URL("http://example.com:80/docs/books/tutorial"
+ "/index.html?name=networking#DOWNLOADING");
System.out.println("protocol = " + aURL.getProtocol());
System.out.println("authority = " + aURL.getAuthority());
System.out.println("host = " + aURL.getHost());
System.out.println("port = " + aURL.getPort());
System.out.println("path = " + aURL.getPath());
System.out.println("query = " + aURL.getQuery());
System.out.println("filename = " + aURL.getFile());
System.out.println("ref = " + aURL.getRef());
}
}
程序的输出如下所示:
protocol = http authority = example.com:80 host = example.com port = 80 path = /docs/books/tutorial/index.html query = name=networking filename = /docs/books/tutorial/index.html?name=networking ref = DOWNLOADING