Gestion des URL en Java
L'URL (Uniform Resource Locator), également appelée adresse web, représente des ressources sur Internet, telles que des pages web ou des adresses FTP.
Dans cette section, nous présenterons comment Java gère les URL. Une URL peut être divisée en parties, comme suit.
protocol://host:port/path?query#fragment
Le protocole peut être HTTP, HTTPS, FTP et File ; le port est le numéro de port ; le chemin est le chemin du fichier et le nom du fichier.
Un exemple d'URL de protocole HTTP est le suivant :
http://www.example.com/index.html?language=cn#j2se
Analyse d'URL :
- Protocole :http
- Hôte (host:port):www.example.com
- Numéro de port :80. L’exemple d’URL ci-dessus ne spécifie pas de port, car le numéro de port par défaut du protocole HTTP est 80.
- Chemin de fichier (path) :/index.html
- Paramètres de requête (query):language=cn
- Fragment (fragment) :j2se, localisant la position de l’élément HTML avec l’attribut id j2se dans la page web.
Méthodes de la classe URL
La classe URL est définie dans le package java.net, et elle est utilisée pour gérer le contenu lié aux URL. La création et l’utilisation de la classe URL sont présentées séparément ci-dessous.
java.net.URL fournit diverses façons de construire des URL, et des ressources peuvent être obtenues via java.net.URL.
| Non. | Description de la méthode |
|---|---|
| 1 | public URL(String protocol, String host, int port, String file) throws MalformedURLException. Crée une URL à l’aide des paramètres donnés (protocole, nom d’hôte, numéro de port, nom de fichier). |
| 2 | public URL(String protocol, String host, String file) throws MalformedURLException Crée une URL à l'aide du protocole, du nom d'hôte et du nom de fichier spécifiés, en utilisant le port par défaut du protocole. |
| 3 | public URL(String url) throws MalformedURLException Crée une URL à partir de la chaîne d'URL donnée. |
| 4 | public URL(URL context, String url) throws MalformedURLException Crée à l'aide d'une adresse de base et d'une URL relative. |
La classe URL contient de nombreuses méthodes pour accéder à diverses parties d'une URL. Les méthodes spécifiques et leurs descriptions sont les suivantes :
| Non. | Description de la méthode |
|---|---|
| 1 | public String getPath() Renvoie la partie chemin de l'URL. |
| 2 | public String getQuery() Renvoie la partie requête de l'URL. |
| 3 | public String getAuthority() Obtient la partie autorité de cette URL. |
| 4 | public int getPort() Renvoie la partie port de l'URL. |
| 5 | public int getDefaultPort() Renvoie le numéro de port par défaut du protocole. |
| 6 | public String getProtocol() Renvoie le protocole de l'URL. |
| 7 | public String getHost() Renvoie l'hôte de l'URL. |
| 8 | public String getFile() Renvoie la partie nom de fichier de l'URL. |
| 9 | public String getRef() Récupère l'ancre (également appelée "référence") de cette URL. |
| 10 | public URLConnection openConnection() throws IOException Ouvre une connexion URL et exécute le client pour accéder à la ressource. |
Exemple
L'exemple ci-dessus montre comment utiliser la classe URL de java.net pour obtenir divers paramètres des différentes parties d'une URL :
URLDemo.java
Le résultat de compilation et d'exécution de l'exemple ci-dessus est le suivant :
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
Méthodes de classe URLConnections
openConnection() renvoie un java.net.URLConnection.
Par exemple :
Si vous vous connectez à une URL avec le protocole HTTP, la méthode openConnection() renvoie un objet HttpURLConnection.
Si l'URL à laquelle vous vous connectez est un fichier JAR, la méthode openConnection() renverra un objet JarURLConnection.
Et ainsi de suite...
La liste des méthodes de URLConnection est la suivante :
| Non. | Description de la méthode |
|---|---|
| 1 | Object getContent() Récupère le contenu du lien URL. |
| 2 | Object getContent(Class[] classes) Récupère le contenu du lien URL. |
| 3 | String getContentEncoding() Renvoie la valeur du champ d'en-tête content-encoding. |
| 4 | int getContentLength() Renvoie la valeur du champ d'en-tête content-length. |
| 5 | String getContentType() Renvoie la valeur du champ d'en-tête content-type. |
| 6 | int getLastModified() Renvoie la valeur du champ d'en-tête last-modified. |
| 7 | long getExpiration() Renvoie la valeur du champ d'en-tête expires. |
| 8 | long getIfModifiedSince() Renvoie la valeur du champ ifModifiedSince de l'objet. |
| 9 | public void setDoInput(boolean input) Une connexion URL peut être utilisée pour l'entrée et/ou la sortie. Si vous prévoyez d'utiliser la connexion URL pour l'entrée, définissez le drapeau DoInput sur true ; si vous ne prévoyez pas de l'utiliser, définissez-le sur false. La valeur par défaut est true. |
| 10 | public void setDoOutput(boolean output) Une connexion URL peut être utilisée pour l'entrée et/ou la sortie. Si vous prévoyez d'utiliser la connexion URL pour la sortie, définissez le drapeau DoOutput sur true ; si vous ne prévoyez pas de l'utiliser, définissez-le sur false. La valeur par défaut est false. |
| 11 | public InputStream getInputStream() throws IOException Renvoie le flux d'entrée de l'URL, utilisé pour lire les ressources. |
| 12 | public OutputStream getOutputStream() throws IOException Renvoie le flux de sortie de l'URL, utilisé pour écrire des ressources. |
| 13 | public URL getURL() Renvoie l'URL à laquelle l'objet URLConnection est connecté. |
Exemple
Dans l'exemple suivant, l'URL utilise le protocole HTTP. openConnection renvoie un objet HttpURLConnection.
URLConnDemo.java
Le résultat de compilation et d'exécution de l'exemple ci-dessus est le suivant :
$ javac URLConnDemo.java $ java URLConnDemo .....这里会输出Example首页(http://www.example.com)的 HTML 内容.....Autres extensions