Solicitação de cliente JSP

Ações JSP que usam construções na sintaxe XML para controlar o comportamento do mecanismo de servlet. Aprenderemos mais detalhadamente sobre vários elementos de ação JSP, como solicitaçã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 URL original  
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 o URL da página URL de referência  
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 enumeração de nomes de cabeçalho.
  4. Enumeração getParameterNames() – contém a enumeração da obtenção de nomes de parâmetros na solicitação.
  5. HttpSessiongetSession() – 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. 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 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 do caminho associadas ao URL
  17. String getQueryString() – retorna a string de consulta associada ao URL da solicitação
  18. String getServletPath() – retorna a parte das 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:

Linha de código 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

Linha de código 19: Usando o objeto de solicitação, estamos obtendo o código do idioma daquela sessão específica, i.een_US, para esse JSP.

Linha de código 21: Usando o objeto request, estamos obtendo informações de caminho para esse JSP. Neste caso, é nulo porque não há caminho para o URL mencionado.

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

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

Linha de código 27: Usando o objeto request, 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 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.
  • É o 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(String URL) – codifica o URL no método redirectURL.
  2. String codificarURL (String 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 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(intsc,Stringmsg) – 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(intlen) – define o comprimento do conteúdo da resposta
  18. Void setLocale(Locale lcl) – define o tipo de localidade da resposta
  19. Anular setStatus(intsc) – define o código de status da resposta

Exemplo:

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

<%@ 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:

Linha de código 13: Usando o objeto de resposta, obtemos o objeto locale 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 escritor que obtém saída no fluxo de saída

Linha de código18: 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 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 é do objeto escritor de getWriter, que nos fornece o objeto e podemos gerar a saída 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.

Códigos de status HTTP JSP

  • 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

Métodos de código de status HTTP em JSP

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

  1. setStatus vazio público (intstatusCode): 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. SendRedirect nulo público (URL da string): Ele gera uma resposta 302 junto com o cabeçalho de localização 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 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:

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:

Códigos de status HTTP JSP

Saída:

Aqui obtemos o código de erro 404, que foi enviado a partir 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, como a solicitação é interceptada e como as respostas são manipuladas.
  • Ações JSP que usam construções na sintaxe XML para controlar o comportamento do mecanismo de servlet.
  • Quando a página web é solicitada, ela envia informações ao servidor web no cabeçalho HTTP.
  • 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.
  • 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.