Java 程序获取 URL 的组成部分


URL 也称为 统一资源定位符,是一个用于指定网页资源(如网页、图像、视频和文件)在互联网上的位置的字符串。URL 有助于轻松访问这些资源,并有助于从 Web 服务器检索资源。URL 也称为互联网地址或网络地址。在本节中,我们将讨论如何在 Java 中获取 URL 的不同组成部分。

URL 的组成部分

以下是 URL 的组成部分:

  • 协议 - 协议指定用于访问 Web 资源的方法。此方法用于指定客户端和服务器之间通信所使用的规则和规范。例如:HTTP、HTTPS、FTP、SMTP

  • 主机 - 主机标识资源的域名,即 IP 地址。例如:www.google.com

  • 端口 - 端口指定处理请求的服务器。如果未指定端口,则采用默认服务器。例如:80、443。

  • 路径 - 路径将服务器上的 Web 资源位置指定为文件或目录的路径。

  • 查询字符串 - 用于将参数作为名称-值对传递给 Web 资源。名称-值对由 & 分隔。

  • 片段 - 用于在 Web 资源中定位特定部分,并由 # 标识。

URL 示例

https://www.example.com/path/to/file.html?key=value#fragment

  • 协议:HTTPS

  • 主机:www.example.com

  • 端口:80

  • 路径:/path/to/file.html

  • 查询字符串:key=value

  • 片段:fragment

现在,我们将讨论使用 Java 编程语言获取 URL 不同组成部分的各种方法。

方法 1:使用 URL 类

在此方法中,我们将使用 ‘java.net’ 包中的 URL 类。它提供了各种内置函数来处理 URL。现在,我们将实现一个 Java 程序来查找所有组件。

提取 URL 组件的步骤

以下是提取 URL 组件的步骤:

使用的方法

以下是提取 URL 组件的方法

getProtocol() - 此方法用于获取 URL 的协议组件。它返回一个字符串。

URL url = new URL("https://www.example.com");
String protocol = url.getProtocol(); // gives us the protocol used in URL

getHost() - 此方法用于获取 URL 的主机组件。它返回一个字符串。

URL url = new URL("https://www.example.com");
String host = url.getHost();

getPort() - 此方法用于获取 URL 的端口号。它返回一个整数。

URL url = new URL("https://www.example.com:8080");
int port = url.getPort();

getPath() - 此方法用于获取 URL 的路径。

URL url = new URL("https://www.example.com/path/to/resource");
String path = url.getPath();

getQuery() - 此方法用于获取 URL 的查询字符串。

URL url = new URL("https://www.example.com/path/to/resource?key1=value1&key2=value2");
String query = url.getQuery()

getRef() - 此方法用于获取 URL 的片段。

URL url = new URL("https://www.example.com/path/to/resource?key1=value1&key2=value2#section1");
String fragment = url.getRef();

Java 程序获取 URL 的不同组成部分

在此示例中,我们创建了一个 URL 对象,并在创建的 URL 对象上使用不同的方法来获取 URL 的不同组成部分:

import java.net.URL;

public class Main {
   public static void main(String[] args) {
      try {
         URL url = new URL("https://www.example.com/path/to/file.html?key=value#fragment");
         System.out.println("Protocol: " + url.getProtocol());
         System.out.println("Host: " + url.getHost());
         System.out.println("Port: " + url.getPort());
         System.out.println("Path: " + url.getPath());
         System.out.println("Query: " + url.getQuery());
         System.out.println("Fragment: " + url.getRef());
      } catch (Exception e) {
         System.out.println("Error: " + e.getMessage());
      }
   }
}

输出

Protocol: https
Host: www.example.com
Port: -1
Path: /path/to/file.html
Query: key=value
Fragment: fragment

方法 2:使用 URI 类

在此方法中,我们将使用 ‘java.net’ 包中的 URI 类。它提供了各种内置函数来处理 URL。现在,我们将实现一个 Java 程序来查找所有组件。

使用 URI 类提取 URL 组件的步骤

以下是提取 URI 组件的步骤:

  • 使用 URI 类创建 URI 对象

  • 在 try 块中,使用以下方法打印组件

    • getScheme()
    • getHost()
    • getPort()
    • getPath()
    • getQuery()
    • getFragment()
  • 使用 catch() 方法捕获异常,并使用 getMessage() 方法打印消息。

使用的方法

以下是使用 URI 类提取 URL 组件的步骤:

getScheme() - 此方法类似于 getProtocol()。它用于获取 URL 的协议。

URL url = new URL("https://www.example.com/path/to/resource");
String scheme = url.getScheme();

getFragment() - 此方法类似于 getRef()。它用于获取 URL 的片段。

URI uri = new URI("https://www.example.com/path/to/resource?key1=value1&key2=value2#section1");
 String fragment = uri.getFragment();

substring() - 此方法用于通过将子字符串的开始和结束索引作为参数来从较大的字符串中获取较短的字符串。

String str = "Hello, world!";
String substr1 = str.substring(0, 5); // extracts "Hello"
String substr2 = str.substring(7); // extracts "world!"

indexOf() - 此方法用于查找字符串中特定字符的索引。

String str = "Hello, world!";
int index1 = str.indexOf('o'); // finds the first occurrence of 'o'

getMessage() - 此方法用于获取异常的错误消息。

errorObject.getMessage()

Java 程序使用 URI 类获取 URL 的不同组成部分

在此示例中,我们创建了一个 URI 对象,并在创建的 URL 对象上使用不同的方法来获取 URL 的不同组成部分:

import java.net.URI;
public class Main{
   public static void main(String[] args) {
      try {
         URI uri = new URI("https://www.example.com/path/to/file.html?key=value#fragment");
         System.out.println("Scheme: " + uri.getScheme());
         System.out.println("Host: " + uri.getHost());
         System.out.println("Port: " + uri.getPort());
         System.out.println("Path: " + uri.getPath());
         System.out.println("Query: " + uri.getQuery());
         System.out.println("Fragment: " + uri.getFragment());
      } catch (Exception e) {
         System.out.println("Error: " + e.getMessage());
      }
   }
}

输出

Scheme: https
Host: www.example.com
Port: -1
Path: /path/to/file.html
Query: key=value
Fragment: fragment

因此,在本文中,我们讨论了使用 Java 编程语言获取 URL 组件的不同方法。

更新于: 2024 年 8 月 10 日

1K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.