Analizar una URL

La clase URL proporciona varios métodos que permiten preguntar a los objetos URL. Puede obtener el protocolo, nombre de host, número de puerto, y nombre de fichero de una URL utilizando estos métodos accesores:
getProtocol()
Devuelve el componente identificador de protocolo de la URL.
getHost()
Devuelve el componente nombre del host de la URL.
getPort()
Devuelve el componente número del puerto de la URL. Este método devuelve un entero que es el número de puerto. Si el puerto no está selccionado, devuelve -1.
getFile()
Devuelve el componente nombre de fichero de la URL.
getRef()
Obtiene el componente referencia de la URL.

Nota: Recuerda que no todas las direcciones URL contienen estos componentes. La clase URL proporciona estos métodos porque las URLs de HTTP contienen estos componentes y quizás son las URLs más utilizadas. La clase URL está centrada de alguna forma sobre HTTP.

Se pueden utilizar estos métodos getXXX() para obtener información sobre la URL sin importar el constructor que se haya utilizado para crear el objeto URL.

La clase URL, junto con estos métodos accesores, libera de tener que analizar la URL de nuevo! Dando a cualquier cadena la especificación de una URL, y sólo creando un nuevo objeto URL y llamanado a uno de sus métodos accesores para la información que se necesite. Este pequeño programa de ejemplo crea una URL partiendo de una especificación y luego utiliza los métodos accesores del objeto URL para analizar la URL:

import java.net.*;
import java.io.*;

class ParseURL {
    public static void main(String[] args) {
        URL aURL = null;
        try {
            aURL = new URL("http://java.sun.com:80/tutorial/intro.html#DOWNLOADING");
            System.out.println("protocol = " + aURL.getProtocol());
            System.out.println("host = " + aURL.getHost());
            System.out.println("filename = " + aURL.getFile());
            System.out.println("port = " + aURL.getPort());
            System.out.println("ref = " + aURL.getRef());
        } catch (MalformedURLException e) {
            System.out.println("MalformedURLException: " + e);
        }
    }
}
Aquí tienes la salida mostrada por el programa:
protocol = http
host = java.sun.com
filename = /tutorial/intro.html
port = 80
ref = DOWNLOADING


Ozito