JSP - Pedido do Cliente

Neste capítulo, discutiremos a solicitação do cliente em JSP. Quando um navegador solicita uma página da Web, ele envia muitas informações ao servidor da Web. Essas informações não podem ser lidas diretamente porque viajam como parte do cabeçalho da solicitação HTTP. Você pode verificar o protocolo HTTP para obter mais informações sobre isso.

A tabela a seguir lista as informações importantes do cabeçalho que vêm do navegador. Esta informação é freqüentemente usada em programação web -

S.No. Cabeçalho e Descrição
1

Accept

Este cabeçalho especifica o MIMEtipos que o navegador ou outros clientes podem manipular. Valores deimage/png ou image/jpeg são as duas possibilidades mais comuns.

2

Accept-Charset

Este cabeçalho especifica os conjuntos de caracteres que o navegador pode usar para exibir as informações. Por exemplo,ISO-8859-1.

3

Accept-Encoding

Este cabeçalho especifica os tipos de codificações que o navegador sabe como lidar. Valores degzip ou compress são as duas possibilidades mais comuns.

4

Accept-Language

Este cabeçalho especifica os idiomas preferidos do cliente, caso o servlet possa produzir resultados em mais de um idioma. Por exemploen, en-us, ruetc.

5

Authorization

Este cabeçalho é usado pelos clientes para se identificarem ao acessar páginas da web protegidas por senha.

6

Connection

Este cabeçalho indica se o cliente pode lidar com conexões HTTP persistentes. As conexões persistentes permitem que o cliente ou outro navegador recupere vários arquivos com uma única solicitação. Um valor deKeep-Alive significa que conexões persistentes devem ser usadas.

7

Content-Length

Este cabeçalho é aplicável apenas a POST solicita e fornece o tamanho dos dados POST em bytes.

8

Cookie

Este cabeçalho retorna cookies aos servidores que os enviaram anteriormente ao navegador.

9

Host

Este cabeçalho especifica o host e a porta conforme fornecidos no URL original.

10

If-Modified-Since

Este cabeçalho indica que o cliente deseja a página apenas se ela tiver sido alterada após a data especificada. O servidor envia um código 304, o que significaNot Modified cabeçalho se nenhum resultado mais recente estiver disponível.

11

If-Unmodified-Since

Este cabeçalho é o reverso de If-Modified-Since; ele especifica que a operação deve ser bem-sucedida apenas se o documento for mais antigo que a data especificada.

12

Referer

Este cabeçalho indica o URL das páginas da web de referência. Por exemplo, se você estiver na página 1 e clicar em um link para a página 2, o URL da página 1 será incluído no cabeçalho do Referer quando o navegador solicitar a página 2.

13

User-Agent

Este cabeçalho identifica o navegador ou outro cliente que está fazendo a solicitação e pode ser usado para retornar conteúdo diferente para diferentes tipos de navegadores.

O objeto HttpServletRequest

O objeto de solicitação é uma instância de um javax.servlet.http.HttpServletRequestobjeto. Cada vez que um cliente solicita uma página, o mecanismo JSP cria um novo objeto para representar essa solicitação.

O objeto de solicitação fornece métodos para obter informações do cabeçalho HTTP, incluindo form data, cookies, HTTP methodsetc.

A tabela a seguir lista os métodos importantes que podem ser usados ​​para ler o cabeçalho HTTP em seu programa JSP. Esses métodos estão disponíveis com o objeto HttpServletRequest, que representa a solicitação do cliente ao servidor da web.

S.No. Método e Descrição
1

Cookie[] getCookies()

Retorna uma matriz contendo todos os objetos Cookie que o cliente enviou com esta solicitação.

2

Enumeration getAttributeNames()

Retorna uma Enumeração contendo os nomes dos atributos disponíveis para esta solicitação.

3

Enumeration getHeaderNames()

Retorna uma enumeração de todos os nomes de cabeçalho que esta solicitação contém.

4

Enumeration getParameterNames()

Retorna uma enumeração de objetos String contendo os nomes dos parâmetros contidos nesta solicitação.

5

HttpSession getSession()

Retorna a sessão atual associada a esta solicitação ou, se a solicitação não tiver uma sessão, cria uma.

6

HttpSession getSession(boolean create)

Retorna a HttpSession atual associada a esta solicitação ou, se não houver uma sessão atual e criar for verdadeiro, retorna uma nova sessão.

7

Locale getLocale()

Retorna o Locale preferido no qual o cliente aceitará o conteúdo, com base no cabeçalho Accept-Language.

8

Object getAttribute(String name)

Retorna o valor do atributo nomeado como um Objeto ou nulo se nenhum atributo com o nome fornecido existir.

9

ServletInputStream getInputStream()

Recupera o corpo da solicitação como dados binários usando um ServletInputStream.

10

String getAuthType()

Retorna o nome do esquema de autenticação usado para proteger o servlet, por exemplo, "BASIC" ou "SSL", ou nulo se o JSP não estiver protegido.

11

String getCharacterEncoding()

Retorna o nome da codificação de caracteres usada no corpo desta solicitação.

12

String getContentType()

Retorna o tipo MIME do corpo da solicitação ou nulo se o tipo não for conhecido.

13

String getContextPath()

Retorna a parte do URI da solicitação que indica o contexto da solicitação.

14

String getHeader(String name)

Retorna o valor do cabeçalho da solicitação especificada como uma String.

15

String getMethod()

Retorna o nome do método HTTP com o qual esta solicitação foi feita, por exemplo, GET, POST ou PUT.

16

String getParameter(String name)

Retorna o valor de um parâmetro de solicitação como String ou null se o parâmetro não existe.

17

String getPathInfo()

Retorna qualquer informação de caminho extra associada ao URL que o cliente enviou quando fez esta solicitação.

18

String getProtocol()

Retorna o nome e a versão do protocolo usado pela solicitação.

19

String getQueryString()

Retorna a string de consulta contida no URL da solicitação após o caminho.

20

String getRemoteAddr()

Retorna o endereço de protocolo da Internet (IP) do cliente que enviou a solicitação.

21

String getRemoteHost()

Retorna o nome totalmente qualificado do cliente que enviou a solicitação.

22

String getRemoteUser()

Retorna o login do usuário que fez a solicitação, se o usuário foi autenticado, ou nulo, se o usuário não foi autenticado.

23

String getRequestURI()

Retorna a parte do URL desta solicitação do nome do protocolo até a string de consulta na primeira linha da solicitação HTTP.

24

String getRequestedSessionId()

Retorna o ID da sessão especificado pelo cliente.

25

String getServletPath()

Retorna a parte da URL desta solicitação que chama o JSP.

26

String[] getParameterValues(String name)

Retorna uma matriz de objetos String contendo todos os valores do parâmetro de solicitação fornecido ou nulo se o parâmetro não existir.

27

boolean isSecure()

Retorna um booleano indicando se a solicitação foi feita usando um canal seguro, como HTTPS.

28

int getContentLength()

Retorna o comprimento, em bytes, do corpo da solicitação e disponibilizado pelo fluxo de entrada, ou -1 se o comprimento não for conhecido.

29

int getIntHeader(String name)

Retorna o valor do cabeçalho da solicitação especificada como um int.

30

int getServerPort()

Retorna o número da porta na qual esta solicitação foi recebida.

Exemplo de solicitação de cabeçalho HTTP

A seguir está o exemplo que usa getHeaderNames() método de HttpServletRequestpara ler as informações do cabeçalho HTTP. Este método retorna uma Enumeration que contém as informações do cabeçalho associadas à solicitação HTTP atual.

Assim que tivermos uma Enumeração, podemos fazer um loop para baixo na Enumeração da maneira padrão. Vamos usar ohasMoreElements() método para determinar quando parar e o nextElement() método para obter o nome de cada nome de parâmetro.

<%@ page import = "java.io.*,java.util.*" %>

<html>
   <head>
      <title>HTTP Header Request Example</title>
   </head>

   <body>
      <center>
         <h2>HTTP Header Request Example</h2>
         
         <table width = "100%" border = "1" align = "center">
            <tr bgcolor = "#949494">
               <th>Header Name</th>
               <th>Header Value(s)</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>
      </center>
   
   </body>
</html>

Vamos agora colocar o código acima em main.jsp e tente acessá-lo.

Exemplo de solicitação de cabeçalho HTTP

Nome do cabeçalho Valor (es) do cabeçalho
aceitar * / *
aceitar linguagem en-us
agente de usuário Mozilla / 4.0 (compatível; MSIE 7.0; Windows NT 5.1; Trident / 4.0; InfoPath.2; MS-RTC LM 8)
aceitar codificação gzip, deflate
hospedeiro localhost: 8080
conexão Mantenha vivo
cache-control sem cache

Você pode tentar trabalhar em todos os métodos de maneira semelhante.