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

Tutoriel de base Java

Contrôle de flux Java

Java tableau

Java orienté objet (I)

Java orienté objet (II)

Java orienté objet (III)

Gestion des exceptions Java

Java List

Java Queue (file d'attente)

Java Map collection

Java Set collection

Entrée/sortie Java (I/O)

Java Reader/Writer

Autres sujets Java

Traitement des URL Java

L'URL (Uniform Resource Locator) est appelé identificateur de ressource uniforme en chinois, et est parfois appelé adresse de site Web. Il représente les ressources sur Internet, telles que des pages Web ou des adresses FTP.

Dans cette section, nous allons expliquer comment Java traite les URL. Les URL peuvent être divisées en plusieurs parties.

protocole ://hôte:port/path?query#fragment

Le protocole (protocol) peut être HTTP, HTTPS, FTP et File, le port est le numéro de port, et le chemin est le chemin d'accès au fichier et le nom du fichier.

Voici un exemple d'URL de protocole HTTP :

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

Analyse des URL :

  • protocole (protocol) :http

  • hôte (host:port):fr.oldtoolbag.com

  • port (port) : 80, l'exemple d'URL suivant n'a pas spécifié le port, car le port par défaut du protocole HTTP est 80。

  • chemin du fichier (path) :/index.html

  • paramètres de requête:language=cn

  • position de localisation (fragment) :j2se, pour localiser le fragment d'identifiant j2emplacement des éléments HTML.

Méthodes de la classe URL

La classe URL est définie dans le paquet java.net, utilisée pour traiter les contenus concernant les URL. Une présentation détaillée de la création et de l'utilisation de la classe URL suit.

java.net.URL offre de nombreuses méthodes de construction d'URL et peut être utilisé pour obtenir des ressources.

numérodescription de la méthode
1public URL(String protocol, String host, int port, String file) throws MalformedURLException.
Créer une URL à partir des paramètres donnés (protocole, nom d'hôte, port, nom de fichier).
2public URL(String protocol, String host, String file) throws MalformedURLException
Créer une URL en utilisant le protocole spécifié, le nom d'hôte, le nom de fichier, le port utilise le port par défaut du protocole.
3public URL(String url) throws MalformedURLException
Créer une URL à partir de la chaîne de caractères d'URL donnée
4public URL(URL context, String url) throws MalformedURLException
Créer en utilisant l'adresse de base et l'URL relative

La classe URL contient de nombreux méthodes pour accéder aux différentes parties d'une URL, les méthodes spécifiques et leurs descriptions sont les suivantes :

numérodescription de la méthode
1public String getPath()
Retourner la partie chemin de l'URL.
2public String getQuery()
Retourner la partie requête de l'URL.
3public String getAuthority()
Obtenir la partie autorisation de cette URL.
4public int getPort()
Retourner la partie port de l'URL.
5public int getDefaultPort()
Retourner le port par défaut du protocole.
6public String getProtocol()
Retourner le protocole de l'URL.
7public String getHost()
Retourner le hôte principal de l'URL.
8public String getFile()
Retourner la partie fichier de l'URL.
9public String getRef()
Obtenir l'ancrage de cette URL (également appelé "référence").
10public URLConnection openConnection() throws IOException
Ouvrir une connexion URL et exécuter le client pour accéder aux ressources.

在线示例

L'exemple suivant montre comment utiliser la classe URL de java.net pour obtenir les différentes parties d'une URL :

import java.net.*;
import java.io.*;
 
public class URLDemo
{
   public static void main(String [] args)
   {
      try
      {
         URL url = new URL("http://fr.oldtoolbag.com/index.html?language=cn#j2se");
         System.out.println("L'URL est : ") + url.toString());
         System.out.println("Le protocole est : ") + url.getProtocol());
         System.out.println("Vérification de l'information : ") + url.getAuthority());
         System.out.println("nom de fichier et paramètres de la requête : ", + url.getFile());
         System.out.println("nom d'hôte : ", + url.getHost());
         System.out.println("chemin : ", + url.getPath());
         System.out.println("port : ", + url.getPort());
         System.out.println("port par défaut : ", + url.getDefaultPort());
         System.out.println("paramètres de la requête : ", + url.getQuery());
         System.out.println("position : ", + url.getRef());
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

Les résultats de compilation et d'exécution des exemples ci-dessus sont les suivants :

L'URL est : http://fr.oldtoolbag.com/index.html?language=cn#j2se
le protocole est : http
informations de validation : fr.oldtoolbag.com
nom de fichier et paramètres de la requête :/index.html?language=cn
nom d'hôte : fr.oldtoolbag.com
chemin :/index.html
port :-1
port par défaut :80
paramètres de la requête : language=cn
position : j2se

méthodes de la classe URLConnections

openConnection() retourne un java.net.URLConnection.

par exemple :

  • Si l'URL que vous connectez est un protocole HTTP, la méthode openConnection() retourne un objet HttpURLConnection.

  • Si l'URL que vous connectez est un fichier JAR, la méthode openConnection() retourne un objet JarURLConnection.

  • etc...

La liste des méthodes de URLConnection est la suivante :

numérodescription de la méthode
1Object getContent()
recherche du contenu du lien URL
2Object getContent(Class[] classes)
recherche du contenu du lien URL
3String getContentEncoding()
retourne l'en-tête content-valeur du champ encoding.
4int getContentLength()
retourne l'en-tête content-valeur du champ length
5String getContentType()
retourne l'en-tête content-type valeur du champ
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://fr.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 output the homepage of the basic tutorial website (http://fr.oldtoolbag.com) HTML content...