| ||||
http://club.idecnet.com/~ccastano/femepa/120106.htm http://club.idecnet.com/~ccastano/femepa/130106.htm |
| ||||
ok gracias muchas gracias dogduck los probare, mira si no es mucho pedir tengo otro problema ademas de subri la informacion a un archivo debo guardar unos datos de esta en la base de datos (su ubicacion "link" y el nombre del archivo) estos ya los tomo de un formulario que e creado, como hago que el servlet me guarde estos datos??? |
| ||||
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() } |
| ||||
Gracias esta muy bueno ese ejemplo pero creo que no me explique bien perdon, lo que quiero es ya tengo un formulario donde meto unos datos y escojo el archivo a subir luego cuando preciono el boton este lo envia al servlet pero ya aqui no me funciona pro que como la informacion de los campos texto bienen junta con los multipart del archivo no puedo guardar el archivo ni la informacion, te agradesco lo que me has pasado todo me ha funcionado pero esto ultimo es lo que me falta y no le hayo lado |