JSP – HTTP – Responses – Status Code – Java

Publicado: 20 de novembro de 2014 em Java

A cada solicitação do protocolo HTTP o servidor indica uma resposta provisória, consistindo somente da linha de status e cabeçalhos opcionaisencerrado por uma linha vazia. As respostas podem conter por exemplo erros de HTTP que são enviados para o navegador da Web pelo servidor se um problema for encontrado durante a tentativa de exibir uma página da Web. Se a página da Web não for exibida, o servidor exibirá a página de erro real enviada pelo site ou uma mensagem de erro amigável.

As vezes é útil criar uma pagina customizada para as paginas geradas automaticamente pelo servidor pois o mesmo pode mostrar nestas paginas informações que não queremos que o usuário remoto tenha conhecimento, além das boas praticas e uma mensagem esteticamente amigável, ainda temos entre os motivos, a segurança.

Para uma lista completa de todos os códigos de resposta enviados pelo servidor utilize o link abaixo:

Response Status Code: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Customizando uma Página de Erro

1 – Crie um projeto Java Web dinâmico, crie uma nova pagina chamada de index.jsp, utilize o código abaixo para o XHTML da pagina e rode a aplicação:

Index.jsp

Index.jsp

2 – Clique no link “Java” para que você obtenha a pagina de erro com a resposta gerada pelo servidor:

Response - Erro - 404

Response – Erro – 404

3 – Para substituir a pagina automática por uma pagina mais amigável precisamos capturar a resposta do servidor e exibir uma pagina com informações customizadas, entretanto não queremos que o usuário tenha acesso a esta pagina via o navegador, então precisamos criar uma pagina chamada de 404.jsp na pasta chamada WEB-INF e alterar o web.xml localizado na mesma pasta, redirecionando a resposta 404 para a pagina 404.jsp. Crie a pagina 404.jsp e altere o arquivo web.xml utilizando os respectivos códigos abaixo, em seguida rode a aplicação e com ela rodando copie a URL e cole no seu navegador:

Aplicação - Firefox

Aplicação – Firefox

4 – Clique novamente na opção “Java” e sua pagina customizada será exibida sem que nenhuma informação do servidor e de sua aplicação seja apresentada para o usuário remoto:

Response 404 - Customizada

Response 404 – Customizada

Exemplo:

Neste exemplo utilizamos a resposta do servidor para substituir a mensagem de erro 404 por uma mensagem exibida em uma pagina customizada.

Java

index.jsp

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Desenvolvimento Aberto - HTTP Respostas</title>
<style>
#header {
	background-color: Black;
	color: white;
	text-align: center;
	padding: 5px;
}

#nav {
	line-height: 30px;
	background-color: #eeeeee;
	height: 400px;
	width: 100px;
	float: left;
	padding: 5px;
}

#section {
	width: 450px;
	float: left;
	padding: 10px;
}

#footer {
	background-color: Black;
	color: white;
	clear: both;
	text-align: center;
	padding: 5px;
}
</style>

</head>
<body>
	<div id="header">
		<h1>Desenvolvimento Aberto</h1>
	</div>

	<div id="nav">

		<!-- HTTP Response: 

	     Este link referencia uma página que não existe,
	     deste modo o servidor nos enviará um erro 404  -->
		<p>
			<a href='nao-existe.jsp'>Java</a>
		</p>
		<p>JSP</p>
		<p>JavaBeans</p>
		<p>Servlet</p>

	</div>

	<div id="section">
		<h2>Desenvolvimento Aberto</h2>
		<p>Desenvolvimento Aberto é uma organização voltada para o
			aprendizado e discussão de técnicas de desenvolvimento focado em
			algumas linguagens de programação sendo parcialmente/totalmente
			abertas ou com licenças gratuitas para desenvolvedores de cada uma de
			suas respectivas marcas registradas.</p>
		<p>Desenvolvimento Aberto foi escrito e desenvolve utilizando
			ferramentas gratuitas disponibilizadas pelas melhores empresas de
			software da atualidade, incluindo a própria hospedagem e design deste
			site, sendo assim, também proporciona conteúdo gratuito, isso quer
			dizer que você não paga nada para aprender e utilizar as tecnologias
			de ponta que podem ser manuseadas através das linguagens de
			programação mais requisitadas pelas empresas no mercado atual.</p>
	</div>

	<div id="footer">Desenvolvimento Aberto ©
		desevolvimento.aberto@live.com</div>

</body>
</html>

404.jsp

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Desenvolvimento Aberto - 404</title>
</head>
<body>
	<h1>Desenvolvimento Aberto:</h1>
	<h3>Desculpe! Não encontramos a página solicitada no servidor.</h3>
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	<display-name>DaRespostas</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<error-page>
		<error-code>404</error-code>
		<location>/WEB-INF/404.jsp</location>
	</error-page>
</web-app>
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s