Java 程序获取 URL 的组成部分

javaobject oriented programmingprogramming更新于 2024/8/5 22:34:00

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

URL 的组成部分

以下是 URL 的组成部分 -

  • 协议 - 协议指定使用哪种方法来访问 Web 资源。此方法用于指定客户端和服务器之间通信所使用的规则和规定。示例:HTTPS、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 对象

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

      • getProtocol()

      • getHost())

      • getPort()

      • getPath()

      • getQuery()

      • getRef()

  • 使用 catch() 捕获异常并使用 getMessage() 方法打印消息。

方法使用

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

URL url = new URL("https://www.example.com");
String protocol = url.getProtocol(); // 为我们提供 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();

示例

在此示例中,我们创建了一个 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 类创建 URI 对象

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

    • getScheme()

    • getHost())

    • getPort()

    • getPath()

    • getQuery()

    • getFragment()

  • 使用 catch() 捕获异常并使用 getMessage() 方法打印消息。

使用的方法

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); // 提取 "Hello"
String substr2 = str.substring(7); // 提取 "world!"

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

String str = "Hello, world!";
int index1 = str.indexOf('o'); // 查找 'o' 的第一次出现

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

errorObject.getMessage()

示例

在示例中,我们创建了一个 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 组件的不同方法。


相关文章