170 likes | 381 Views
JSP COOKIES. cookies. Las cookies son datos guardados por los navegadores a instancias del servidor. Los sitios Web las utilizan con propósitos diversos: identificación de usuarios, sistemas de personalización, publicidad, estudios de perfil, etc.
E N D
cookies • Las cookies son datos guardados por los navegadores a instancias del servidor. • Los sitios Web las utilizan con propósitos diversos: identificación de usuarios, sistemas de personalización, publicidad, estudios de perfil, etc. • la mayor parte de los portales no funcionarían sin cookies.
Clase cookie • En el paquete estándar javax.servlet.http se encuentra la clase Cookie recogida de la siguiente forma: public class Cookie implements Cloneable
Constructor cookie • El constructor de la clase se define como: public Cookie(String name, String value); Nota: El primer parámetro se corresponde con el nombre de la cookie y el segundo con el valor de la misma.
Método getXXX • sirven para obtener información de la cookie. • Métodos getXXXpublic 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étodo setXXX • sirven para establecer las características de la cookie. • Métodos setXXXpublic void setDomain(String pattern);public void setMaxAge(int expiry);public void setPath(String uri);public void setSecure(boolean flag);public void setValue(String newValue);
cookies • Las cookies viajan internamente en lo que se conoce como cabeceras HTTP. • una cabecera HTTP emitida por el servidor después de que el cuerpo se haya empezado a mandar no será interpretada como tal por el navegador. • las cookies deben ser establecidas antes de generar ningún otro dato.
Creacion de una cookie • El constructor de la clase javax.servlet.http.Cookie crea un cookie con un nombre inicial y un valor. Se puede cambiar el valor posteriormente utilizando el método setValue. • El nombre del cookie debe ser un token HTTP/1.1. Los tokens son strings que contienen uno de los caracteres especiales listados en RFC 2068.
Creacion de una cookie • El valor del cookie puede ser cualquier string, aunque no está garantizado que los valores null funcionen en todos los navegadores. Además, si enviamos una cookie que cumpla con las especificaciones originales de las cookies de Netscape, no se deben utilizar carácteres blancos ni ninguno de estos caracteres. • [ ] ( ) = , "" / ? @ : ;
Creacion de una cookie • Si nuestro servlet devuelve una respuesta al usuario con un Writer, debemos crear la cookie antes de acceder a Writer. (Porque las cookies se envían al cliente como una cabecera, y las cabeceras deben escribirse antes de acceder al Writer.)
Envio de cookies • Las cookies se envían como cabeceras en la respuesta al cliente, se añaden con el método addCookie de la clase HttpServletResponse. Si estamos utilizando un Writer para devolver texto, debemos llamar a addCookie antes de llamar al método getWriter de HttpServletResponse.
Recuperacion de cookies. • Para recuperar una cookie, debemos recuperar todas las cookies utilizando el método getCookies de la clase HttpServletRequest. • El método getCookies devuelve un array de objetos Cookie, en el que podemos buscar la cookie o cookies que querramos.
Recuperacion de cookies. • NOTA: distintas cookies pueden tener el mismo nombre, para obtener el nombre de una cookie, utiliza su método getName
Obtener el valor de una cookie. • Para obtener el valor de una cookie, se utiliza el método getValue
En el siguiente ejemplo se muestra el objeto Response, para crear dos cookies y un diccionarios. Puesto que las cookies residen en cabeceras, es necesario utilizar Response.Cookies antes de la etiqueta <HTML> de la página. Cualquier intento de crear, modificar o borrar cookies después de <HTML> producirá un error.
<%@ LANGUAGE=JScript %> <% Response.Cookies ("ColorPreferido") = "Morado" Response.Cookies ("Pais") = "España" Response.Cookies ("Color") ("Fondo") = "Verde" Response.Cookies ("Color") ("Texto") = "Negro" Response.Cookies ("Color") ("Marcas") = "Rojo" %> <html> <head> <title>Ejemplo</title> </head> <body> En este ejemplo se crean las cookies 'ColorPreferido' y 'Pais'. También se crea el diccionario 'Color' con las claves 'Fondo', 'Texto' y 'Marcas' </body> </html>