Cookies

¿Que son las cookies?

Las cookies son una pequeña pieza de información enviada por un sitio web, las cuales son almacenadas en el navegador del usuario del sitio, de esta manera el sitio web puede consultar dicha información para notificar al sitio de la actividad previa del usuario. Sus principales funciones son:

Originalmente, sólo podían ser almacenadas por petición de un CGI desde el servidor, pero Netscape dio a su lenguaje Javascript la capacidad de introducirlas directamente desde el cliente, sin necesidad de CGIs. En un principio, debido a errores del navegador, esto dio algunos problemas de seguridad. Las cookies pueden ser borradas, aceptadas o bloqueadas según desee, para esto sólo debe configurar convenientemente el navegador web.

 

Creacion de cookies

Java es una de las tecnologías que más se utilizan en actualidad a la hora de desarrollar aplicaciones Web. Cada vez es mayor el número de portales y sitios web que se han construido utilizando páginas JSP o servlets. Evidentemente el API que se encuentra por detrás ofrece los recursos necesarios para poder leer y/o escribir cookies.

En el paquete estándar javax.servlet.http se encuentra la clase Cookie recogida de la siguiente forma:

public class Cookie implements Cloneable

El constructor de la clase se define como:

public Cookie(String name, String value);

El primer parámetro se corresponde con el nombre de la cookie y el segundo con el valor de la misma. El resto de los métodos de la clase cookie se divide en dos grupos: los método getXXX sirven para obtener información de la cookie; los métodos setXXX sirven para establecer las características de la cookie. A continuación de muestra un resumen de ambos grupos:

Métodos getXXX
public String getComment();
public String getDomain();
public int getMaxAge();
public String getName();
public String getPath();
public boolean getSecure();
public String getValue();
public void setComment(String purpose);

Métodos setXXX
public void setDomain(String pattern);
public void setMaxAge(int expiry);
public void setPath(String uri);
public void setSecure(boolean flag);
public void setValue(String newValue);

Este sería un buen esqueleto para el manejo de Cookies:

            String cookie=new String();
            int encontrado=-1;
            String log=new String();            
            
            Cookie [] todosLosCookies=request.getCookies();
            Cookie unCookie=null;
            try
            {
                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();
                 }
             }
             catch(Exception error)
              {
                %>

                <%    
                }