English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Grundlegende Anleitung

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java Ausnahmebehandlung

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java URL 处理

URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址。表示为互联网上的资源,如网页或者 FTP 地址。

本章节我们将介绍 Java 是如何处理 URL 的。URL 可以分为如下几个部分。

protocol://host:port/path?query#fragment

protocol(协议)可以是 HTTP、HTTPS、FTP 和 File,port 为端口号,path为文件路径及文件名。

以下是一个 HTTP 协议的 URL 示例:

http://de.oldtoolbag.com/index.html?language=cn#j2se

URL 解析:

  • 协议为(protocol):http

  • 主机为(host:port):de.oldtoolbag.com

  • 端口号为(port): 80 ,以上URL示例并未指定端口,因为 HTTP 协议默认的端口号为 80。

  • 文件路径为(path):/index.html

  • 请求参数(query):language=cn

  • 定位位置(fragment):j2定位到网页中 id 属性为 j2Position des HTML-Elements .

URL-Klassenmethoden

Die Klasse URL wurde im Paket java.net definiert und dient zur Verarbeitung von URL-Inhalten. Nachfolgend wird die Erstellung und Verwendung der URL-Klasse vorgestellt.

java.net.URL bietet vielfältige Methoden zur URL-Konstruktion und kann verwendet werden, um Ressourcen abzurufen.

NummerMethodenbeschreibung
1public URL(String protocol, String host, int port, String file) throws MalformedURLException.
Erstellen Sie eine URL durch die Angabe der gegebenen Parameter (Protokoll, Hostname, Portnummer, Dateiname).
2public URL(String protocol, String host, String file) throws MalformedURLException
Erstellen Sie eine URL mit angegebenem Protokoll, Hostnamen und Dateinamen. Der Port wird auf den Standardport des Protokolls gesetzt.
3public URL(String url) throws MalformedURLException
Erstellen Sie eine URL durch die Angabe eines URL-Strings.
4public URL(URL kontext, String url) throws MalformedURLException
Erstellen Sie mit Basisadresse und relativer URL

Die Klasse URL enthält viele Methoden, um auf die verschiedenen Teile einer URL zuzugreifen. Die spezifischen Methoden und Beschreibungen sind wie folgt:

NummerMethodenbeschreibung
1public String getPath()
Gibt den Pfadbestandteil der URL zurück.
2public String getQuery()
Gibt den Querybestandteil der URL zurück.
3public String getAuthority()
Erhalten Sie den Berechtigungsbestandteil dieser URL.
4public int getPort()
Gibt den Portbestandteil der URL zurück.
5public int getDefaultPort()
Gibt den Standardport des Protokolls zurück.
6public String getProtocol()
Gibt das Protokoll der URL zurück.
7public String getHost()
Gibt den Host der URL zurück.
8public String getFile()
Gibt den Dateinamenbestandteil der URL zurück.
9public String getRef()
Erhalten Sie den Anker dieses URL (auch als "Referenz" bezeichnet).
10public URLConnection openConnection() throws IOException
Öffnen Sie eine URL-Verbindung und führen Sie den Client aus, um auf die Ressource zuzugreifen.

在线示例

Der obige Beispiel zeigt die Verwendung der Klasse URL aus java.net, um die verschiedenen Teile einer URL zu ermitteln:

import java.net.*;
import java.io.*;
 

{
   public static void main(String [] args)
   {
      try
      {
         URL url = new URL("http://de.oldtoolbag.com/index.html?language=cn#j2se
         System.out.println("URL:") + url.toString());
         System.out.println("Protokoll:") + url.getProtocol());
         System.out.println("Verifizierungsinformation:") + url.getAuthority());
         System.out.println("Dateiname und Anfrageparameter: ", + url.getFile());
         System.out.println("Hostname: ", + url.getHost());
         System.out.println("Pfad: ", + url.getPath());
         System.out.println("Port: ", + url.getPort());
         System.out.println("Standardport: ", + url.getDefaultPort());
         System.out.println("Anfrageparameter: ", + url.getQuery());
         System.out.println("Position bestimmen: ", + url.getRef());
      catch (IOException e)
      {
         e.printStackTrace();
      }
   }
}

Die Ergebnisse der Kompilierung und Ausführung der obigen Beispiele sind wie folgt:

URL ist: http://de.oldtoolbag.com/index.html?language=cn#j2se
Protokoll ist: http
Überprüfungsinformationen: de.oldtoolbag.com
Dateiname und Anfrageparameter:/index.html?language=cn
Hostname: de.oldtoolbag.com
Pfad:/index.html
Port:-1
Standardport:80
Anfrageparameter: language=cn
Position bestimmen: j2se

Klassenmethoden von URLConnection

openConnection() gibt ein java.net.URLConnection zurück.

Zum Beispiel:

  • Wenn die URL, die Sie verbinden, ein HTTP-Protokoll-URL ist, gibt die Methode openConnection() ein HttpURLConnection-Objekt zurück.

  • Wenn die URL, die Sie verbinden, eine JAR-Datei ist, gibt die Methode openConnection() ein JarURLConnection-Objekt zurück.

  • usw...

Die Methodenliste von URLConnection ist wie folgt:

NummerMethodenbeschreibung
1Object getContent()
Suche URL-Linkinhalt
2Object getContent(Class[] classes)
Suche URL-Linkinhalt
3String getContentEncoding()
Rückgabe Kopf content-Encoding Feldwert.
4int getContentLength()
Rückgabe Kopf content-Länge Feldwert
5String getContentType()
Rückgabe Kopf content-Typ Feldwert
6int getLastModified()
返回头部last-modified字段值。
7long getExpiration()
返回头部expires字段值。
8long getIfModifiedSince()
返回对象的ifModifiedSince字段值。
9public void setDoInput(boolean input)
URL连接可用于输入和/或输出。如果打算使用URL连接进行输入,则将DoInput标志设置为true;如果不打算使用,则设置为false。默认值为true。
10public void setDoOutput(boolean output)
URL连接可用于输入和/或输出。如果打算使用URL连接进行输出,则将DoOutput标志设置为true;如果不打算使用,则设置为false。默认值为false。
11public InputStream getInputStream() throws IOException
返回URL的输入流,用于读取资源
12public OutputStream getOutputStream() throws IOException
返回URL的输出流,用于写入资源。
13public URL getURL()
返回URLConnection对象连接的URL

在线示例

以下示例中URL采用了HTTP 协议。openConnection 返回HttpURLConnection对象。

URLConnDemo.java

import java.net.*;
import java.io.*;
public class URLConnDemo
{
   public static void main(String [] args)
   {
      try
      {
         URL url = new URL("http://de.oldtoolbag.com");
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection)
         {
            connection = (HttpURLConnection) urlConnection;
         }
         else
         {
            System.out.println("Please enter URL address");
            return;
         }
         BufferedReader in = new BufferedReader(
         new InputStreamReader(connection.getInputStream()));
         String urlString = "";
         String current;
         while ((current = in.readLine()) != null)
         {
            urlString += current;
         }
         System.out.println(urlString);
      catch (IOException e)
      {
         e.printStackTrace();
      }
   }
}

The compilation and execution results of the above examples are as follows:

$ javac URLConnDemo.java 
$ java URLConnDemo
...Here will be the output of the basic tutorial website homepage (http://de.oldtoolbag.com) HTML Content...