English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Quando o navegador solicita uma página da web, ele envia uma série de informações que não podem ser lidas diretamente, pois essas informações são transmitidas como parte da cabeçalho de informações HTTP. Você pode consultar o protocolo HTTP para obter mais informações.
A tabela a seguir lista alguns conteúdos importantes de cabeçalhos de informações do navegador, que serão vistos frequentemente na programação de rede futura:
Informações | Descrição |
---|---|
Accept | Especifica os tipos MIME que o navegador ou outro cliente pode manipular. Seu valor geralmente é image/png ou image/jpeg |
Accept-Charset | Especifica o conjunto de caracteres que o navegador deve usar. Por exemplo, ISO-8859-1 |
Accept-Encoding | Especifica o tipo de codificação. Seu valor geralmente é gzip oucompress |
Accept-Language | Especifica o idioma preferido do cliente, o servlet retornará preferencialmente conjuntos de resultados compostos pelo idioma atual, se o servlet suportar esse idioma. Por exemplo, en, en-us, ru etc. |
Authorization | Identifica diferentes usuários ao acessar páginas protegidas por senha |
Connection | Indica se o cliente pode gerenciar conexões persistentes HTTP. Conexões persistentes permitem que o cliente ou navegador obtenha vários arquivos em uma única solicitação.Keep-Alive Indica que a conexão persistente está habilitada |
Content-Length | Apenas para solicitações POST, indica o número de bytes dos dados POST |
Cookie | Retorna cookies enviados anteriormente ao servidor para o navegador |
Host | Indica o nome do host e a porta na URL original |
Se-Modified-Since | Indica que o cliente precisará da página apenas se a página for modificada na data especificada. O servidor envia304Código para o cliente, indicando que não há recursos atualizados |
Se-Unmodified-Since | E se-Modified-Since ao contrário, a operação só será bem-sucedida se o documento não tiver sido modificado após a data especificada |
Referer | Marca a URL da página referenciada. Por exemplo, se você estiver na página1Depois disso, clicou em um link para a página2Se1Da URL estarão incluídas na solicitação de página do navegador2As informações de cabeçalho |
User-Agent | Para distinguir entre solicitações enviadas por diferentes navegadores ou clientes e retornar conteúdos diferentes para diferentes tipos de navegadores |
O objeto request é um exemplo da classe javax.servlet.http.HttpServletRequest. Cada vez que um cliente solicita uma página, o motor JSP gera um novo objeto para representar essa solicitação.
O objeto request oferece uma série de métodos para obter informações de cabeçalhos HTTP, incluindo dados de formulário, cookies, métodos HTTP etc.
A seguir, serão apresentados alguns métodos comuns para obter informações de cabeçalhos HTTP em programação JSP. Detalhes podem ser encontrados na tabela a seguir:
Número | Método& Descrição |
---|---|
1 | Cookie[] getCookies() Retorna o array de todos os cookies do cliente |
2 | Enumeration getAttributeNames() Retorna a coleção de todos os nomes dos atributos do objeto request |
3 | Enumeration getHeaderNames() Retorna a coleção de todos os nomes dos cabeçalhos HTTP |
4 | Enumeration getParameterNames() Retorna a coleção de todos os parâmetros da solicitação |
5 | HttpSession getSession() Retorna o objeto session correspondente à solicitação, se não existir, cria um novo |
6 | HttpSession getSession(boolean create) Retorna o objeto session correspondente à solicitação, se não existir e o parâmetro create for true, retorna um novo objeto session |
7 | Locale getLocale() Retorna o objeto Locale da página atual, que pode ser configurado na resposta |
8 | Object getAttribute(String name) Retorna o valor do atributo com o nome especificado, se não existir, retorna null |
9 | ServletInputStream getInputStream() Retorna o fluxo de entrada da solicitação |
10 | String getAuthType() Retorna o nome do esquema de autenticação, usado para proteger o servlet, por exemplo "BASIC" ou "SSL" ou null se o JSP não tiver configurado medidas de proteção |
11 | String getCharacterEncoding() Retorna o nome do conjunto de caracteres de encodamento da solicitação |
12 | String getContentType() Retorna o tipo MIME do corpo da solicitação, se desconhecido, retorna null |
13 | String getContextPath() Retorna o caminho contextual especificado no URI da solicitação |
14 | String getHeader(String name) Retorna o cabeçalho de informações especificado pelo nome |
15 | String getMethod() Retorna o método HTTP da solicitação, por exemplo GET, POST ou PUT |
16 | String getParameter(String name) Retorna o parâmetro especificado pelo nome da solicitação, se não existir, retorna null |
17 | String getPathInfo() Retorna qualquer caminho adicional relacionado a esta URL de solicitação |
18 | String getProtocol() Retorna o nome e a versão do protocolo usado neste request |
19 | String getQueryString() Retorna a string de consulta contida na URL deste request |
20 | String getRemoteAddr() Retorna o endereço IP do cliente |
21 | String getRemoteHost() Retorna o nome completo do cliente |
22 | String getRemoteUser() Retorna o usuário que se autenticou no cliente, se o usuário não estiver autenticado retorna null |
23 | String getRequestURI() Retorna o URI do request |
24 | String getRequestedSessionId() Retorna o ID da sessão especificado pelo request |
25 | String getServletPath() Retorna o caminho do servlet solicitado |
26 | String[] getParameterValues(String name) Retorna todos os valores do parâmetro com nome especificado, se não existir retorna null |
27 | boolean isSecure() Retorna se a solicitação usou um canal criptografado, como HTTPS |
28 | int getContentLength() Retorna o número de bytes contidos no corpo da solicitação, se desconhecido retorna-1 |
29 | int getIntHeader(String name) Retorna o valor da cabeça de solicitação de nome especificado |
30 | int getServerPort() Retorna o número da porta do servidor |
Neste exemplo, usaremos o método getHeaderNames() da classe HttpServletRequest para ler as informações de cabeçalho HTTP. Este método retorna as informações de cabeçalho da solicitação HTTP atual em forma de enumeração.
Após obter o objeto Enumeration, utilize uma maneira padrão para percorrer o objeto Enumeration, usando o método hasMoreElements() para determinar quando parar, e o método nextElement() para obter o nome de cada parâmetro.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> !DOCTYPE html <html> <head> <meta charset="utf-8"> <title>Tutorial Básico da Web(oldtoolbag.com)</title> </head> <body> <h2>Exemplo de Requisição de Cabeçalho HTTP</h2> <table width="100%" border="1" align="center"> <tr bgcolor="#949494"> <th>Nome de Header</th><th>Valores de Header</th> </tr> <% Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String paramName = (String)headerNames.nextElement(); out.print("<tr><td>" + paramName + "</td>\n"); String paramValue = request.getHeader(paramName); out.println("<td> " + paramValue + "</td></tr>\n"); } %> </table> </body> </html>
Acessando main.jsp, você obterá o seguinte resultado:
Você pode tentar outros métodos da classe HttpServletRequest no código acima.