English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 .
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 ordem | descrição do método |
---|---|
1 | public 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). |
2 | public 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. |
3 | public URL(String url) throws MalformedURLException Criar URL a partir da string de URL fornecida |
4 | public 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 ordem | descrição do método |
---|---|
1 | public String getPath() Retorna a parte do caminho da URL. |
2 | public String getQuery() Retorna a parte de consulta da URL. |
3 | public String getAuthority() Obter a parte de autorização deste URL. |
4 | public int getPort() Retorna a parte da porta da URL. |
5 | public int getDefaultPort() Retorna o número da porta padrão do protocolo. |
6 | public String getProtocol() Retorna o protocolo da URL. |
7 | public String getHost() Retorna o host da URL. |
8 | public String getFile() Retorna a parte do nome do arquivo da URL. |
9 | public String getRef() Obter o ponto deancora deste URL (também conhecido como "referência"). |
10 | public 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
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 ordem | descrição do método |
---|---|
1 | Object getContent() pesquisa o conteúdo da URL |
2 | Object getContent(Class[] classes) pesquisa o conteúdo da URL |
3 | String getContentEncoding() retorna o cabeçalho content-valor do campo encoding. |
4 | int getContentLength() retorna o cabeçalho content-valor do campo length |
5 | String getContentType() retorna o cabeçalho content-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://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...