¿Qué son las cookies?

"Implantación de aplicaciones web"

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.

Crear Cookie

"Implantación de aplicaciones web"

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.

Cabe reseñar que los cookies, no son más que ficheros de texto, que no pueden superar un tamaño de 4Kb, además los navegadores tan sólo pueden aceptar 20 cookies de un mismo servidor web (300 cookies en total).

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.

Por defecto, cuando creamos un cookie, se mantiene mientras dura la ejecución del navegador. Si el usuario cierra el navegador, los cookies que no tengan establecido un tiempo de vida serán destruidos.

// Tras la validación correcta y que quiera recordar el login
if(rec!=null)
{
miCookie=new Cookie("login",login);
miCookie.setMaxAge(60*60*24*31);
miCookie.setPath("/");
response.addCookie(miCookie);
}

Recuperar Cookie

"Implantación de aplicaciones web"

<%
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>”);
%>

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();
}