29/11/2006, 11:32
|
| | | Fecha de Ingreso: enero-2006 Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 19 años 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ó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()
}
|