Cookies en JSP con ejemplo
โก Resumen inteligente
Las cookies JSP son pequeรฑos archivos de texto que se almacenan en el navegador del cliente y que ayudan a las aplicaciones JSP. tracPermite gestionar sesiones, recordar las preferencias del usuario y personalizar las respuestas en mรบltiples solicitudes HTTP mediante la API javax.servlet.http.Cookie y los encabezados de respuesta estรกndar.

ยฟQuรฉ son las cookies JSP?
Las cookies JSP son pequeรฑos archivos de texto que un servidor web basado en JSP solicita al navegador del cliente que almacene en el dispositivo del usuario. Dado que HTTP es un protocolo sin estado, las cookies JSP proporcionan una forma sencilla y basada en estรกndares para recordar informaciรณn entre solicitudes, como el estado de inicio de sesiรณn, la elecciรณn de idioma, el tema o la tienda.ping identificadores del carrito.
- Las cookies JSP son archivos de texto plano que el navegador almacena en el equipo del cliente.
- estรกn acostumbrados a tracinformaciรณn k para la gestiรณn de sesiones, personalizaciรณn y anรกlisis.
- JSP admite cookies HTTP a travรฉs de la tecnologรญa Servlet subyacente y la clase javax.servlet.http.Cookie.
- Las cookies JSP son transmitted dentro de los encabezados de solicitud y respuesta HTTP en cada solicitud coincidente.
- Cuando el navegador estรก configurado para aceptar cookies, las almacena en el disco hasta la fecha de caducidad establecida por setMaxAge.
ยฟPor quรฉ usar cookies JSP?
Los desarrolladores de JSP confรญan en las cookies porque las solicitudes HTTP son independientes entre sรญ. Sin las cookies de JSP, el servidor no sabrรญa que dos solicitudes pertenecen al mismo visitante. Las cookies en JSP solucionan este problema con un mรญnimo de estado en el servidor.
- Sesiรณn tracRey: Una cookie JSESSIONID conecta varias pรกginas vistas a una รบnica sesiรณn lรณgica.
- Personalizaciรณn: Las cookies JSP pueden almacenar preferencias de idioma, tema o diseรฑo.
- Ayudantes de autenticaciรณn: Los tokens de "recordarme" y el estado de inicio de sesiรณn suelen residir en cookies con las banderas HttpOnly y Secure habilitadas.
- Analรญtica: Las cookies en JSP registran a los visitantes recurrentes, las fuentes de referencia y las rutas de conversiรณn.
Tipos de cookies JSP
- Cookie persistente: Una cookie JSP persistente permanece almacenada en el dispositivo durante el tiempo configurado con setMaxAge. Esto ayuda a la aplicaciรณn a recordar las preferencias y los datos de inicio de sesiรณn incluso despuรฉs de reiniciar el navegador.
- Cookie no persistente: Una cookie JSP no persistente, tambiรฉn llamada cookie de sesiรณn, reside รบnicamente en la memoria del navegador y se elimina cuando el usuario cierra el navegador. Se utiliza principalmente para sesiones de corta duraciรณn. tracRey.
Mรฉtodos de cookies JSP
La clase javax.servlet.http.Cookie expone los siguientes mรฉtodos que se utilizan con mayor frecuencia al trabajar con cookies JSP.
-
public void establecerDominio(String dominio)
Este mรฉtodo de configuraciรณn de cookies de JSP establece el dominio al que se aplica la cookie de JSP.
-
public String getDomain()
Este mรฉtodo get cookie de JSP devuelve el dominio al que se aplica la cookie de JSP.
-
public void establecerEdadMรกxima(int expiraciรณn)
Establece el tiempo mรกximo en segundos antes de que caduque la cookie JSP. Un valor de cero elimina la cookie y un valor negativo la convierte en una cookie de sesiรณn.
-
pรบblico entero obtenerEdadMรกxima()
Devuelve la antigรผedad mรกxima de la cookie JSP en segundos.
-
public String getName()
Devuelve el nombre de la cookie JSP.
-
public void establecerValor(String valor)
Establece el valor asociado a la cookie JSP.
-
public String getValue()
Devuelve el valor asociado a la cookie JSP.
-
public void establecerRuta(String ruta)
Este mรฉtodo de configuraciรณn de cookies en JSP establece la URL Ruta a la que se aplica la cookie.
-
public String getPath()
Devuelve el URL Ruta a la que se aplica la cookie JSP.
-
pรบblico void establecerSeguridad(booleano flag)
Marca la cookie JSP para que solo se envรญe a travรฉs de conexiones HTTPS cifradas.
-
public void establecerComentario(String cmt)
Describe la finalidad de la cookie JSP.
-
public String getComment()
Devuelve el comentario que describe la cookie JSP.
Cรณmo gestionar las cookies de JSP
Trabajar con cookies JSP implica tres pasos repetibles. Se utiliza el mismo patrรณn para el estado de inicio de sesiรณn, los cambios de tema y la tienda.ping carros.
- Crea el objeto Cookie de JSP utilizando el constructor Cookie.
- Configure los atributos de las cookies, especialmente la antigรผedad mรกxima, la ruta y los indicadores de seguridad.
- Envรญa la cookie al navegador a travรฉs de las cabeceras de respuesta HTTP usando response.addCookie.
Cรณmo crear una cookie JSP
Se crea una nueva cookie JSP instanciando javax.servlet.http.Cookie con un nombre y un valor. A continuaciรณn, la cookie se adjunta al objeto de respuesta para que el navegador la almacene.
Cรณmo leer las cookies de JSP
En cada solicitud posterior, el navegador envรญa al servidor las cookies JSP correspondientes. La pรกgina las lee mediante la funciรณn request.getCookies, que devuelve un array de objetos Cookie. A continuaciรณn, la aplicaciรณn itera sobre el array, busca cada cookie por su nombre y utiliza su valor.
Cรณmo eliminar una cookie de JSP
Para eliminar una cookie JSP, el servidor crea una nueva cookie con el mismo nombre, le asigna un valor vacรญo, llama a setMaxAge con cero y la agrega a la respuesta. El navegador elimina la cookie almacenada en la siguiente respuesta.
Ejemplo de cookies en JSP
En este ejemplo de cookies JSP, la aplicaciรณn crea dos cookies para el nombre de usuario y el correo electrรณnico, las mantiene activas durante diez horas y luego lee los valores en una segunda pรกgina llamada action_cookie_main.jsp.
acciรณn_cookie.jsp
<%-- Action_cookie.jsp: input form for JSP Cookies demo --%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie</title> </head> <body> <form action="action_cookie_main.jsp" method="GET"> Username: <input type="text" name="username"> <br /> Email: <input type="text" name="email" /> <input type="submit" value="Submit" /> </form> </body> </html>
Acciรณn_cookie_main.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% Cookie username = new Cookie("username", request.getParameter("username")); Cookie email = new Cookie("email", request.getParameter("email")); username.setMaxAge(60*60*10); email.setMaxAge(60*60*10); // Add both the JSP Cookies in the response header. response.addCookie( username ); response.addCookie( email ); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Cookie JSP</title> </head> <body> <b>Username:</b> <%= request.getParameter("username")%> <b>Email:</b> <%= request.getParameter("email")%> </body> </html>
Explicaciรณn de la Code
acciรณn_cookie.jsp
Code Lรญneas 10 a 15: La pรกgina declara un formulario que se envรญa a action_cookie_main.jsp. Dos campos de entrada, nombre de usuario y correo electrรณnico, recopilan datos del usuario junto con un botรณn de envรญo.
Acciรณn_cookie_main.jsp
Code Lรญneas 6 a 9: Se crean dos objetos Cookie, username y email, utilizando request.getParameter para leer los valores enviados por el formulario.
Code Lรญneas 12 a 13: El mรฉtodo setMaxAge se llama con 60 multiplicado por 60 multiplicado por 10, lo que establece la duraciรณn de cada cookie JSP en diez horas.
Code Lรญneas 16 a 17: Las dos cookies se adjuntan a la respuesta mediante response.addCookie. El navegador las envรญa de vuelta en las solicitudes posteriores, y el servidor las lee utilizando request.getCookies o request.getParameter para la solicitud actual.
Resultado
Al ejecutar el cรณdigo anterior, obtendrรก la siguiente salida.
Cuando se ejecuta action_cookie.jsp, el navegador muestra los campos nombre de usuario y correo electrรณnico. Despuรฉs de que el usuario los completa y hace clic en Enviar, action_cookie_main.jsp crea las cookies JSP correspondientes en el servidor, las almacena en el cliente y muestra los valores, confirmando que las cookies se crearon correctamente.
Mejores prรกcticas para cookies JSP
Las aplicaciones web modernas deben tratar las cookies JSP como datos sensibles a la seguridad. Las siguientes prรกcticas se ajustan a las implementaciones actuales de Servlet 4.x y Servlet 5.x.
- Usar HttpOnly: Marca las cookies de autenticaciรณn como HttpOnly para que los scripts del lado del cliente no puedan leerlas.
- Utilice la seguridad: Envรญe las cookies solo a travรฉs de HTTPS llamando a setSecure(true).
- Usar SameSite: Configure el atributo SameSite (Lax o Strict) a travรฉs del contenedor o de los encabezados de respuesta para mitigar la falsificaciรณn de solicitudes entre sitios.
- Mantรฉn los valores pequeรฑos: Almacena un identificador en la cookie y guarda los datos en el almacenamiento del servidor.
- Establecer fecha de caducidad explรญcita: Utilice setMaxAge para obtener un comportamiento predecible en todos los navegadores.


