Solicitação de cliente JSP

⚡ Resumo Inteligente

A requisição do cliente JSP e a resposta do servidor utilizam elementos de ação JSP para controlar o mecanismo de servlet. O navegador envia informações por meio de cabeçalhos HTTP, o servidor retorna uma linha de status e cabeçalhos, e os códigos de status HTTP informam o resultado de cada requisição.

  • 📨 Solicitação do cliente: O navegador envia dados para o servidor nos cabeçalhos de requisição HTTP, lidos através do HttpServletRequest.
  • 🧾 Cabeçalhos de solicitação: Accept, Accept-language, Connection, Cookie, Host e User-agent descrevem o cliente.
  • 📤 Resposta do servidor: HttpServletResponse retorna uma linha de status, cabeçalhos de resposta e o documento.
  • 🔧 Métodos de resposta: addHeader(), sendRedirect(), sendError() e setStatus() dão forma à resposta.
  • 🔢 Status Codes: Agrupados de 100 a 599; os mais comuns incluem 200, 301, 404 e 500.
  • 🧪 Exemplos: As páginas JSP em funcionamento leem os cabeçalhos, definem um intervalo de atualização e enviam um erro 404.

Solicitação de cliente JSP

As ações JSP utilizam construções em sintaxe XML para controlar o comportamento do mecanismo de servlet. Aprenderemos mais detalhadamente sobre vários elementos de ação JSP, como requisição do cliente, resposta do servidor e códigos de status HTTP.

Solicitação de cliente JSP

  • Quando a página web é solicitada, ela envia informações ao servidor 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 em JSP

Diferentes cabeçalhos em JSP são descritos abaixo:

cabeçalho Descrição Exemplo
Aceitar Ele especifica os tipos MIME que o navegador ou outros clientes podem manipular Imagem/png ou imagem/jpeg
Aceitar conjunto de caracteres Ele usa o conjunto de caracteres usado pelo navegador para exibir as informações ISO-8859-1
Aceitar- Codificação Especifica o tipo de codificação tratada pelo navegador Gzip ou compactar
Linguagem de aceitação Ele especifica o idioma especificado pelos clientes En,en_us
Autorização Cabeçalho usado pelos clientes ao tentar acessar páginas da web protegidas por senha
Conexão Indica se o cliente pode lidar com conexões HTTP persistentes (o navegador pode recuperar vários arquivos) Mantenha vivo
Comprimento do conteúdo Aplicável a solicitações de postagem. Fornece o tamanho dos dados postados em bytes
Cookie Retorna cookie ao servidor (aqueles que foram enviados anteriormente ao navegador)
Proprietário Especifica o host e a porta do original URL
Se modificado desde Indica que requer apenas uma página se ela tiver sido alterada ou modificada
Se não modificado desde Indica que requer uma página somente se ela não tiver sido alterada ou modificada
Referente Indica URL de referência URL página
Agente de usuário Identifica o navegador ou cliente que faz a solicitação

Métodos de cabeçalho HTTP em JSP

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

  1. Biscoito[] getCookies() – retorna um array contendo objetos 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 a enumeração dos nomes dos cabeçalhos.
  4. Enumeração getParameterNames() – contém a enumeração da obtenção de nomes de parâmetros na solicitação.
  5. HttpSession getSession() – retorna a sessão atual associada à solicitação ou se não tiver uma sessão, criará uma nova.
  6. Local getLocale() – retorna o locale preferido em que o cliente aceitará o conteúdo. Ele foi atribuído à resposta. Por padrão, o valor será o locale padrão do servidor.
  7. Objeto getAttribute (nome da string) - retorna o valor do atributo nomeado como um objeto.
  8. ServletInputStream getInputStream() – 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 da solicitação indica o caminho do contexto do URI
  13. String getHeader(Nome da string) – 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(Nome da string) – retorna o parâmetro da solicitação como uma string.
  16. String getPathInfo() – Retorna as informações de caminho associadas ao URL
  17. String getQueryString() – Retorna a string de consulta associada à solicitação. URL
  18. String getServletPath() – retorna a parte de URLs da solicitação que chama o JSP
  19. String[] getParameterValues(Nome da string) – retorna a matriz de objetos string contendo os valores que o parâmetro de solicitação possui

Exemplo:

No exemplo abaixo, estamos usando métodos diferentes usando o objeto request

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.* java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Client Request Guru JSP</title>
</head>
<body>
<h2>Client Request Guru JSP</h2>

<table border="1">
<tr>
<th>guru header</th><th>guru header Value(s)</th>
</tr>
<%
    HttpSession gurusession = request.getSession();
    out.print("<tr><td>Session Name is </td><td>" +gurusession+ "</td.></tr>");
    Locale gurulocale = request.getLocale ();
    out.print("<tr><td>Locale Name is</td><td>" +gurulocale + "</td></tr>");
    String path = request.getPathInfo();
    out.print("<tr><td>Path Name is</td><td>" +path+ "</td></tr>");
    String lpath = request.get();
    out.print("<tr><td>Context path is</td><td>" +lipath + "</td></tr>");
    String servername = request.getServerName();
    out.print("<tr><td>Server Name is </td><td>" +servername+ "</td></tr>");
    int portname = request.getServerPort();
    out.print("<tr><td>Server Port is </td><td>" +portname+ "</td></tr>");
    Enumeration hnames = request.getHeaderNames();
    while(hnames.hasMoreElements()) {
        String paramName = (String)hnames.nextElement();
        out.print ("<tr><td>" + paramName + "</td>" );

        String paramValue = request.getHeader(paramName);
        out.println("<td> " + paramValue + "</td></tr>");
    }

%>

Explicação do código:

Code Linha 17: Usando o objeto de solicitação, obtemos o objeto de sessão daquela sessão específica e obtemos o valor do objeto dessa sessão

Code Linha 19: Usando o objeto de requisição, estamos obtendo a localidade daquela sessão específica, ou seja, a localidade en_US para aquele JSP.

Code Linha 21: Usando o objeto de requisição, estamos obtendo informações de caminho para esse JSP. Nesse caso, é nulo, pois não há caminho para URL mencionado.

Code Linha 23: Usando o objeto de solicitação, obtemos o caminho do contexto, ou seja, o caminho raiz

Code Linha 25: Usando o objeto request, estamos obtendo o nome do servidor.

Code Linha 27: Usando o objeto request, estamos obtendo a porta do servidor.

Code Linha 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 do cabeçalho como um Cookie, host, conexão, aceitar idioma, aceitar codificação.

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

Solicitação de cliente JSP

Saída:

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

Resposta do servidor JSP

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

Cabeçalhos de resposta em JSP

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

cabeçalho Descrição
Permitir Ele especifica os métodos de solicitação como GET, POST que o servidor está solicitando
Controle de cache O 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ão Ele instrui se o navegador deve usar saveHTTPConnections ou não. O valor Close 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údo Para perguntar ao usuário se deseja salvar a resposta no disco ou não
Codificação de conteúdo A página deve ser codificada durante a transmissão
Comprimento do conteúdo Número de bytes na resposta
Tipo de conteúdo Especifica o tipo MIME de resposta
Validade Especifica até quando o conteúdo deve ser considerado desatualizado e não deve ser armazenado em cache
Última modificação Indica quando o documento foi modificado pela última vez
Localização: Deve ser incluído em todas as respostas que possuem código de status 300 como código de status
revisar Especifica como encontrar a página atualizada.
Tentar novamente depois Pode ser usado com resposta 503 para informar ao cliente quando ele poderá repetir a solicitação
Definir cookie Especifica o cookie associado à página

Métodos de cabeçalho de resposta HTTP em JSP

A seguir estão os métodos em JSP usando objeto de resposta:

  1. String encodeRedirectURL(Corda URL) - codifica o URL em redirecionamentoURL método.
  2. Codificação de stringURL(Corda URL) - codifica o URL incluindo o ID da sessão.
  3. Booleano contémHeader (nome da string) - contém um cabeçalho no JSP ou não.
  4. Booleano isCommited() - a resposta foi confirmada ou não.
  5. Void addCookie(Cookie cookie) – Adiciona um cookie à resposta.
  6. Void addDateHeader (nome da string, valor da string) - adiciona nome e valor da data do cabeçalho de resposta
  7. Void addHeader (nome da string, valor da string) - 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. Liberação nulaBuffer() - força o conteúdo do buffer para a saída para o cliente.
  10. Anular redefinição() – limpa os dados no buffer.
  11. Anular redefiniçãoBuffer - limpa o buffer de conteúdo na resposta sem limpar os códigos de status.
  12. Void sendError(int sc,String msg) – envia uma resposta de erro ao cliente usando o código de status.
  13. Anular sendRedirect (localização da string) – envia uma resposta de redirecionamento temporária ao cliente.
  14. Conjunto vazioBufferTamanho (tamanho interno) – define o tamanho do buffer do corpo
  15. Void setCharacterEncoding (conjunto de caracteres de string) - define codificação de caracteres
  16. Void setContentType (tipo String) - define o tipo de conteúdo da resposta
  17. void setContentLength(int len) – define o comprimento do conteúdo da resposta
  18. Void setLocale(Locale lcl) – define o tipo de localidade da resposta
  19. Void setStatus(int sc) – define o código de status da resposta

Exemplo:

Neste exemplo, abordaremos diferentes métodos: getLocale, flushbuffer e get.Writer, obterTipoConteúdo, definirCabeçalhoInteiro.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.* java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action Response</title>
</head>
<body>
<center>
<h2>Guru Response</h2>
<%
Locale lcl = response.getLocale();
out.println("Locale is : " + lcl + "\n");
response.flushBuffer();
PrintWriter output = response.getWriter();
output.println("This is from writer object");
String type = response.getContentType();
out.println("The content type : " + type + "\n");
    // 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() + "\n");
%>
</center>
</body>
</html>

Explicação do código:

Code Linha 13: Usando o objeto de resposta, obtemos o objeto locale desta sessão JSP

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

Code Linha 16: Usando o objeto de resposta, obtemos o objeto escritor que obtém saída no fluxo de saída

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

Code Linha 21: Usando o objeto de resposta, ele é usado para carregar automaticamente 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:

Resposta do servidor JSP

Saída:

  • Aqui obtemos a saída, pois ela vem do objeto de escrita obtido através do comando `get`.Writer, que nos fornece um objeto e podemos exibi-lo no fluxo de saída.
  • Obtemos a localidade como en_us e o tipo de conteúdo como text/html
  • Obtemos charset como ISO 8859
  • A data de hoje como a data atual.

Status HTTP do JSP Codes

  • 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 defini-lo explicitamente.
  • Podemos definir como método response.setStatus()

Os códigos se enquadram nas seguintes 5 categorias:

  • 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 – 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 – Mudou-se 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 suportada

Status HTTP Code Métodos em JSP

Alguns dos métodos de código de status em JSP estão listados abaixo:

  1. Public void setStatus(int statusCode): Ele define o código de status que queremos definir naquela página JSP. Isso nos dará a mensagem do código de status que foi definido
  2. Public void sendRedirect(String URL): Isso gera uma resposta 302 juntamente com o cabeçalho de localização, fornecendo URL do novo documento
  3. Public void sendError(int code,String msg): Ele envia o código de status junto com a mensagem curta e é formatado dentro do documento HTML.

Exemplo:

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

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Status Code</title>
</head>
<body>
<% response.sendError(404,"Guru Page Not Found"); %>
</body>
</html>

Explicação do código:

Code Linha 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:

Status HTTP do JSP Codes

Saída:

Aqui recebemos o código de erro 404, que foi enviado pelo código e também exibe “Guru A mensagem "Página não encontrada" foi exibida na saída.

Perguntas Frequentes

O HttpServletRequest transporta os dados enviados pelo cliente para o servidor, como cabeçalhos e parâmetros. O HttpServletResponse transporta os dados enviados de volta pelo servidor, incluindo códigos de status, cabeçalhos de resposta e o conteúdo do documento.

O código de status 404 significa que o recurso solicitado não foi encontrado no servidor. Em JSP, você pode enviá-lo explicitamente com `response.sendError(404, “message”)` para exibir uma página personalizada de "recurso não encontrado".

Utilize o objeto de requisição: `getHeaderNames()` retorna uma enumeração de nomes de cabeçalhos e `getHeader(name)` retorna o valor de cada cabeçalho. Itere sobre os nomes para ler todos os cabeçalhos enviados pelo cliente.

A IA pode analisar logs de cabeçalho, sinalizar cabeçalhos ausentes ou mal configurados, detectar problemas de segurança como a ausência de controle de cache e resumir padrões de tráfego, ajudando a...ping Os desenvolvedores depuram e otimizam o processamento de solicitações e respostas mais rapidamente.

Sim. A IA pode gerar pequenos scripts JSP que leem parâmetros e cabeçalhos de requisição, definem cabeçalhos de resposta e enviam códigos de status a partir de uma descrição em linguagem simples, que os desenvolvedores revisam posteriormente para verificar a correção e a segurança.

Resuma esta postagem com: