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

Tutoriais Básicos de Java

Controle de fluxo do Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (Fila)

Conjunto Map do Java

Conjunto Set do Java

Entrada e saída do Java (I/O)

Reader do Java/Writer

Outros tópicos do Java

Processamento de URL do Java

URL (Uniform Resource Locator) é conhecido em chinês como Localizador de Recursos Uniforme, às vezes também chamado de endereço da web. Representa recursos na Internet, como páginas da web ou endereços FTP.

Nesta seção, vamos mostrar como o Java lida com URLs. O URL pode ser dividido em várias partes.

protocolo://host:porta/path?query#fragment

protocolo (protocolo) pode ser HTTP, HTTPS, FTP e File, porta é o número da porta, caminho é o caminho do arquivo e o nome do arquivo.

Os exemplos de URL do protocolo HTTP são os seguintes:

http://pt.oldtoolbag.com/index.html?language=cn#j2se

Análise de URL:

  • Protocolo (protocol):http

  • Mestre (host:porta):pt.oldtoolbag.com

  • Número da porta (port): 80, os exemplos de URL acima não especificaram o número da porta porque o número da porta padrão do protocolo HTTP é 80。

  • Caminho do arquivo (path):/index.html

  • Parâmetros de solicitação (query):language=cn

  • Posição de localização (fragment):j2localize até o atributo id da página2posição do elemento HTML .

Métodos da classe URL

A classe URL foi definida no pacote java.net, que é usada para lidar com o conteúdo de URL. Vamos introduzir a criação e o uso da classe URL respectivamente.

java.net.URL oferece várias maneiras de construir URL e pode ser usada para obter recursos.

número de ordemdescrição do método
1public URL(String protocol, String host, int port, String file) throws MalformedURLException.
Criar URL a partir dos parâmetros fornecidos (protocolo, nome do host, número da porta, nome do arquivo).
2public URL(String protocol, String host, String file) throws MalformedURLException
Criar URL usando o protocolo específico, o nome do host, o nome do arquivo, a porta é o número da porta padrão do protocolo.
3public URL(String url) throws MalformedURLException
Criar URL a partir da string de URL fornecida
4public URL(URL context, String url) throws MalformedURLException
Criar usando o endereço base e a URL relativa

A classe URL contém muitos métodos para acessar as diferentes partes de uma URL, os métodos específicos e suas descrições são como follows:

número de ordemdescrição do método
1public String getPath()
Retorna a parte do caminho da URL.
2public String getQuery()
Retorna a parte de consulta da URL.
3public String getAuthority()
Obter a parte de autorização deste URL.
4public int getPort()
Retorna a parte da porta da URL.
5public int getDefaultPort()
Retorna o número da porta padrão do protocolo.
6public String getProtocol()
Retorna o protocolo da URL.
7public String getHost()
Retorna o host da URL.
8public String getFile()
Retorna a parte do nome do arquivo da URL.
9public String getRef()
Obter o ponto deancora deste URL (também conhecido como "referência").
10public URLConnection openConnection() throws IOException
Abrir uma conexão URL e executar o cliente para acessar o recurso.

在线示例

O exemplo a seguir demonstra como usar a classe URL de java.net para obter os diferentes parâmetros de uma URL:

import java.net.*;
import java.io.*;
 
public class URLDemo
{
   public static void main(String [] args)
   {
      try
      {
         URL url = new URL("http://pt.oldtoolbag.com/index.html?language=cn#j2se\
         System.out.println("A URL é:") + url.toString());
         System.out.println("O protocolo é:") + url.getProtocol());
         System.out.println("Verificação da informação:") + url.getAuthority());
         System.out.println("nome do arquivo e parâmetros da solicitação: ") + url.getFile());
         System.out.println("nome do host: ") + url.getHost());
         System.out.println("caminho: ") + url.getPath());
         System.out.println("porta: ") + url.getPort());
         System.out.println("porta padrão: ") + url.getDefaultPort());
         System.out.println("parâmetros da solicitação: ") + url.getQuery());
         System.out.println("localização: ") + url.getRef());
      catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}

Os resultados de compilação e execução dos exemplos acima são os seguintes:

URL: http://pt.oldtoolbag.com/index.html?language=cn#j2se
o protocolo é: http
informações de verificação: pt.oldtoolbag.com
nome do arquivo e parâmetros da solicitação:/index.html?language=cn
nome do host: pt.oldtoolbag.com
caminho:/index.html
porta:-1
porta padrão:80
parâmetros da solicitação: language=cn
localização: j2se

métodos da classe URLConnections

openConnection() retorna um java.net.URLConnection.

Por exemplo:

  • Se a URL conectada usar o protocolo HTTP, o método openConnection() retornará um objeto HttpURLConnection.

  • Se a URL conectada for um arquivo JAR, o método openConnection() retornará um objeto JarURLConnection.

  • etc...

A lista de métodos do URLConnection é a seguinte:

número de ordemdescrição do método
1Object getContent()
pesquisa o conteúdo da URL
2Object getContent(Class[] classes)
pesquisa o conteúdo da URL
3String getContentEncoding()
retorna o cabeçalho content-valor do campo encoding.
4int getContentLength()
retorna o cabeçalho content-valor do campo length
5String getContentType()
retorna o cabeçalho content-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://pt.oldtoolbag.com");
         URLConnection urlConnection = url.openConnection();
         HttpURLConnection connection = null;
         if(urlConnection instanceof HttpURLConnection)
         {
            connection = (HttpURLConnection) urlConnection;
         }
         else
         {
            System.out.println("Por favor, insira o endereço 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();
      }
   }
}

Os resultados de compilação e execução dos exemplos acima são os seguintes:

$ javac URLConnDemo.java 
$ java URLConnDemo
...aqui será exibida a página inicial do site básico (http://pt.oldtoolbag.com) conteúdo HTML...