Cookies
Cookies são pacotes que contem informações geradas pelo servidor.Esses pacotes, alem de enviados juntamente ás respostas fornecidas para uma solicitação, também permanecem armazenados pelo browser do usuário que realizou tal solicitação.Dessa forma, os Cookies permitem que o servidor recupere os valores já definidos.
Usando a IDE Eclipse para criar uma pagina Web que crie os Cookies apartir de um formulário.Primeiro precisamos criar um simples formulário em um arquivo JSP no pacote webContente do seu projeto.O nome do formulário eu deixei como (form1) o method como (post) pois é um formulário e por padrão dever ser via (post) e a action deixei como (do) pois a Servlet foi mapeada com esse nome.
Segue abaixo o código fonte.
<%@ 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>Cookie</title>
</head>
<body>
<form name="form1" method="post" action="do"><BR>
<BR>
<table align="center">
<tr bgcolor="GREEN">
<td colspan="2" align="center"><font face="verdana" size="2"><b>Criando
Cookies</b></font></td>
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="60"></td>
<td>
<tr>
<td>Telefone:</td>
<td><input type="text" name="telefone" size="20"></td>
<td>
<tr>
<tr>
<td>Endereco:</td>
<td><input type="text" name="endereco" size="60"></td>
<td>
<tr>
<tr>
<td>Bairro:</td>
<td><input type="text" name="bairro" size="30"></td>
<td>
<tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30"></td>
<td>
<tr>
<td colspan="2" align="center"><input type="submit" value="Enviar"></td>
<td>
</table>
</form>
</body>
</html>
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>Cookie</title>
</head>
<body>
<form name="form1" method="post" action="do"><BR>
<BR>
<table align="center">
<tr bgcolor="GREEN">
<td colspan="2" align="center"><font face="verdana" size="2"><b>Criando
Cookies</b></font></td>
<tr>
<td>Nome:</td>
<td><input type="text" name="nome" size="60"></td>
<td>
<tr>
<td>Telefone:</td>
<td><input type="text" name="telefone" size="20"></td>
<td>
<tr>
<tr>
<td>Endereco:</td>
<td><input type="text" name="endereco" size="60"></td>
<td>
<tr>
<tr>
<td>Bairro:</td>
<td><input type="text" name="bairro" size="30"></td>
<td>
<tr>
<tr>
<td>Cidade:</td>
<td><input type="text" name="cidade" size="30"></td>
<td>
<tr>
<td colspan="2" align="center"><input type="submit" value="Enviar"></td>
<td>
</table>
</form>
</body>
</html>
Salve esse codigo como index.jsp
Com esse codigo a pagina JSP ficará dessa forma.
Agora precisamos criar uma nova pagina jsp que ira pegar e exibir os Cookies com as informações do formulário.
Eu usei Scriptlet na pagina JSP, onde eu crio um Array de Cookie e atribui para ele os Cookies com o (request.getCookies) que devolve um Array de Cookies .
Segue abaixo o código fonte que você deve salvar na pasta webContente do seu projeto.
<%@ 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>PegaCookie</title>
</head>
<h1> Cookies</h1>
<body>
<%
Cookie[] cookies = request.getCookies();
for(Cookie cookie: cookies){
out.println("<b>nomeCookie:</b> "+cookie.getName());
out.println("<b>Valor:</b> " + cookie.getValue());
out.println("<br>");
}
%>
</body>
</html>
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>PegaCookie</title>
</head>
<h1> Cookies</h1>
<body>
<%
Cookie[] cookies = request.getCookies();
for(Cookie cookie: cookies){
out.println("<b>nomeCookie:</b> "+cookie.getName());
out.println("<b>Valor:</b> " + cookie.getValue());
out.println("<br>");
}
%>
</body>
</html>
Salve esse codigo como pegarCookies.jsp .
Agora precisamos criar a Servlet com o nome CriaCookie e a deixar mapeada como (do).Na minha Servlet eu usei o método (getParameter) da Classe HttpServletRequest para pegar os valores que estão no formulário após o usuário clicar no botao (Enviar) da pagina (index.jsp).Em seguida criei os objetos Cookie e instancie esses objetos com o nome do campo do formulário da pagina (índex.jsp) e com o valor daquele campo, depois adicionei cada objeto Cookie criado no objeto response da Classe HttpServletResponse.Em seguida redirecionei para a pagina (pegarCookies.jsp) que pega os Cookies e os exibe na pagina (pegarCookies.jsp) conforme código fonte exibido acima.
Segue abaixo o código fonte da Servlet.
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class FactoryCookie
*/
public class CriaCookie extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public CriaCookie() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Pego os valores do formularios
String nome = request.getParameter("nome");
String telefone = request.getParameter("telefone");
String endereco = request.getParameter("endereco");
String bairro = request.getParameter("bairro");
String cidade = request.getParameter("cidade");
// Cria o objeto Cookie
Cookie cookieNome = new Cookie("Nome", nome);
Cookie cookieTel = new Cookie("Telefone", telefone);
Cookie cookieEndereco = new Cookie("Endereco", endereco);// Coloquei endereco ao inves de Endereço, pois Endereço é argumento reservado
Cookie cookieBairro = new Cookie("Bairro", bairro);
Cookie cookieCidade = new Cookie("Cidade", cidade);
//Adiciona os Cookies no reponse
response.addCookie(cookieNome);
response.addCookie(cookieTel);
response.addCookie(cookieEndereco);
response.addCookie(cookieBairro);
response.addCookie(cookieCidade);
//redireciona para a pagina pegarCookies.jap
response.sendRedirect("pegarCookies.jsp");
}
}
Preenchendo os campos do formulário, assim que você clicar no botão Enviar será redirecionado para a próxima pagina preenchida com as informações do formulário que estavam armazenados no Cookies do seu Browser.Segue abaixo a imagem da primeira pagina após execução do programa.
Abaixo segue a imagem da pagina pegarCookies.jsp com as informações que estavam nos Cookies do seu Browser.
Fonte:Apostila J2EE – Java Server Page + Servlet da Escola Impacta Tecnologia.
não funcionou, não acha o do.
ResponderExcluir