Bienvenido(a), Visitante. Favor de ingresar o registrarse.
Diciembre 02, 2008, 12:28:35
Inicio Ayuda Buscar Ingresar Registrarse
Noticias: Foro de Java, C++ y más.

Nuevo foro de Control de versiones.

+  Foros Java y C/Linux
|-+  Programación Web
| |-+  Java J2EE y JSP
| | |-+  Re: jsp de loguin - getters y setters
« anterior próximo »
Páginas: [1] Enviar tema Imprimir
Autor Tema: Re: jsp de loguin - getters y setters  (Leído 458 veces)
onuris
Newbie
*
Mensajes: 15


Ver Perfil Email


« en: Diciembre 19, 2007, 04:40:48 »

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.login.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.login.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
En línea
JBeto
Newbie
*
Mensajes: 28



Ver Perfil
« Respuesta #1 en: Junio 15, 2008, 05:42:18 »

Hola, mira creo que deberias en tu jsp validarUsuario.jsp, recibir los campos cargados en tu pantalla de login, osea que en login no hagas en setProperty del bean, sino en la jsp validarUsuario...

tene en cuenta que primero tu jsp se ejecuta en el servidor, entonces siempre carga tu bean con campos nulos

saludos
En línea

Betos ®
Páginas: [1] Enviar tema Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by MySQL Powered by PHP Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 válido! CSS válido!