Saludos.
Bueno, el problema que tengo es el siguiente:
Tengo dos archivos jsp, uno es un formulario llamado Index donde ingreso el Numero de control y el password del usuario, estos datos los compruebo con una Base de datos Mysql, haciendo la comparacion entre el dato obtenido del campo de texto donde pide el Numero de control del usuario contra un Numero de control manualmente establecido desde la Base de datos.
Si el usuario es confirmado se pasa al otro formulario llamado Registro donde pide al usuario llenar otros campos de texto de informacion como su nombre, apellidos, etc. Los valores de los campos de texto de los dos formularios los paso a un javabean llamado DatosUsuario (getters y setters).
Y aqui es donde empieza el problema, quiero enviar los datos de este ultimo formulario(Registro), con una instruccion SQL donde la condicion del WHERE sea el Numero de control establecido en el formulario Index (obviamente con la instruccion Update ya que previamente introduci el Numero de control desde la BD). La instruccion SQL esta en un javabean llamado InsertaRegistro.
Por ejemplo: si en el formulario Index el usuario puso como Numero de control: Maria, utilizar ese nombre en la condicion WHERE de mi instruccion SQL.
instruccion.executeUpdate("UPDATE usuario SET nombre='" + registro.getNombre() + "', apaterno='" + registro.getApaterno() + "', " +
" amaterno='" + registro.getAmaterno() + "', carrera='" + registro.getCarrera() + "', semestre='" + registro.getSemestre() + "' WHERE no_control='maria' "); pero claro con la variable adecuada, que es la que no se establecer.
Les dejo mi codigo para que me hagan saber si tienen una idea de lo que me falta en el programa para que funcione.
Gracias.
index.jsp
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@page errorPage="PaginaError.jsp" %>
<jsp:useBean id="usuario" scope="request"
class="beans.DatosUsuario" />
<jsp:useBean id="valida" scope="request"
class="beans.ValidaUsuario" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<%-- La variable usuario se utiliza para establecer los valores
del formulario (no_control,clave) a la clase DatosUsuario --%>
<jsp:setProperty name="usuario" property="*" />
<%
if (usuario.getNo_control()==null ||
usuario.getClave()==null) {
%>
<form id="form1" name="form1" method="post" action="index">
<label>USUARIO
<input type="text" name="no_control" tabindex="1" />
</label>
<p>
<label>CONTRASEÑA
<input type="password" name="clave" tabindex="2" />
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Entrar" tabindex="3" />
</label>
</p>
</form>
<%-- El if manda el usuario y clave obtenidos del formulario al metodo confirmarUsuario de la clase ValidaUsuario --%>
<%
} else {
if (valida.confirmarUsuario(usuario.getNo_control(),u suario.getClave()))
{
%>
<jsp:forward page="registro.jsp" />
<%
}
else {
%>
<jsp:forward page="PaginaError.jsp" />
<%
}
}
%>
</body>
</html>
registro.jsp
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@page errorPage="PaginaError.jsp" %>
<jsp:useBean id="usuario" scope="request"
class="beans.DatosUsuario" />
<jsp:useBean id="registrar" scope="request"
class="beans.InsertaRegistro" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<jsp:setProperty name="usuario" property="*" />
<%
if (
usuario.getNombre()==null ||
usuario.getApaterno()==null ||
usuario.getAmaterno()==null) {
%>
<form id="form1" name="form2" method="post" action="registro">
<label>NOMBRE(s)
<input type="text" name="nombre" tabindex="1" />
</label>
<p>
<label>APELLIDO PATERNO
<input type="text" name="apaterno" tabindex="2" />
</label>
</p>
<p>
<label>APELLIDO MATERNO
<input type="text" name="amaterno" tabindex="3" />
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Enviar" tabindex="6" />
</label>
</p>
</form>
<%
}
else {
registrar.agregarRegistro(usuario);
}
%>
</body>
</html>
DatosUsuario.java
public class DatosUsuario {
private String no_control;
private String clave;
private String nombre;
private String apaterno;
private String amaterno;
public void setNo_control(String no_control){
this.no_control=no_control;
}
public String getNo_control(){
return no_control;
}
public void setClave(String password){
clave=password;
}
public String getClave(){
return clave;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public String getNombre(){
return nombre;
}
public void setApaterno(String apaterno){
this.apaterno=apaterno;
}
public String getApaterno(){
return apaterno;
}
public void setAmaterno(String amaterno){
this.amaterno=amaterno;
}
public String getAmaterno(){
return amaterno;
}
}
InsertaRegistro.java
import java.io.*;
import java.sql.*;
import java.util.*;
public class InsertaRegistro {
private Connection conexion;
private Statement instruccion;
private String control;
private ResultSet resultados;
public InsertaRegistro()throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/nombre_basedatos";
conexion=DriverManager.getConnection(url, "user", "password");
instruccion=conexion.createStatement();
}
/* En la condicion WHERE no_control=, es donde no se que variable establecer para que se cumpla mi condicion */
public void agregarRegistro(DatosUsuario registro)throws SQLException {
instruccion.executeUpdate("UPDATE usuario SET nombre='" + registro.getNombre() + "', apaterno='" + registro.getApaterno() + "', " +
" amaterno='" + registro.getAmaterno() + "' WHERE no_control= ");
}
protected void finalize() {
try {
instruccion.close();
conexion.close();
}
catch (SQLException exceptionSQL) {
exceptionSQL.printStackTrace();
}
}
}