Pasar dato de input text a javabean

egs_cabo
20 de Febrero del 2008
Saludos.
El problema que tengo es el siguiente:
Tengo dos archivos jsp donde tengo un formulario en cada uno, el primer formulario es de inicio de sesion donde se loguean los usuarios y el segundo es de confirmar datos del usuario ya logueado.
El problema radica en que quiero utilizar la varible del input text donde el usuario pone su nombre de usuario en el primer formulario para utilizarla en un Javabean y asi actualizar el registro del usuario con SQL, pero no se que variable debo de utilizar.

Gracias.
Espero y me puedan dar una ayuda, aqui les dejo el codigo que tengo.
Perdon si es mucho escrito.

Primer formulario llamado Index.jsp, en el cual el usuario escribe el nombre, el cual quiero utilizar para Actualizar su registro (el nombre de la varible en el input text es "no_control").

<%@ 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&iacute;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(),usuario.getClave()))
{
%>
<jsp:forward page="registro.jsp" />
<%
}
else {
%>
<jsp:forward page="PaginaError.jsp" />
<%
}
}
%>

</body>
</html>

Segundo formulario llamado Registro.jsp, en el cual obtengo el nombre del usuario y apellidos para acompletar el registro total del usuario (Los getters y setters de el formulario Index y Registro los hago con el javabean llamado DatosUsuario.java).
Los datos obtenidos por DatosUsuario los paso a otro javabean llamado InsertaRegistro donde se encuentra un metodo con el cual actualizo el registro del usuario, pero el problema es que nada mas me pasa los valores del segundo formulario y el "no_control" del formulario Index.jsp no me lo pasa y es el que ocupo para acompletar la setencia SQL.

<%@ 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&iacute;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>

Javabean 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;
}

}


Javabean InsertaUsuario.java, en el metodo agregarRegistro es donde se encuentra la setencia SQL para actualizar el registro pero falta establecer la condicion WHERE, en donde no se definir la varible a utilizar, ya que quiero usar el dato de la varibale "no_control" del formulario Index.jsp

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= "variable input text");

}

protected void finalize() {
try {
instruccion.close();
conexion.close();
}
catch (SQLException exceptionSQL) {
exceptionSQL.printStackTrace();
}
}

}