Hola a todos. Estoy intentando crear una tienda virtual empleando Tomcat y servlets en Java. El código de la web lo tengo todo en HTML, nada de PHP (porque no tengo ni idea, ya me gustaría saber usarlo), lo único que no es HTML es un trocito en Javascript que utilizo para controlar la validez de datos de entrada en el formulario de registro.
Ahora se me presenta el siguiente problema. Tengo un formulario de inicio de sesión en HTML, que mediante el método POST llama a un servlet que recoge e-mail y contraseña, busca en la base de datos de usuarios, y dependiendo de si el usuario se encuentra en la base de datos o no le redirige a una página distinta (si el usuario existe y la contraseña es válida será una página de bienvenida, sino le dice que pruebe otra vez).
Como me explico fatal, copio y pego el código del servlet:
public class LoginServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
Validador validador = new Validador();
boolean tieneAcceso = validador.validarUsuario(request.getParameter("ema il"),request.getParameter("contraseña"));
if (tieneAcceso) {
response.sendRedirect("bienvenido.html");
} else {
response.sendRedirect("error.html");
}
}
}
El problema es, que no existe ningún control de la sesión. Es decir, una vez que el usuario inicia sesión, el sistema no se entera y se puede seguir iniciando sesión eternamente. Evidentemente lo que quiero es que cuando se inicia sesión, el sistema sepa que TAL usuario ha iniciado sesión y que dependiendo de qué si es cliente o administrador, aparezca un código HTML distinto en la web.
Por lo que veo, tengo que crear un objeto Sesión al cual pasarle información del cliente (e-mail, imagino)+carrito de la compra.
Lo que no entiendo es, aun teniendo el objeto sesión, cómo lo utilizaría por ejemplo en mi código LoginServlet? Lo único que se me ocurre, sería pasarle el objeto Sesión a mi código HTML de alguna forma, de tal manera que cambiase el HTML dependiendo de lo que haga falta. Pero no sé si esto es posible o existen otras maneras.
Agradecería cualquier tipo de ayuda o guía en este tema, estoy bien perdido.
Gracias por adelantado!