Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/11/2006, 11:32
Avatar de dogduck
dogduck
 
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Deberás sobreescribir el método doPost() de el servlet para que al recibir la información de el formulario, conecte con una bbdd y ejecute una sentencia sql de actualización de una/s tabla/s
por ejemplo: http://club.idecnet.com/~ccastano/femepa/141205.htm
Código:
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class ServletJDBC extends HttpServlet {
   // Declaración de variables miembro correspondientes a
   // los campos del formulario
    private String nombre=null;
    private String apellidos=null;
    private String opinion=null;
    private String comentarios=null;
    public Connection con = null;
    
// Este método se ejecuta una única vez (al ser inicializado el servlet)
// Se suelen inicializar variables y realizar operaciones costosas en
// tiempo de ejecución (abrir ficheros, bases de datos, etc)
    public void init(ServletConfig config) throws ServletException {

        super.init(config);
        System.out.println("Iniciando ServletJDBC...");
        //Definimos donde está la BBDD
        String url = "jdbc:mysql://localhost/opinion";
       
        //cargamos el driver
        try{
            Class.forName("com.mysql.jdbc.Driver");
        }catch(Exception e){}
        //Establecemos la conexion
        try{
            con = DriverManager.getConnection(url,"root","mysql");
        }catch(SQLException ex){}

    } // fin del método init()
// Este método es llamado por el servidor web al "apagarse" (al hacer
// shutdown). Sirve para proporcionar una correcta desconexión de una
// base de datos, cerrar ficheros abiertos, etc.
    public void destroy() {
        System.out.println("No hay nada que hacer...");
        //cerramos la BBDD
        try{
            
            con.close();
        }
        catch(SQLException ex){}
    }// fin del método destroy()
    
// Método llamado mediante un HTTP POST. Este método se llama
// automáticamente al ejecutar un formulario HTML
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
        
        nombre=req.getParameter("nombre");
        apellidos=req.getParameter("apellidos");
        opinion=req.getParameter("opinion");
        comentarios=req.getParameter("comentarios");
        //Escribimos el registro en la BBDD
        Statement stmt=null;
        String createString = "insert into opiniones values ("+"'"+nombre+"'"+","+"'"+apellidos+"'"+","+
                              "'"+opinion+"'"+","+"'"+comentarios+"')";
        try{
       //Creamos el ststement
            stmt = con.createStatement();
            //Ejecuta una actualización: crear tablas , insertar , delete ,...
            stmt.executeUpdate(createString);
            stmt.close();
            
            // stmt.executeQuery() : consultas (select)
        } catch(SQLException ex) {
            System.err.println("SQLException: " + ex.getMessage());
        }


        
        devolverPaginaHTML(resp);
    } // fin del método doPost()
    
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
// A
        resp.setContentType("text/html");
         PrintWriter out = null;
        try {
            out=resp.getWriter();
        } catch (IOException io) {
            System.out.println("Se ha producido una excepcion");
        }
         out.println("<html>");
        out.println("<head>");
        out.println("<title>Envíe su opinión</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<H2>Por favor, envíenos su opinión acerca de este sitio web</H2>");
        out.println("<FORM  METHOD='POST' style='background-color: #800080'>"+
                    "<font color='#FFFFFF'>Nombre: <INPUT TYPE='TEXT' NAME='nombre' SIZE=15><BR>"+
                    "Apellidos: <INPUT TYPE='TEXT' NAME='apellidos' SIZE=30></font><P>"+
                    "<font color='#FFFFFF'>Opinión que le ha merecido este sitio web<BR>"+
                    "<INPUT TYPE='RADIO' CHECKED NAME='opinion' VALUE='Buena'>Buena<BR>"+
                    "<INPUT TYPE='RADIO' NAME='opinion' VALUE='Regular'>Regular<BR>"+
                    "<INPUT TYPE='RADIO' NAME='opinion' VALUE='Mala'>Mala</font><P>"+
                    "<font color='#FFFFFF'>Comentarios <BR>"+
                    "<TEXTAREA NAME='comentarios' ROWS=6 COLS=40>"+
                    "</TEXTAREA></font><P>"+
                    "<font color='#FFFFFF'>"+
                    "<INPUT TYPE='SUBMIT' NAME='botonEnviar' VALUE='Enviar'>"+
                    "<INPUT TYPE='RESET' NAME='botonLimpiar' VALUE='Limpiar'> </font>"+
                    "</FORM>"+
                    "</BODY>"+
                    "</HTML>"
                    );
       
// Se fuerza la descarga del buffer y se cierra el PrintWriter,
// liberando recursos de esta forma. IMPORTANTE
        out.flush();
        out.close();
        
        devolverPaginaHTML(resp);
    } // fin del método doPost()
    public void devolverPaginaHTML(HttpServletResponse resp) {
// En primer lugar se establece el tipo de contenido MIME de la respuesta
        resp.setContentType("text/html");

// Se obtiene un PrintWriter donde escribir (sólo para mandar texto)
        PrintWriter out = null;
        try {
            out=resp.getWriter();
        } catch (IOException io) {
            System.out.println("Se ha producido una excepcion");
        }
// Se genera el contenido de la página HTML
        
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Valores recogidos en el formulario</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<b><font size=+2>Valores recogidos del ");
        out.println("formulario: </font></b>");
        out.println("<p><font size=+1><b>Nombre: </b>"+nombre+"</font>");
        out.println("<br><fontsize=+1><b>Apellido: </b>"
                +apellidos+"</font><b><font size=+1></font></b>");
        out.println("<p><font size=+1> <b>Opini&oacute;n: </b><i>" + opinion +
                "</i></font>");
        out.println("<br><font size=+1><b>Comentarios: </b>" + comentarios.toUpperCase()
                +"</font>");
        out.println("<br><b>Registro insertado en la BBDD MySQL:opinion</b>");
        
        out.println("</body>");
        out.println("</html>");
// Se fuerza la descarga del buffer y se cierra el PrintWriter,
// liberando recursos de esta forma. IMPORTANTE
        out.flush();
        out.close();
    } // fin de devolverPaginaHTML()
// Función que permite al servidor web obtener una pequeña descripción del
// servlet, qué cometido tiene, nombre del autor, comentarios
// adicionales, etc.
    public String getServletInfo() {
        return "Este servlet lee los datos de un formulario" +
                " y los muestra en pantalla";
    } // fin del método getServletInfo()
}