Estoy haciendo un foro simple con una serie de Servlets
que representan cada uno una página de inicio, tema, postedit, inicio de sesión y lista de usuarios. En algunas de estas páginas hay un enlace que aparece cuando un usuario no está conectado.Redirigir a una página después de un inicio de sesión
Lo que me gustaría lograr es desencadenar una redirección (utilizando forward() en un RequestDispatcher) después de un inicio de sesión para que el el navegador vuelve a la página donde estaba el usuario antes de hacer clic en el enlace de inicio de sesión. Para hacer esto, veo dos soluciones.
La primera solución es tener un HTML Form
con un botón de inicio de sesión y un campo invisible que contendrá información que dirá qué página redirigir como Parameter
. Esto es factible, pero me gustaría probar algo más.
La segunda solución es agregar un Attribute
al session
que representa la primera "página" de alguna manera. Esto podría contener una Cadena, pero esto no es diferente de la primera aproximación. Otro giro sería agregar una referencia al HttpServlet y usar instanceof o una variable de cadena estática que podría usarse para identificar el servlet de alguna manera. Sin embargo, esto requeriría crear una clase antecesora común para todos los Servlets
.
¿Quizás hay otra solución simple que pueda ver y que sería un buen compromiso? ¿O tal vez una de las soluciones anteriores es perfectamente aceptable?
Excelente respuesta, además de que me da una idea de a qué apuntar una vez que se agrega un DAO. –
Si está utilizando seguridad administrada por contenedor, publicar la solicitud en j_security_check no le permitirá hacerlo; en su lugar use el inicio de sesión programático de la versión 3 de Servlet: HttpServletRequest.login – Ryan
Muchas gracias. –