Solicitação de cliente JSP, resposta do servidor e códigos de status HTTP

Ações JSP que usam construções na sintaxe XML para controlar o comportamento do mecanismo de servlet. Aprenderemos mais detalhadamente sobre os vários elementos da Ação JSP, como solicitação do cliente, resposta do servidor e códigos de status HTTP.

Neste tutorial, você aprenderá-

Solicitação de cliente JSP

  • Quando a página da web é solicitada, ela envia informações ao servidor da web no cabeçalho HTTP.
  • Podemos usar essas informações usando o objeto HTTPServletRequest.
  • As informações enviadas pelo navegador são armazenadas no cabeçalho da solicitação HTTP.
  • Estamos usando cabeçalhos diferentes para enviar informações ao objeto de solicitação.

Cabeçalhos diferentes são descritos abaixo:

Cabeçalho Descrição Exemplo
AceitarEle especifica os tipos de MIME que o navegador ou outros clientes podem manipularImagem / png ou imagem / jpeg
Accept-charsetEle usa o conjunto de caracteres usado pelo navegador para exibir as informaçõesISO-8859-1
Aceitar - CodificaçãoEle especifica o tipo de codificação tratada pelo navegadorGzip ou compactação
Linguagem de aceitaçãoEle especifica o idioma especificado pelos clientesIn, en_us
AutorizaçãoCabeçalho usado por clientes ao tentar acessar páginas da web protegidas por senha
ConexãoIndica se o cliente pode lidar com conexões HTTP persistentes (o navegador pode recuperar vários arquivos)Mantenha vivo
Comprimento do conteúdoAplicável para postar solicitações. Dá o tamanho dos dados de postagem de bytes
BiscoitoRetorna o cookie para o servidor (aqueles que foram enviados anteriormente para o navegador)
HospedeiroEspecifica o host e a porta do URL original
Se modificado desdeIndica que requer apenas uma página se ela foi alterada ou modificada
Se não modificado desdeIndica que requer uma página apenas se ela não foi alterada ou modificada
ReferrerIndica o URL da página de URL de referência
Agente de usuárioIdentifica o navegador ou cliente que faz a solicitação

Os seguintes métodos são usados ​​para ler o cabeçalho HTTP na página JSP:

  1. Cookie [] getCookies () - retorna uma matriz contendo objetos de cookie que o cliente enviou
  2. Enumeração getAttributeNames () - contém enumeração de nomes de atributos para solicitação
  3. Enumeração getHeaderNames () - contém enumeração de nomes de cabeçalho.
  4. Enumeration getParameterNames () - contém enumeração de obtenção de nomes de parâmetros na solicitação.
  5. HttpSessiongetSession () - retorna a sessão atual associada à solicitação ou, se não houver uma sessão, criará uma nova.
  6. GetLocale local () - retorna o local preferido no qual o cliente aceitará o conteúdo. Ele foi atribuído à resposta. Por padrão, o valor será a localidade padrão do servidor.
  7. Object getAttribute (String name) - retorna o valor do atributo nomeado como um objeto.
  8. ServletInputStreamgetInputStream () - recupera o corpo da solicitação como dados binários.
  9. String getAuthType () - retorna o nome do esquema de autenticação para proteger o servlet
  10. String getCharacterEncoding () - retorna o nome da codificação de caracteres usada no corpo da solicitação.
  11. String getContentType () - retorna o tipo MIME do corpo da solicitação.
  12. String getContextPath () - retorna a parte do URI do pedido indica o caminho do contexto do URI
  13. String getHeader (String name) - retorna o cabeçalho da solicitação como uma string
  14. String getMethod () - retorna o nome do método HTTP como GET, POST
  15. String getParameter (String name) - retorna o parâmetro da solicitação como uma string.
  16. String getPathInfo () - retorna as informações do caminho associadas ao URL
  17. String getQueryString () - retorna a string de consulta que está associada ao URL de solicitação
  18. String getServletPath () - retorna a parte dos URLs da solicitação que chama o JSP
  19. String [] getParameterValues ​​(nome da string) - retorna a matriz de objetos de string contendo os valores que o parâmetro de solicitação tem

Exemplo:

No exemplo abaixo, estamos usando métodos diferentes usando o objeto de solicitação

 Client Request Guru JSP 

Client Request Guru JSP

<% HttpSession gurusession = request.getSession(); out.print(''); Locale gurulocale = request.getLocale (); out.print(''); String path = request.getPathInfo(); out.print(''); String lpath = request.get(); out.print(''); String servername = request.getServerName(); out.print(''); int portname = request.getServerPort(); out.print(''); Enumeration hnames = request.getHeaderNames(); while(hnames.hasMoreElements()) { String paramName = (String)hnames.nextElement(); out.print ('' ); String paramValue = request.getHeader(paramName); out.println(''); } %>

Explicação do código:

Linha de código 17: Usando o objeto de solicitação, estamos obtendo o objeto de sessão daquela sessão particular, e obtemos o valor do objeto dessa sessão

Linha de código 19: Usando o objeto de solicitação, estamos obtendo o local dessa sessão particular i.een_US locale para esse JSP.

Linha de código 21: Usando o objeto de solicitação, estamos obtendo informações de caminho para esse JSP. Nesse caso, é nulo, pois não há nenhum caminho para a URL mencionada.

Linha de código 23: Usando o objeto de solicitação, estamos obtendo o caminho do contexto, ou seja, o caminho da raiz

Linha de código 25: Usando o objeto de solicitação, estamos obtendo o nome do servidor.

Linha de código 27: Usando o objeto de solicitação, estamos obtendo a porta do servidor.

Linha de código 29-35: Usando o objeto de solicitação, obtemos nomes de cabeçalho que aparecem como enumeração e, portanto, obtemos todos os valores de cabeçalho nos nomes de cabeçalho.

Nisto, obtemos todos os valores de cabeçalho como cookie, host, conexão, idioma de aceitação, codificação de aceitação.

Ao executar o código acima, você obtém a seguinte saída:

Saída :

Estamos obtendo a série de valores como nome da sessão, nome do local, nome do caminho, nome do servidor, nome da porta, host, caminho de contexto e todos os valores de cabeçalho desse JSP.

Resposta do servidor JSP

  • Quando uma solicitação é processada e, em seguida, a resposta é gerada a partir do servidor da web. Consiste em uma linha de status, cabeçalhos de resposta, uma linha em branco e um documento.
  • É o objeto de HTTPServletResponseclass, que é um objeto de resposta.
  • A linha de status é uma versão do HTML.

Os cabeçalhos de resposta são mencionados abaixo:

guru headerguru header Value(s)
Session Name is ' +gurusession+ '
Locale Name is' +gurulocale + '
Path Name is' +path+ '
Context path is' +lipath + '
Server Name is ' +servername+ '
Server Port is ' +portname+ '
' + paramName + ' ' + paramValue + '
Cabeçalho Descrição
PermitirEle especifica os métodos de solicitação como GET, POST que o servidor está solicitando
Cache-controlO documento de resposta pode ser armazenado em cache. Pode ser público, privado e sem cache. Nenhum cache especifica que o documento não deve ser armazenado em cache
ConexãoEle instrui se o navegador deve usar SavedHTTPConnections ou não. O valor de fechamento representa que o navegador não deve usar conexões persistentes em HTTPConnections e 'keep-alive' significa usar conexões persistentes
Disposição de conteúdoPara perguntar ao usuário se deseja salvar a resposta no disco ou não
Codificação de conteúdoA página deve ser codificada durante a transmissão
Comprimento do conteúdoNúmero de bytes na resposta
Tipo de conteúdoEle especifica o tipo MIME de resposta
ExpiraEspecifica até quando o conteúdo deve ser considerado desatualizado e não deve ser armazenado em cache
Última modificaçãoIndica quando o documento foi modificado pela última vez
LocalizaçãoDeve ser incluído em todas as respostas que possuem código de status e 300 como código de status
AtualizarEle especifica como encontrar a página atualizada.
Tentar novamente depoisPode ser usado com a resposta 503 para informar ao cliente em quanto tempo ele pode repetir a solicitação
Set-cookieEspecifica o cookie associado à página

A seguir estão os métodos que usam o objeto de resposta:

  1. String encodeRedirectURL (String URL) - codifica o URL no método redirectURL.
  2. String encodeURL (String URL) - codifica o URL incluindo o ID da sessão.
  3. Boolean containsHeader (String name) - ele contém um cabeçalho no JSP ou não.
  4. Boolean isCommited () - resposta foi confirmada ou não.
  5. Void addCookie (Cookie cookie) - adiciona cookie à resposta
  6. Void addDateHeader (String name, String value) - adiciona o nome e o valor da data do cabeçalho da resposta
  7. Void addHeader (String name, String value) - adiciona cabeçalho de resposta com nome e valor
  8. Void addIntHeader (nome da string, valor int) - adiciona cabeçalho de resposta com nome e valor inteiro
  9. Void flushBuffer () - força o conteúdo do buffer para a saída para o cliente.
  10. Redefinir anular () - limpa os dados no buffer.
  11. Void resetBuffer - limpa o buffer de conteúdo na resposta sem limpar os códigos de status.
  12. Void sendError (intsc, Stringmsg) - envia uma resposta de erro ao cliente usando o código de status.
  13. Void sendRedirect (String location) - envia uma resposta de redirecionamento temporária ao cliente.
  14. Void setBufferSize (int size) - define o tamanho do buffer do corpo
  15. Void setCharacterEncoding (String charset) - define a codificação de caracteres
  16. Void setContentType (tipo String) - define o tipo de conteúdo da resposta
  17. Void setContentLength (intlen) - define o comprimento do conteúdo da resposta
  18. Void setLocale (Locale lcl) - define o tipo de local da resposta
  19. Void setStatus (intsc) - define o código de status da resposta

Exemplo:

Neste exemplo, estamos cobrindo diferentes métodos getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

 Guru Action Response 

Guru Response

<% Locale lcl = response.getLocale(); out.println('Locale is : ' + lcl + ' '); response.flushBuffer(); PrintWriter output = response.getWriter(); output.println('This is from writer object'); String type = response.getContentType(); out.println('The content type : ' + type + ' '); // Set refresh,autoload time as 5 seconds response.setIntHeader('Refresh', 5); //Get current time Date dt = new Date(); out.println('Today's date is : ' +dt.toString() + ' '); %>

Explicação do código:

Linha de código 13: Usando o objeto de resposta, obtemos o objeto local desta sessão JSP

Linha de código 15: Usando o objeto de resposta, flushbuffer é usado para forçar o conteúdo do buffer no cliente

Linha de código 16: Usando o objeto de resposta, obtemos o objeto do escritor que obtém a saída no fluxo de saída

Linha de código 18: Usando o objeto de resposta, obtemos o tipo de conteúdo, ou seja, o tipo MIME do objeto de resposta

Linha de código 21: Usando o objeto de resposta, ele é usado para carregamento automático a cada 5 segundos, pois 5 é definido como o segundo parâmetro

Ao executar o código acima, você obtém a seguinte saída:

Saída:

  • Aqui obtemos a saída, pois é do objeto escritor de getWriter, que nos fornece o objeto e podemos produzir no fluxo de saída.
  • Obtemos a localidade como en_us e o tipo de conteúdo como text / html
  • Obtemos o conjunto de caracteres como ISO 8859
  • A data de hoje como a data atual.

Códigos de status JSP HTTP

  • Quando a solicitação é processada, a resposta é gerada. A linha de status de resposta consiste na versão HTTP, um código de status e uma mensagem associada.
  • A mensagem está diretamente associada ao código de status e à versão HTTP e é determinada pelo servidor.
  • Por padrão, 200 é definido como um código de status em JSP, portanto, não precisamos definir explicitamente.
  • Podemos definir como método response.setStatus ()

Os códigos se enquadram nas 5 categorias a seguir:

  • 100-199 - Aqui o cliente indica que deve responder com alguma ação
  • 200-299 - Significa que a solicitação foi bem-sucedida
  • 300-399 - Eles são usados ​​para arquivos que foram movidos e geralmente incluem um cabeçalho de localização indicando o novo endereço
  • 400-499 - Indica erro do cliente
  • 500-599 - Indica erro do servidor

Alguns dos códigos de status comuns estão abaixo:

  • 200 - Indica que está tudo bem
  • 301 - Ele foi movido permanentemente
  • 304 - Não modificado desde a última alteração
  • 400 - Pedido inválido
  • 404 não encontrado
  • 405 - Método não encontrado
  • 500 - Erro interno do servidor
  • 503 serviço indisponível
  • 505 - versão HTTP não compatível

Alguns de seus métodos estão listados abaixo:

  1. Public void setStatus (intstatusCode)

    Ele define o código de status que quisermos definir nessa página JSP. Isso nos dará a mensagem do código de status que foi definido

  2. Public void sendRedirect (String URL)

    Ele gera uma resposta 302 junto com o cabeçalho do local, fornecendo a URL do novo documento

  3. Public void sendError (intcode, Stringmsg)

    Ele envia o código de status junto com a mensagem curta e é formatado dentro do documento HTML.

Exemplo:

Neste exemplo, estamos enviando um erro para a página JSP explicitamente.

 Guru Status Code 

Explicação do código:

Linha de código 10: Usando o objeto de resposta, estamos enviando o erro para uma página com dois parâmetros.

  1. Código de status - pode ser qualquer um dos itens acima. Neste caso, descrevemos como 404
  2. Mensagem - pode ser qualquer mensagem específica que queremos mostrar o erro

Se você executar o código acima, obterá a seguinte saída:

Saída:

Aqui, obtemos o código de erro 404, que foi enviado do código e também exibe a mensagem 'Página do Guru não encontrada' vista na saída.

Resumo:

  • Neste artigo, aprendemos sobre a solicitação do cliente e a resposta do servidor sobre como a solicitação é interceptada e como as respostas são manipuladas.
  • Além disso, aprendemos sobre os códigos de status HTTP para mostrar códigos de erro ou códigos de sucesso para um arquivo específico.