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.