Esto es asi, la primer pagina que abre el usuario tiene un text, un password y un submit para loguearse, si no pone nada le muestra la misma pagina hasta que ponga, si pone mal la variable mostrarError se opne en true y muestra el cartel de error pidiendo que reingrese, y si ingresa bien muestra un cartel de bienvenida mostrarFormulario queda en false.
El tema es que uso beans para la validacion (si existe y esta bien la pass del usuario), supuestamente esta todo bien el codigo, pero el "supuestamente" implica que no esta funcionando, o sea que, ponga lo que ponga entra siempre en mostrarError, lo cual me dice que no esta entrando en validadorUsuario(), alguien me dice que esta pasando?
aca va el codigo:
validarUsuario.jsp
Código:
ValidadorUsuario.java<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@page language="java" contentType="text/html" pageEncoding="utf-8" %> <jsp:useBean id="validadorUsuario" scope="session" class="com.loguin.accesoabase.ValidadorUsuario"/> <jsp:setProperty name="validadorUsuario" property="*"/> <%! boolean mostrarFormulario = false; %> <%! boolean mostrarError = false; %> <% if(validadorUsuario.getUsuario() == null){ mostrarFormulario = true; } else { mostrarFormulario = !validadorUsuario.isValid(); mostrarError = mostrarFormulario; } %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Loguin de usuario</title> </head> <body> <% if (mostrarFormulario) { %> <form name="formulario" method="post" action="validarUsuario.jsp"> <input type="text" name="usuario"> <input type="password" name="password"> <input type="submit" name="Ingresar"> </form> <% if (validadorUsuario.isError()) { %> <h1>Un problema en nuestros servidores impidió procesar su ingreso.</h1> <h1>Por favor, contáctese con el Administrador del sitio.</h1> <% } else if(mostrarError) { %> <h1>El nombre y/o la contraseña ingresados son invalidos</h1> <% } } else { %> <h1>Bievenido <jsp:getProperty name="validadorUsuario" property="usuario"/></h1> <% } %> </body> </html>
Código:
Saludos package com.loguin.accesoabase; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ValidadorUsuario { private String usuario; private String password; private String nombre; private boolean valido = false; private boolean hayError = false; private boolean buscarElUsuarioYLaPass() throws SQLException{ Connection coneccion = null; PreparedStatement sentencia = null; ResultSet resultado = null; String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver"; String URL = "jdbc:derby:e:\\Usuarios"; String QUERY = "SELECT PASSWORD, NOMBRE FROM USUARIOS.LOGIN WHERE USUARIOID=?"; boolean existe = false; try { Class.forName(DRIVER); coneccion = DriverManager.getConnection(URL); sentencia = coneccion.prepareStatement (QUERY); sentencia.setString( 1, usuario); resultado = sentencia.executeQuery(QUERY); if (resultado.next()&& password.equals(resultado.getString(1))){ nombre = resultado.getString(2); existe = true; } } catch (Exception e) { e.printStackTrace(); } finally { if (resultado != null) resultado.close(); if (sentencia != null) sentencia.close(); if (coneccion != null) coneccion.close(); } return existe; } //Getters y Setters public String getUsuario(){ return usuario; } public void setUsuario(String u){ usuario = u; } public void setPassword(String u){ password = u; } public String getNombre(){ return nombre; } public boolean isValid(){ if(valido) return true; try{ valido = buscarElUsuarioYLaPass(); hayError = false; }catch(Exception e){ valido = false; hayError = true; } return valido; } public boolean isError(){ return hayError; } }