解析 URL

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

  • getProtocol

    • 返回 URL 的协议标识符组成部分。
  • getAuthority

    • 返回 URL 的授权部分。
  • getHost

    • 返回 URL 的主机名部分。
  • getPort

    • 返回 URL 的端口号部分。 getPort方法返回一个整数,即端口号。如果未设置端口,则getPort返回-1.
  • getPath

    • 返回此 URL 的路径部分。
  • getQuery

    • 返回此 URL 的查询组件。
  • getFile

    • 返回 URL 的文件名部分。 getFile方法返回的结果与getPath相同,再加上getQuery的值的 String 联(如果有)。
  • getRef

    • 返回 URL 的参考组成部分。

Note:

请记住,并非所有 URL 地址都包含这些组件。 URL 类提供了这些方法,因为 HTTP URL 确实包含这些组件,并且可能是最常用的 URL。 URL 类有点以 HTTP 为中心。

您可以使用这些getXXX方法来获取有关 URL 的信息,而与创建 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