Bueh, ya pase por todo, primero haciendolo con swing, despues por web en jsp, ya hice la clase con las consultas y todo.
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:
<!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>
ValidadorUsuario.java
Código:
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;
}
}
Saludos