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.


