Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
</form>
1.
2.
Usando JavaScript, encriptamos la contrasea en MD5 (es ms seguro encriptarla desde el cliente)
3.
4.
Si todo funciona como debe (previas validaciones), mostramos la pgina del admin (por ahora del
admin, luego vienen otras).
En nuestro archivo jsp, solamente tenemos esto:
Un form, que tiene el campo para el nombre de usuario, la pass, y uno para que vean la pass
encriptada.
import javax.servlet.http.*;
import java.sql.*;
Variables de Clase:
private String nombre, pass, //En pass se guarda la que ingreso el usuario
AttNombre ="", AttAppe ="", //Para guardar los datos que nos regrese la BD
SQLEx = "", EX = ""; //Los errores que podamos tener
Empezamos con el mtodo doPost. El doGet si gustan pueden borrarlo, no lo vamos a usar.
Luego llamamos a la funcin validar para que valide los campos (le enviamos los datos
ingresados por el usuario). Fjense que estoy tomando el texto del input hash, porque las
contraseas las tengo encriptadas en la BD.
Despus de que validar cumpla su trabajo (que veremos ms adelante), guardamos, como
variables de sesin, el nombre y el apellido de la persona. (Nosotros ingresamos solo el nombre
de usuario.)
this.lectorBD(estado, falta);
}
Fijamos una variable tipo Boolean para definir el estado, y falta para guardar un mensaje.
Cuando esto se cumpla, cambiamos el estado a true. En caso de que alguna de ellas est vaca,
guardamos el mensaje correspondiente.
Class.forName(MySQLDriver);
Connection conexion = DriverManager.getConnection
(DriGetConn, userBD, passBD);
Statement query = conexion.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = query.executeQuery(selectID + nombre +"'");
rs.first();
IDpass = rs.getString("id");
rs.close();
rs = query.executeQuery(selectMD5 + IDpass + "'");
rs.first();
passMD5 = rs.getString("password");
rs.close();
Despus, y como se tienen definidas las tablas, buscamos el id del username ingresado.
Con este id, buscamos la contrasea del username ingresado. Esta contrasea es la que esta
guardada en la BD.
if(this.passMatch(passMD5)){
rs = query.executeQuery(selectDatos + IDpass +"'");
rs.first();
this.AttNombre = rs.getString(1);
this.AttAppe = rs.getString(2);
rs.close();
}
query.close(); conexion.close();
}catch(SQLException ex){
this.SQLEx = "Se produjo una excepcin durante la conexin: "+ ex.toString();
}catch(Exception ex){
this.EX = "Se produjo una excepcin: "+ ex.toString();
}
}
}
Ahora, llamamos a la funcin passMatch para comprobar que las 2 sean iguales (la que ingresamos
en el formulario, y la que lemos desde la BD). La usamos directamente en el if.
Enviamos como parmetro la contrasea leda desde la BD.
Sabemos que son iguales, por lo tanto guardamos en las variables de clase AttNombre y
AttAppe lo que obtenemos desde la BD.
Eso es todo!
Por ltimo, el cdigo de postLog.jsp
<body>
<h2>Tenemos las variables de sesin, que guardamos en el servlet</h2>
<%=nombres%><br/>
<%=apellidos%>
</body>