Las cookies constituyen una potente herramienta empleada por los servidores Web
para almacenar y recuperar información acerca de sus visitantes. Mediante el uso de
cookies se permite al servidor Web recordar algunos datos concernientes al usuario,
como sus preferencias para la visualización de las páginas de ese servidor, nombre y
contraseña, productos que más le interesan, etc
Una cookie no es más que un fichero de texto que algunos servidores piden a
nuestro navegador que escriba en nuestro disco duro, con información acerca
de lo que hemos estado haciendo por sus páginas
¿Cómo crear una cookie?
Un cookie almacenado en el ordenador de un usuario está compuesto por
un nombre y un valor asociado al mismo. Además, asociada a este cookie
pueden existir una serie de atributos que definen datos como su tiempo de
vida, alcance, dominio, etc.
Para crear un objeto de tipo Cookie se utiliza el constructor de la clase
Cookie que requiere su nombre y el valor a guardar. El siguiente ejemplo
crearía un objeto Cookie que contiene el nombre “nombre” y el valor
“objetos” (String).
<%
Cookie miCookie=new Cookie(“nombre”,”objetos”);
%>
También se pueden guardar valores o datos que provengan de páginas
anteriores y que hayan sido introducidas a través de un formulario:
<%
Cookie miCookie=null;
String ciudad= request.getParameter(“formCiudad”);
miCookie=new Cookie(“ciudadFavorita”,ciudad);
%>
Una vez que se ha creado un cookie, es necesario establecer una serie
de atributos para poder ser utilizado. El primero de esos atributos es el
que se conoce como tiempo de vida. Ejemplo si queremos recordar el login:
if(rec!=null)
{
miCookie=new Cookie("login",login);
miCookie.setMaxAge(60*60*24*31);
miCookie.setPath("/");
response.addCookie(miCookie);
}
¿Cómo recuperar las cookies?
<%
Cookie [] todosLosCookies=request.getCookies();
Cookie unCookie=null;
/* El siguiente paso es crear un bucle que vaya leyendo todos los cookies. */
for(int i=0;i<todosLosCookies.length;i++)
{
Cookie unCookie=todosLosCookies[i];
if(unCookie.getName().equals(“nombre”))
break;
}
out.println(“Nombre: “+unCookie.getName()+”<BR>”);
out.println(“Valor: “+unCookie.getValue()+”<BR>”);
out.println(“Path: “+unCookie.getPath()+”<BR>”);
out.println(“Tiempo de vida:“+unCookie.getMaxAge()+”<BR>”);
out.println(“Dominio: “+unCookie.getDomain()+”<BR>”);
%>
También podemos hacerlo así:
String cookie=new String();
int encontrado=-1;
String log=new String();
Cookie [] todosLosCookies=request.getCookies();
Cookie unCookie=null;
for(int i=0;(i<todosLosCookies.length) && (encontrado==-1);i++)
{
unCookie=todosLosCookies[i];
if(unCookie.getName().equals("login"))
{
encontrado=i;
}
}
if(encontrado!=-1)
{
cookie=unCookie.getValue();
}