Por lo general, las cookies se utilizan para el manejo de la sesión. Entonces, todas las pestañas y ventanas del navegador comparten la misma sesión. Pero puede configurar su contenedor de servlets para usar la reescritura de URL en lugar de las cookies. (Aquí está un example for Jetty.)
Con la reescritura de URL, la sesión solo se identifica a través de un parámetro de URL que contiene la ID de la sesión. Por lo tanto, cada URL interna de su aplicación web debe ser mejorada con este parámetro usando el método HttpServletResponse.encodeURL()
. Si está utilizando un marco web como Wicket, es probable que esto ya esté hecho para usted.
Con la reescritura de URL es posible tener varias sesiones independientes en diferentes ventanas o pestañas de la misma instancia del navegador.
Actualización: En respuesta a la downvote Quiero dejar claro el diferente comportamiento de la reescritura de URL:
Supongamos que la URL del sitio web es http://webapp.com.
Cookies: Abra http://webapp.com en la primera pestaña del navegador.
El servidor crea una sesión y envía una cookie en la respuesta.
El navegador almacena la cookie.
A continuación, abra http://webapp.com en la segunda pestaña del navegador. El navegador asocia esta URL con la cookie almacenada recientemente y agrega la cookie a la solicitud.
Para el servidor no hay diferencia entre las solicitudes de la primera o la segunda pestaña del navegador y responde desde la misma sesión. A veces este es el comportamiento deseado.
la reescritura de URL: abierto http://webapp.com en la primera pestaña del navegador.
El servidor crea una sesión con ID 1 y agrega el parámetro jsessionid = 1 a cada URL en la página de respuesta. No se transfiere ninguna cookie.
Todas las demás solicitudes a otra página de la misma aplicación web de la primera pestaña del navegador incluyen la ID de la sesión (por ejemplo, 1).
A continuación, abra http://webapp.com en la segunda pestaña del navegador. ¡Aquí está la diferencia! Debido a que no hay cookie ni parámetro jsessionid en la solicitud, el servidor crea una nueva sesión (es decir, ID 2) y agrega el parámetro jsessionid = 2 a cada URL contenida en la página de respuesta. A partir de ahora, todas las solicitudes posteriores de la segunda pestaña del navegador están asociadas a la sesión 2.
Así que tiene dos sesiones independientes en el mismo navegador.
posible duplicado de [¿Cómo diferenciar sesiones en las pestañas del navegador?] (Http://stackoverflow.com/questions/368653/how-to-differ-sessions-in-browser-tabs) –
¿está utilizando javascript en su aplicación – developer