Java-URL-Verarbeitung
URL (Uniform Resource Locator), auch als Webadresse bekannt, repräsentiert Ressourcen im Internet, wie Webseiten oder FTP-Adressen.
In diesem Abschnitt stellen wir vor, wie Java URLs verarbeitet. Eine URL kann in die folgenden Teile unterteilt werden.
protocol://host:port/path?query#fragment
Das Protokoll kann HTTP, HTTPS, FTP und File sein; der Port ist die Portnummer; der Pfad ist der Dateipfad und Dateiname.
Ein Beispiel für eine URL mit dem HTTP-Protokoll ist wie folgt:
http://www.example.com/index.html?language=cn#j2se
URL-Parsing:
- Protokoll:http
- Host (host:port):www.example.com
- Portnummer:80. Das obige URL-Beispiel gibt keinen Port an, weil die Standard-Portnummer für das HTTP-Protokoll 80 ist.
- Dateipfad (path):/index.html
- Abfrageparameter (query):language=cn
- Fragment (fragment):j2se, das die Position des HTML-Elements mit dem id-Attribut j2se auf der Webseite lokalisiert.
Methoden der URL-Klasse
Die URL-Klasse ist im Paket java.net definiert und wird verwendet, um URL-bezogene Inhalte zu verarbeiten. Die Erstellung und Verwendung der URL-Klasse werden unten separat vorgestellt.
java.net.URL bietet verschiedene Möglichkeiten zum Erstellen von URLs, und Ressourcen können über java.net.URL abgerufen werden.
| Nein. | Methodenbeschreibung |
|---|---|
| 1 | public URL(String protocol, String host, int port, String file) throws MalformedURLException. Erstellt eine URL unter Verwendung der angegebenen Parameter (Protokoll, Hostname, Portnummer, Dateiname). |
| 2 | public URL(String protocol, String host, String file) throws MalformedURLException Erstellt eine URL unter Verwendung des angegebenen Protokolls, Hostnamens und Dateinamens und verwendet dabei den Standardport des Protokolls. |
| 3 | public URL(String url) throws MalformedURLException Erstellt eine URL aus der angegebenen URL-Zeichenkette. |
| 4 | public URL(URL context, String url) throws MalformedURLException Erstellt eine URL unter Verwendung einer Basisadresse und einer relativen URL. |
Die URL-Klasse enthält viele Methoden für den Zugriff auf verschiedene Teile einer URL. Die einzelnen Methoden und Beschreibungen lauten wie folgt:
| Nein. | Methodenbeschreibung |
|---|---|
| 1 | public String getPath() Gibt den Pfadteil der URL zurück. |
| 2 | public String getQuery() Gibt den Abfrage-Teil der URL zurück. |
| 3 | public String getAuthority() Ruft den Authority-Teil dieser URL ab. |
| 4 | public int getPort() Gibt den Port-Teil der URL zurück. |
| 5 | public int getDefaultPort() Gibt die Standard-Portnummer des Protokolls zurück. |
| 6 | public String getProtocol() Gibt das Protokoll der URL zurück. |
| 7 | public String getHost() Gibt den Host der URL zurück. |
| 8 | public String getFile() Gibt den Dateinamenteil der URL zurück. |
| 9 | public String getRef() Ruft den Anker (auch "Referenz" genannt) dieser URL ab. |
| 10 | public URLConnection openConnection() throws IOException Öffnet eine URL-Verbindung und führt den Client aus, um auf die Ressource zuzugreifen. |
Beispiel
Das obige Beispiel zeigt die Verwendung der URL-Klasse von java.net, um verschiedene Teilparameter einer URL abzurufen:
URLDemo.java
Das Kompilierungs- und Ausführungsergebnis des obigen Beispiels ist wie folgt:
URL 为:http://www.example.com/index.html?language=cn#j2se 协议为:http 验证信息:www.example.com 文件名及请求参数:/index.html?language=cn 主机名:www.example.com 路径:/index.html 端口:-1 默认端口:80 请求参数:language=cn 定位位置:j2se
URLConnections Klassenmethoden
openConnection() gibt eine java.net.URLConnection zurück.
Zum Beispiel:
Wenn Sie über das HTTP-Protokoll eine Verbindung zu einer URL herstellen, gibt die Methode openConnection() ein HttpURLConnection-Objekt zurück.
Wenn es sich bei der URL, zu der Sie eine Verbindung herstellen, um eine JAR-Datei handelt, gibt die Methode openConnection() ein JarURLConnection-Objekt zurück.
Und so weiter...
Die Liste der URLConnection-Methoden lautet wie folgt:
| Nein. | Methodenbeschreibung |
|---|---|
| 1 | Object getContent() Ruft den Inhalt des URL-Links ab. |
| 2 | Object getContent(Class[] classes) Ruft den Inhalt des URL-Links ab. |
| 3 | String getContentEncoding() Gibt den Wert des Header-Felds content-encoding zurück. |
| 4 | int getContentLength() Gibt den Wert des Header-Felds content-length zurück. |
| 5 | String getContentType() Gibt den Wert des content-type-Header-Felds zurück. |
| 6 | int getLastModified() Gibt den Wert des last-modified-Header-Felds zurück. |
| 7 | long getExpiration() Gibt den Wert des expires-Header-Felds zurück. |
| 8 | long getIfModifiedSince() Gibt den Wert des ifModifiedSince-Felds des Objekts zurück. |
| 9 | public void setDoInput(boolean input) Eine URL-Verbindung kann für Eingabe und/oder Ausgabe verwendet werden. Wenn Sie die URL-Verbindung für die Eingabe verwenden möchten, setzen Sie das DoInput-Flag auf true; wenn nicht, setzen Sie es auf false. Der Standardwert ist true. |
| 10 | public void setDoOutput(boolean output) Eine URL-Verbindung kann für Eingabe und/oder Ausgabe verwendet werden. Wenn Sie die URL-Verbindung für die Ausgabe verwenden möchten, setzen Sie das DoOutput-Flag auf true; wenn nicht, setzen Sie es auf false. Der Standardwert ist false. |
| 11 | public InputStream getInputStream() throws IOException Gibt den Eingabestream der URL zurück, der zum Lesen von Ressourcen verwendet wird. |
| 12 | public OutputStream getOutputStream() throws IOException Gibt den Ausgabestream der URL zurück, der zum Schreiben von Ressourcen verwendet wird. |
| 13 | public URL getURL() Gibt die URL zurück, mit der das URLConnection-Objekt verbunden ist. |
Beispiel
Im folgenden Beispiel verwendet die URL das HTTP-Protokoll. openConnection gibt ein HttpURLConnection-Objekt zurück.
URLConnDemo.java
Das Kompilierungs- und Ausführungsergebnis des obigen Beispiels ist wie folgt:
$ javac URLConnDemo.java $ java URLConnDemo .....这里会输出Example首页(http://www.example.com)的 HTML 内容.....Weitere Erweiterungen