文档

Java™教程
隐藏目录
解析URL
路径:自定义网络
课程:URL处理

解析URL

URL类提供了几种方法,让您查询URL对象。您可以使用这些访问方法从URL中获取协议、授权、主机名、端口号、路径、查询、文件名和引用:

getProtocol
返回URL的协议标识符组件。
getAuthority
返回URL的授权组件。
getHost
返回URL的主机名组件。
getPort
返回URL的端口号组件。 getPort方法返回一个整数,表示端口号。如果端口未设置,getPort将返回-1。
getPath
返回URL的路径组件。
getQuery
返回URL的查询组件。
getFile
返回URL的文件名组件。 getFile方法返回与getPath相同的值,加上getQuery的连接,如果有的话。
getRef
返回URL的引用组件。

注意: 

请记住,并非所有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

上一页: 创建URL
下一页: 直接从URL读取