![](../images/cookies.png)
¿Que es una cookie?
Las cookies sirven 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.
Como 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.
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.
if(rec!=null) { miCookie=new Cookie("login",login); miCookie.setMaxAge(60*60*24*31); miCookie.setPath("/"); response.addCookie(miCookie); }
Recuperar un cookie
Para recoger todos los cookies que tenga el usuario guardados se crea un array de tipo Cookie, y se utiliza el método getCookies() de la interfaz HttpServletRequest para recuperarlos:
<% Cookie [] todosLosCookies=request.getCookies(); /* 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]; /* A continuación se compara los nombres de cada uno de los cookies con el que se está buscando. Si se encuentra un cookie con ese nombre se ha dado con el que se está buscando, de forma que se sale del bucle mediante break. */ if(unCookie.getName().equals(“nombre”)) break; } /* Una vez localizado tan sólo queda utilizar los métodos apropiados para obtener la información necesaria que contiene. */ out.println(“Nombre: “+unCookie.getName()+”
”); out.println(“Valor: “+unCookie.getValue()+”
”); out.println(“Path: “+unCookie.getPath()+”
”); out.println(“Tiempo de vida:“+unCookie.getMaxAge()+”
”); out.println(“Dominio: “+unCookie.getDomain()+”
”); %>
Tipos de Cookies
Cookies de sesión: desaparecen cuando se acaba la sesión, entendiendo por sesión el período de tiempo que un usuario está en un sitio web de manera continuada con la misma ventana del navegador.
Cookies permanentes: si la fecha de caducidad de la cookie se corresponde con un futuro lejano, se puede decir que la cookie que es permanente. Esto no es del todo cierto, como se ha observado, ya que los navegadores cuentan con un espacio limitado para almacenar cookies de manera que las más nuevas hacen desaparecer a las más viejas cuando dicho espacio está totalmente ocupado.
Cookies con fecha de caducidad: a veces los sitios web establecen cookies con una fecha de caducidad concreta. Por ejemplo, se puede utilizar una cookie para recordar a un cliente que existe una oferta. Esta cookie tendrá necesariamente la fecha de caducidad de la propia oferta, más allá de la cual no tienen ningún sentido que siga existiendo.
Cookies para borrar: borrar una cookie existente es como volver a escribirla con una fecha de caducidad anterior a la fecha actual.