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

Tutoriales básicos de Java

control de flujo de Java

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (cola)

Conjuntos de Java Map

Conjuntos de Java Set

Entrada y salida de Java (I/O)

Lector de Java/Writer

otros temas de Java

Manejo de URL en Java

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 .

Métodos de la clase URL

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 seriedescripción del método
1public 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).
2public 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.
3public URL(String url) throws MalformedURLException
Crear URL a partir de la cadena de URL dada
4public 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 seriedescripción del método
1public String getPath()
Devuelve la parte de ruta de la URL.
2public String getQuery()
Devuelve la parte de consulta de la URL.
3public String getAuthority()
Obtener la parte de autoridad de este URL.
4public int getPort()
Devuelve la parte de puerto de la URL.
5public int getDefaultPort()
Devuelve el número de puerto predeterminado del protocolo.
6public String getProtocol()
Devuelve el protocolo de la URL.
7public String getHost()
Devuelve el host de la URL.
8public String getFile()
Devuelve la parte de archivo de la URL.
9public String getRef()
Obtener el ancla de este URL (también conocido como "referencia").
10public 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

métodos de clase URLConnections

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 seriedescripción del método
1Object getContent()
busca el contenido del enlace URL
2Object getContent(Class[] classes)
busca el contenido del enlace URL
3String getContentEncoding()
devuelve la cabecera contenido-valor de campo codificación.
4int getContentLength()
devuelve la cabecera contenido-valor de campo longitud
5String getContentType()
devuelve la cabecera contenido-type campo valor
6int getLastModified()
返回头部last-modified字段值。
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://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...