Buenas noches compañeros, estoy haciendo una web para ir practicando porque a finales de este mes empiezo las prácticas en J2EE, me ha surgido un problema que no soy capaz de ver donde da el fallo y me gustaría contar con su ayuda:
Pongo la información y luego explico en detalle el problema:
Archivo Registro.java (Servlet)
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Consultas con = new Consultas();
try{
String dni = request.getParameter("dni");
String pass = request.getParameter("pass");
String email = request.getParameter("email");
String nUsuario = request.getParameter("nombre");
if(!dni.equals("") && !pass.equals("")){
ConexionDB.rs = con.RegistroUsuario(dni, pass, nUsuario, email);
if (ConexionDB.rs.next()){
// Si se ha registrado correctamente procedo al logueo de esa sesión
ConexionDB.rs = con.Autenticacion(dni, pass);
if (ConexionDB.rs.next()){
dni = ConexionDB.rs.getString("dni");
pass = ConexionDB.rs.getString("Password");
Login login = new Login();
login.setUsuario(dni);
login.setClave(pass);
acceso.add(login);
for(int i=0; i<acceso.size();i++){
if(acceso.get(i).getUsuario().equals(dni) && acceso.get(i).getClave().equals(pass)){
HttpSession sessionok = request.getSession();
sessionok.setAttribute(dni, pass);
response.sendRedirect("menu.jsp");
} else {
response.sendRedirect("loginweb.jsp?error=error en el login");
}
}
}
} else {
response.sendRedirect("loginweb.jsp?error=error en el registro");
}
}
}catch(SQLException | IOException e){
response.sendRedirect("loginweb.jsp?error=Nombre de Usuario y/o Clave Incorrecto");
}
}
Archivo Consulta.java
public class Consultas extends ConexionDB{
public ResultSet RegistroUsuario(String dni, String pass, String nombre, String email) throws SQLException {
Statement st = conex.createStatement();
try {
String cadSQL = "INSERT INTO `usuarios` (`DNI`, `Password`, `Nombre`, `email`)"
+ " VALUES ('"+ dni +"','"+ pass +"','"+ nombre +"','"+ email +"');";
rs = st.executeQuery(cadSQL);
} catch (SQLException e) {
System.out.print(e);
} finally {
//conex.close();
}
return rs;
}
}
Archivo loginweb.jsp
<div id="registro">
<h1><center>Registro Web</center></h1>
<form action="Registro" method="post">
<table border="0">
<tr>
<td>Nombre de Usuario: </td><td><input type="text" name="nombre" id="nombre" /></td>
</tr>
<tr>
<td>DNI: </td><td><input type="text" name="dni" id="dni" /></td>
</tr>
<tr>
<td>Correo electrónico: </td><td><input type="text" name="email" id="email" /></td>
</tr>
<tr>
<td>Contaseña: </td><td><input type="password" name="pass" id="pass" /></td>
</tr>
</table>
<input type="submit" name="Entrar" id="Entrar" />
</form>
</div>
Pues bien, al ejecutar el form del jsp para proceder al insert del nuevo usuario y mas adelante, proceder a su logueo de sesión, el error me lo da en la línea rs = st.executeQuery(cadSQL); que recibe un null...he probado la SQL para ver si ese era el problema pero no es asi, ya que, al ejecutar la query dentro del panel phpmyadmin donde tengo la BD MySQL, la sentencia se ejecuta correctamente. He hecho un debug, y me da la impresión que no ejecuta la SQL, no se si estoy en lo cierto pero me gustaría saber su opinión y su solución :)
Muchas gracias por su ayuda :D