Foros del Web » Programación para mayores de 30 ;) » Java »

jsp de loguin - getters y setters

Estas en el tema de jsp de loguin - getters y setters en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 18/12/2007, 12:41
 
Fecha de Ingreso: diciembre-2007
Mensajes: 36
Antigüedad: 16 años, 4 meses
Puntos: 0
jsp de loguin - getters y setters

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
  #2 (permalink)  
Antiguo 26/12/2007, 07:59
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: jsp de loguin - getters y setters

Yo te recomiendo que depures tu programa poniendo diversos puntos de interrupcion tanto en la clase java como en los scripts java de tu jsp. no se que IDE estaras utilizando, pero intentalo asi y ve viendo el valor de tus variables y lo sacaras.
La linea que dices cuando hablas de que "entra siempre en mostrarError" supongo que es esta: else if(mostrarError) pero para ello si que ha tenido que entrar en validarUsuario ya que esta precedido de if (validadorUsuario.isError()) { y tiene que hacer esa comprobacion antes de irse al else.
Mira que en : sentencia.setString( 1, usuario); no te este pillando un nulo (porque no se pasen bien los argumentos de la jsp al bean) porque si es asi la sql no te devolvera datos y supondra que cualquier usuario que ingreses desde la jsp no existe.

Suerte
  #3 (permalink)  
Antiguo 26/12/2007, 09:53
 
Fecha de Ingreso: diciembre-2007
Mensajes: 36
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: jsp de loguin - getters y setters

Uso el Eclipse 3.2 wtp aio, itento poer breakpoits, pero cuando lo ejecuto en debug mode nunca llega amostrar la pagina, lo cual me parece bastate raro.
Voy a chequear como se forma el query, probare armandolo yo manualmente primero, gracias
Feliz navidad y prospero año nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:42.