Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Java e gestione URL

In questo articolo impareremo a gestire gli URL (Uniform Resource Locator) attraverso le API messe a disposizione dal linguaggio di programmazione Java.
In questo articolo impareremo a gestire gli URL (Uniform Resource Locator) attraverso le API messe a disposizione dal linguaggio di programmazione Java.
Link copiato negli appunti

Uno Uniform Resource Identifier (URI) è una sequenza di caratteri che identifica in modo univoco una risorsa. Un URI può essere rappresentato da l'identificativo di un documento, di un file, ma anche di un indirizzo di posta elettronica o di un servizio offerto.

Possiamo vedere un URI come la generalizzazione di due possibili entità: un URL (Uniform Resource Locator) oppure un URN (Uniform Resource Name). Un URN è un URI che identifica una risorsa mediante un nome in un particolare dominio di nomi. Un URN deve restare unico e persistente anche se la risorsa dovesse smettere di esistere o non sia più resa disponibile.

Un URN può essere quindi usato per identificare una risorsa, senza specificare la sua posizione o rappresentazione. Ad esempio l'URN urn:isbn:0-123-0000-10 è un URI che associa univocamente a un libro il suo identificativo.

Un URL è invece un URI che identifica una risorsa tramite la sua posizione. Non individua univocamente la risorsa per nome, ma attraverso il modo con cui la si può reperire. Per esempio, l'URL http://www.google.com/ è un URI che identifica una risorsa (l'home page del motore di ricerca di Google) e lascia dedurre che la risorsa vera e propria (il codice HTML dell'home page) è ottenibile via HTTP da un host di rete denominato www.google.com.

Creare un URL

La creazione di un URL in Java è resa possibile dalla classe java.net.URL. Ad esempio per creare l'URL che identifica la home page di Google, istanziamo un suo oggetto passando al costruttore l'indirizzo www.google.com:

URL url = new URL("http://www.google.com");

Quello che abbiamo utilizzato nell'esempio precedente è un URL assoluto, sfruttando un costruttore alternativo possiamo definire URL relativi:

URL baseUrl = new URL("http://html.it");
URL relativeUrl = new URL(home, "guide/guida-java");

Un aspetto da evidenziare è che se l'URL relativo fornito (secondo argomento del costruttore) è identificato come assoluto, la parte home viene coerentemente ignorata.

Parti di un URL

Lo schema generale di un URL è del tipo:

<scheme>://<domain>:<port>/<path>?<querystring>#<fragmentid>

dove non tutte le parti sono obbligatorie. Esempi di URL sono i seguenti:

  1. file://C:/myfolder/myfile%20text.txt, che identifica un file;
  2. http://www.math.uio.no/faq/compression-faq/part1.html, che identifica una pagina Web;
  3. mailto:abc.abc@gmail.com, che identifica uno schema per l'invio di una mail.

Vediamo come recuperare le componenti associate ad un URL in Java:

URL url = new URL("http://www.html.it/wp-content/uploads/guide/zips/9/Sorgenti-Generics.zip");
System.out.println(url.getHost());
System.out.println(url.getPort());
System.out.println(url.getPath());
System.out.println(url.getFile());

Le varie parti evidenziate nel codice, possono essere passate ad uno specifico costruttore evitando di scrivere per intero la stringa dell'URL assoluto:

String protocol = "http";
String host = "www.html.it";
String file = "/wp-content/uploads/guide/zips/9/Sorgenti-Generics.zip";
URL url = new URL(protocol, host, file);

Negli URL è possibile aggiunte delle query string. Il loro inizio è specificato da un punto interrogativo mentre il formato ha la struttura generale: chiave-1=valore-1&chiave-2=valore-2&...&chiave-n=valore-n. Ogni coppia chiave-valore è separata dal simbolo &. L'utilità di una querystring è quella di poter passare nella richiesta HTTP, che punta ad un specifico URL, un contenuto informativo che potrà essere utilizzato per elaborare il contenuto della risposta associata.

URL url = new URL("http://www.mywebsite.it?lan=java&ver=8");
System.out.println(url.getQuery())


Ti consigliamo anche