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

Tutorial di base Java

Controllo dei Flussi Java

Array Java

Orientamento ad Oggetti (I) Java

Orientamento ad Oggetti (II) Java

Orientamento ad Oggetti (III) Java

Gestione delle eccezioni Java

Lista Java

Queue (Coda) Java

Map di Java

Set di Java

Input/Output (I/O) Java

Lettore/Scrittore Java

Altri argomenti di Java

Gestione degli URL in Java

URL (Uniform Resource Locator) si chiama anche identificatore di risorsa uniforme, a volte chiamato anche indirizzo web. Rappresenta risorse su Internet, come pagine web o indirizzi FTP.

In questa sezione esploreremo come Java gestisce gli URL. Gli URL possono essere divisi in alcune parti come segue.

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

protocol(protocollo) può essere HTTP, HTTPS, FTP e File, port è il numero di porta, path è il percorso e il nome del file.

Esempi di URL con il protocollo HTTP:

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

Analisi dell'URL:

  • Protocollo (protocol):http

  • Host (host:port):it.oldtoolbag.com

  • Numero di porta (port): 80, gli esempi di URL sopra non specificano il numero di porta perché il numero di porta di default del protocollo HTTP è 80.

  • Percorso del file (path):/index.html

  • Parametri della richiesta (query):language=cn

  • Localizzare la posizione (fragment):j2se, localizzare l'elemento HTML con l'attributo id j2se nella pagina web.

Metodi della classe URL

La classe URL è definita nel pacchetto java.net, utilizzata per gestire i contenuti relativi agli URL. Di seguito vengono descritte la creazione e l'uso della classe URL.

java.net.URL fornisce molte modalità di costruzione di URL e può essere utilizzato per ottenere risorse.

Numero di sequenzaDescrizione del metodo
1public URL(String protocol, String host, int port, String file) throws MalformedURLException.
Creare un URL tramite i parametri forniti (protocollo, nome dell'host, numero di porta, nome del file).
2public URL(String protocol, String host, String file) throws MalformedURLException
Creare un URL utilizzando il protocollo specificato, il nome dell'host e il nome del file, utilizzando il porto di default del protocollo.
3public URL(String url) throws MalformedURLException
Creare un URL tramite una stringa di URL fornita
4public URL(URL contesto, String url) throws MalformedURLException
Creazione utilizzando l'indirizzo di base e l'URL relativo

La classe URL contiene molti metodi per accedere alle diverse parti di un URL, i metodi specifici e le loro descrizioni sono elencati di seguito:

Numero di sequenzaDescrizione del metodo
1public String getPath()
Restituisce la parte di percorso dell'URL.
2public String getQuery()
Restituisce la parte di ricerca dell'URL.
3public String getAuthority()
Ottieni la parte di autorità di questo URL.
4public int getPort()
Restituisce la parte di porta dell'URL.
5public int getDefaultPort()
Restituisce il numero di porta predefinito del protocollo.
6public String getProtocol()
Restituisce il protocollo dell'URL.
7public String getHost()
Restituisce l'host dell'URL.
8public String getFile()
Restituisce la parte di file dell'URL.
9public String getRef()
Ottieni la parte diancora di questo URL (noto anche come "referenza").
10public URLConnection openConnection() throws IOException
Apri una connessione URL e esegui il client per accedere alle risorse.

在线示例

L'esempio sopra dimostra come ottenere le diverse parti di un URL utilizzando la classe URL di java.net:

import java.net.*;
import java.io.*;
 
public class URLDemo
{
   public static void main(String [] args)
   {
      try
      {
         URL url = new URL("http://it.oldtoolbag.com/index.html?language=cn#j2se");
         System.out.println("URL: " + url.toString());
         System.out.println("Protocollo: " + url.getProtocol());
         System.out.println("Informazioni di verifica: " + url.getAuthority());
         System.out.println("Nome del file e parametri della richiesta: " + url.getFile());
         System.out.println("Nome dell'host: " + url.getHost());
         System.out.println("Percorso: " + url.getPath());
         System.out.println("Porta: " + url.getPort());
         System.out.println("Porta predefinita: " + url.getDefaultPort());
         System.out.println("Parametro della richiesta: " + url.getQuery());
         System.out.println("Posizione: " + url.getRef());
      catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

Il risultato della compilazione e dell'esecuzione degli esempi sopra elencati è il seguente:

URL: http://it.oldtoolbag.com/index.html?language=cn#j2se
Protocollo: http
Informazioni di autenticazione: it.oldtoolbag.com
Nome del file e parametri della richiesta: /index.html?language=cn
Nome dell'host: it.oldtoolbag.com
Percorso: /index.html
Porta: -1
Porta predefinita: 80
Parametro della richiesta: language=cn
Posizione: j2se

Metodi della classe URLConnection

openConnection() restituisce un java.net.URLConnection.

Ad esempio:

  • Se l'URL connesso è un URL HTTP, il metodo openConnection() restituirà un oggetto HttpURLConnection.

  • Se l'URL connesso è un file JAR, il metodo openConnection() restituirà un oggetto JarURLConnection.

  • etc...

L'elenco dei metodi di URLConnection è il seguente:

Numero di sequenzaDescrizione del metodo
1Object getContent()
Ricerca il contenuto del link URL
2Object getContent(Class[] classes)
Ricerca il contenuto del link URL
3String getContentEncoding()
Restituisce il valore del campo 'content-encoding' dell'intestazione.
4int getContentLength()
Restituisce il valore del campo 'content-length' dell'intestazione.
5String getContentType()
Restituisce il valore del campo 'content-type' dell'intestazione.
6int getLastModified()
Restituisce il valore del campo 'last-modified' dell'intestazione.
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://it.oldtoolbag.com");
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection)
         {
            connection = (HttpURLConnection) urlConnection;
         }
         else
         {
            System.out.println("Inserisci l'indirizzo URL");
            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();
      }
   }
}

I risultati di compilazione e esecuzione degli esempi sopra riportati sono i seguenti:

$ javac URLConnDemo.java 
$ java URLConnDemo
.....qui verrà outputto il contenuto HTML della homepage del sito base tutorial (http://it.oldtoolbag.com).....