Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/11/2010, 12:38
Dr0gNan
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Pasar valores del request de una pagina JSP a una clase/servlet Java

Buenas, soy nuevo con JSP y tengo nociones basicas de Java y voy aprendiendo poco a poco.

Estoy intentando pasar los parametros del REQUEST (en este caso los valores de las cajas de texto) a un metodo de la clase Java que los recibe y los procesa. Accede a la clase correctamente pero al hacer GETPARAMETER da nulo.

Al principio la clase era un servlet pero tampoco me funcionaba. Tambien he probado con un POST desde el formulario JSP pero creo que lo correcto es un evento en el boton que llame al metodo de la clase.

Pongo el codigo, gracias por echarle un vistazo, fijo que es una tonteria el porque no me funciona.

ARCHIVO JSP

Código PHP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    
pageEncoding="ISO-8859-1"%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@
page import="paquete.NuevoP"%>
<%@
page import="paquete.NuevoPe"%>
<
html>
    <
head>
        <
meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <
title>Insert title here</title>
    </
head>
    <
body>
        <
form>
            <
label for="lblNombre">Nombre: </label><input
            name
="NOMBRE" type="text" class="form" id="NOMBRE" size="25" /><br />
            <
label for="lblEdad">Edad: </label><input name="EDAD" type="text"
            
class="form" id="EDAD" size="25" /><br />
            <
label for="lblEstatura">Estatura: </label><input name="ESTATURA"
            
type="text" class="form" id="ESTATURA" size="25" /> <br>
            
            <
br>
            <
input type="submit" name=GRABAR value="Insertar" onClick=<%NuevoPe.Nuevo(request);%>>
        </
form>
    </
body>
</
html

CLASE JAVA

Código PHP:
package paquete;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;

public class 
NuevoPe {

    public 
NuevoPe()
    {

    }

    public static 
void Nuevo(HttpServletRequest request)
    {
        if(
request.getParameter("GRABAR") != null)
        {
            
// objetos de enlace
            
Connection canal null;
            
Statement instruccion=null;
            
String strcon "jdbc:mysql://localhost/mibase?user=root&password=root";

            
// abriendo canal o enlace en su propio try-catch
            
try {
                Class.
forName("com.mysql.jdbc.Driver").newInstance();
                
canal=DriverManager.getConnection(strcon);
                
instruccion canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                        
ResultSet.CONCUR_UPDATABLE);
                
            } catch(
java.lang.ClassNotFoundException e){} catch(SQLException e) {} catch (InstantiationException e) {
                
// TODO Auto-generated catch block
                
e.printStackTrace();
            } catch (
IllegalAccessException e) {
                
// TODO Auto-generated catch block
                
e.printStackTrace();
            };

            
//cargando los campos a grabar
            // excepto clave porque en mysql es de tipo auto-increment

            
String nombre request.getParameter("NOMBRE");
            
int edad Integer.parseInt(request.getParameter("EDAD"));
            
float estatura =Float.parseFloat(request.getParameter("ESTATURA"));

            
// insert into tabla(nombre,edad,estatura) values('juan', 15, 1.88);

            
String q="insert into mitabla(nombre,edad,estatura) values(\"" +nombre+"\","+edad+","+estatura+"); ";

            try {

                
// agregando renglon (insert)
                
int n=instruccion.executeUpdate(q);

                
//avisando que se hizo la instruccion
                
System.out.println("REGISTRO INSERTADO");

            } catch(
SQLException e) {System.out.println(e);};

            try{
                
                
instruccion.close();
                
canal.close();
                
            } catch(
SQLException e) {System.out.println(e);};
        }
    }

Tambien queria preguntaros si merece la pena que los metodos de la clase comentada arriba esten en un servlet o mejor en una clase.

Muchas gracias por la ayuda, un saludo.