English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
URL (Uniform Resource Locator) se conoce como localizador de recursos uniforme en chino, a veces también se llama dirección web. Representa recursos en Internet, como páginas web o direcciones FTP.
En esta sección, presentaremos cómo maneja Java las URL. Las URL se pueden dividir en las siguientes partes.
protocolo://anfitrión:puerto/path?query#fragmento
protocolo (protocolo) puede ser HTTP, HTTPS, FTP y File, el número de puerto es el número de puerto, y el path es la ruta y el nombre del archivo.
A continuación se muestra un ejemplo de URL de protocolo HTTP:
http://es.oldtoolbag.com/index.html?language=cn#j2se
Análisis de URL:
protocolo (protocol):http
anfitrión (host:port):es.oldtoolbag.com
número de puerto (port): 80, el ejemplo de URL anterior no especifica el puerto porque el número de puerto predeterminado del protocolo HTTP es 80。
ruta del archivo (path):/index.html
parámetros de solicitud (query):language=cn
ubicación de localización (fragmento):j2se, para localizar a la página web con el atributo id como j2la ubicación del elemento HTML .
En el paquete java.net se define la clase URL, que se utiliza para manejar contenido relacionado con URL. A continuación, se presentará la creación y el uso de la clase URL.
java.net.URL ofrece diversas formas de construcción de URL y permite obtener recursos a través de java.net.URL.
número de serie | descripción del método |
---|---|
1 | public URL(String protocol, String host, int port, String file) throws MalformedURLException. Crear URL a partir de los parámetros dados (protocolo, nombre del host, número de puerto, nombre de archivo). |
2 | public URL(String protocol, String host, String file) throws MalformedURLException Crear URL usando el protocolo especificado, el nombre del host y el nombre de archivo, el número de puerto se usa como el número de puerto predeterminado del protocolo. |
3 | public URL(String url) throws MalformedURLException Crear URL a partir de la cadena de URL dada |
4 | public URL(URL context, String url) throws MalformedURLException Crear usando la base de la URL y la URL relativa |
La clase URL contiene muchos métodos para acceder a las diferentes partes de una URL, los métodos específicos y sus descripciones se detallan a continuación:
número de serie | descripción del método |
---|---|
1 | public String getPath() Devuelve la parte de ruta de la URL. |
2 | public String getQuery() Devuelve la parte de consulta de la URL. |
3 | public String getAuthority() Obtener la parte de autoridad de este URL. |
4 | public int getPort() Devuelve la parte de puerto de la URL. |
5 | public int getDefaultPort() Devuelve el número de puerto predeterminado del protocolo. |
6 | public String getProtocol() Devuelve el protocolo de la URL. |
7 | public String getHost() Devuelve el host de la URL. |
8 | public String getFile() Devuelve la parte de archivo de la URL. |
9 | public String getRef() Obtener el ancla de este URL (también conocido como "referencia"). |
10 | public URLConnection openConnection() throws IOException Abrir una conexión URL y ejecutar el cliente para acceder a los recursos. |
El siguiente ejemplo demuestra cómo obtener las partes de una URL utilizando la clase URL de java.net:
import java.net.*; import java.io.*; public class URLDemo { public static void main(String [] args) { try { URL url = new URL("http://es.oldtoolbag.com/index.html?language=cn#j2se; System.out.println("La URL es:") + url.toString()); System.out.println("El protocolo es:") + url.getProtocol()); System.out.println("Verificación de información:") + url.getAuthority()); System.out.println("nombre de archivo y parámetros de solicitud: ", + url.getFile()); System.out.println("nombre de host: ", + url.getHost()); System.out.println("ruta: ", + url.getPath()); System.out.println("puerto: ", + url.getPort()); System.out.println("puerto predeterminado: ", + url.getDefaultPort()); System.out.println("parámetros de solicitud: ", + url.getQuery()); System.out.println("ubicación: ", + url.getRef()); catch(IOException e) { e.printStackTrace(); } } }
los resultados de compilación y ejecución de los ejemplos anteriores son los siguientes:
la URL es: http://es.oldtoolbag.com/index.html?language=cn#j2se el protocolo es: http información de verificación: es.oldtoolbag.com nombre de archivo y parámetros de solicitud:/index.html?language=cn nombre de host: es.oldtoolbag.com ruta:/index.html puerto:-1 puerto predeterminado:80 parámetros de solicitud: language=cn ubicación: j2se
openConnection() devuelve un java.net.URLConnection.
por ejemplo:
si la URL a la que te conectas es de protocolo HTTP, el método openConnection() devolverá un objeto HttpURLConnection.
si la URL a la que te conectas es un archivo JAR, el método openConnection() devolverá un objeto JarURLConnection.
etc...
La lista de métodos de URLConnection es la siguiente:
número de serie | descripción del método |
---|---|
1 | Object getContent() busca el contenido del enlace URL |
2 | Object getContent(Class[] classes) busca el contenido del enlace URL |
3 | String getContentEncoding() devuelve la cabecera contenido-valor de campo codificación. |
4 | int getContentLength() devuelve la cabecera contenido-valor de campo longitud |
5 | String getContentType() devuelve la cabecera contenido-type campo valor |
6 | int getLastModified() 返回头部last-modified字段值。 |
7 | long getExpiration() 返回头部expires字段值。 |
8 | long getIfModifiedSince() 返回对象的ifModifiedSince字段值。 |
9 | public void setDoInput(boolean input) URL连接可用于输入和/或输出。如果打算使用URL连接进行输入,则将DoInput标志设置为true;如果不打算使用,则设置为false。默认值为true。 |
10 | public void setDoOutput(boolean output) URL连接可用于输入和/或输出。如果打算使用URL连接进行输出,则将DoOutput标志设置为true;如果不打算使用,则设置为false。默认值为false。 |
11 | public InputStream getInputStream() throws IOException 返回URL的输入流,用于读取资源 |
12 | public OutputStream getOutputStream() throws IOException 返回URL的输出流,用于写入资源。 |
13 | public URL getURL() 返回URLConnection对象连接的URL |
以下示例中URL采用了HTTP 协议。openConnection 返回HttpURLConnection对象。
import java.net.*; import java.io.*; public class URLConnDemo { public static void main(String [] args) { try { URL url = new URL("http://es.oldtoolbag.com"); URLConnection urlConnection = url.openConnection(); HttpURLConnection connection = null; if(urlConnection instanceof HttpURLConnection) { connection = (HttpURLConnection) urlConnection; } else { System.out.println("Por favor, ingrese la dirección 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(); } } }
Los resultados de compilación y ejecución de los ejemplos anteriores son los siguientes:
$ javac URLConnDemo.java $ java URLConnDemo ...Aquí se mostrará la página principal del sitio web de tutoriales básicos (http://es.oldtoolbag.com) del contenido HTML...