此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