Crear una URL
La forma más sencilla de crear un objeto URL es crearlo desde una Cadena que represente la
forma "Leible" de la dirección URL. Esta es la forma típica que otra persona utilizaría para
decirte una URL. Por ejemplo, para decirle la dirección de Gamelan que contiene una lista de
sitios sobre Java, podríamos dártela de la siguiente forma.
http://www.gamelan.com/
En tu progrma Java, puede utilizar una cadena que contenga el texto anterior para crear un
objeto URL.
URL gamelan = new URL("http://www.gamelan.com/");
El objeto URL anterior representa una URL absoluta. Una URL absoluta
contiene toda la información necesaria para alcanzar el recurso en cuestión. También puedes
crear objetos URL desde una dirección URL relativa.
Crear una URL relativa a otra
Una URL relativa sólo contiene la información suficiente para alcanzar el recurso en relación a
(o en el contexto de) otra URL.
Las epecificaciones de las URL relativas se utilizan frecuentemente en ficheros HTML. Por
ejemplo, supon que has escrito un fichero HTML llamado HomePage.html.
Dentro de esta página, hay enlaces a otras páginas, graficos.html y
Preferencias.html, que están en la misma máquina y en el mismo directorio
que HomePage.html. Estos enlaces a graficos.html y
Preferencias.html desde HomePage.html podrían
especificarse sólo como nombres de ficheros, de la siguiente forma.
<a href="graficos.html">graficos</a>
<a href="preferencias.html">Preferencias</a>
Estas direcciónes URL son URLs relativas. Esto es, las URL estás
especificadas en relación al fichero en el que están contenidas
HomePage.html.
En tus programas java, puedes crear un objeto URL desde una especificación URL relativa.
Por ejemplo, supon que ya has creado una URL para "http://www.gamelan.com/" en tu programa, y
que sabes los nombres de varios ficheros en esa site(Gamelan.network.html,
y Gamelan.animation.html). Puedes crear URLs para cada fichero de Gamelan
simplemente especificando el nombre del fichero en el contexto de la URL original de Gamelan.
Los nombres de ficheros son URLs relativas y están en relación a la URL original de Gamelan.
URL gamelan = new URL("http://www.gamelan.com/");
URL gamelanNetwork = new URL(gamelan, "Gamelan.network.html");
Este código utiliza un constructor de la clase URL que permite crear un objeto URL desde un
objeto URL (la base) y una URL relativa.
Este constructor también es útil para crear URL llamados anclas (también conocidos como
referencias) dentro de un fichero. Por ejemplo, supon que el fichero
"Gamelan.network.html" tiene una referencia llamada BOTTOM que está al
final del fichero. Puedes utilizar el constructor de URL relativa para crear una URL como esta.
URL gamelanNetworkBottom = new URL(gamelanNetwork, "#BOTTOM");
La forma general de este constructor de URL es.
URL(URL URLbase, String URLrelativa)
El primer argumento es un objeto URL que especifica la base de la neva URL, y el segundo
argumento es una cadena que especifica el resto del nombre del recurso relativo a la base. Si
URLbase es null, entonces este constructor trata
URLrelativa como si fuera una especificación de una URL absoluta. Y al
revés, si relativeURL es una especificación de URL absoluta, entonces el
constructor ignora baseURL.
Otros Constructores de URL
La clase URL proporciona dos constructores adicionales para crear un objeto URL. Estos
constructores son útiles cuando trabajan con URLs como URLs HTTP, que tienen los componentes
del nombre del host, el nombre del fichero, el número de puerto y una referencia en la parte
del nombre del recurso de la URL. Estos dos constructores son útiles cuando no se tiene una
cadena que contiene la especificación completa de la URL, pero si conocen algunos componentes
de la URL.
Por ejemplo, si has diseñaado un navegador con un panel similar al explorador de ficheros que
le permite al usuario utilizar el ratón para seleccionar el protocolo, el nombre del host, el
número del puerto, el nombre del fichero, puedes construir una URL a partir de estos componentes.
El primer constructor crea una URL desde un protocolo, un nombre de host y un nombre de fichero.
El siguiente código crea una URL del fichero Gamelan.network.html en la
site de Gamelan.
URL gamelan = new URL("http", "www.gamelan.com", "/Gamelan.network.html");
Esto es equivalente a URL("http://www.gamelan.com/Gamelan.network.html").
El primer argumento es el protocolo, el segundo es el nombre del host y el último argumento es
el path del fichero. Observa que el nombre del fichero contiene la barra inclinada (/) al
principio. Esto indica que el nombre de fichero está especificado desde la raíz del host.
El último constructor de URL añade el número de puerto a la lista de los argumentos utilizados
por el constructor anterior.
URL gamelan = new URL("http", "www.gamelan.com", 80, "/Gamelan.network.html");
Esto crea un objeto URL con la siguiente dirección URL.
http://www.gamelan.com:80/Gamelan.network.html
Si construyes una URL utilizando uno de estos constructores, puedes obtener una cadena que
contiene la dirección URL completa, utilizando el método toString() de la
clase URL o el método toExternalForm() equivalente.
MalformedURLException
Cada uno de los cuatro constructores de URL lanza una MalformedURLException si los argumentos
del constructor son nulos o el protocolo es desconocido. Típicamente, se querrá capturar y
manejar esta excepción. Así normalmente deberías introducir tu constructor de URL en un para
try/catch.
try {
URL myURL = new URL(. . .)
} catch (MalformedURLException e) {
. . .
// Aquí va el código del manejador de excepciones
. . .
}
Puede ver Manejar Errores Utilizando
Excepciones para obtener información sobre el manejo de excepciones.
|
Nota:
Las URLs son objetos de "una sóla escritura". Una vez que has creado un objeto URL no se puede
cambiar ninguno de sus atributos (protocolo, nombre del host, nombre del fichero ni número de
puerto).
|