Mi problema es que no logro guardar los datos en la BD =(
Espero que me haya dado a entender
Adjunto el codigo, espero sus comentarios y sugerencias
Código:
Formulario Datos <form method="post" action="guardarPersona.jsp"> <table> <tr> <td>Nombre</td> <td> <input type="text" name="nombre"/> </td> </tr> <tr> <td>Apellidos</td> <td> <input type="text" name="apellidos"/> </td> </tr> <tr> <td>Email</td> <td> <input type="text" name="email"/> </td> </tr> <tr> <td>Password</td> <td> <input type="password" name="password"/> </td> </tr> <tr> <td colspan="2"> <input type="submit" name="enviar" value="Enviar"/> </td> </tr> </table> </form>
Código:
guardarPersona.jsp <body> <h1>Guardar Persona</h1> //hacemos uso del javabean <jsp:useBean class="beans.Persona" id="p" scope="session"/> //llenamos el javabean <jsp:setProperty name="p" property="*"/> //enviamos los datos a confirmar.jsp <% response.sendRedirect("confirmar.jsp"); %> </body>
Código:
confirmar.jsp <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Confirmar datos</title> </head> <body> <h1>Se guardará la siguiente informacion</h1> <jsp:useBean class="beans.Persona" id="p" scope="session"/> Nombre: <%= p.getNombre()%> <br/> Apellidos: <%= p.getApellidos()%><br/> Email: <%= p.getEmail()%><br/> Password: <%= p.getPassword()%><br/> <a href="http://www.forosdelweb.com/f45/GuardarPersona">Guardar BD</a> </body> </html>
Código:
Servlet GuardarPersona.java public class GuardarPersona extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { //Obtenemos la session del cliente HttpSession s = request.getSession(); Persona p = (Persona) s.getAttribute("p"); DtoPersona dto = new DtoPersona(p); //creamos la persona en la base datos dto.create(); /* TODO output your page here. You may use following sample code. */ out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Guardar Persona DB</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Se ha creado una Persona correctamente en DB</h1>"); out.println("</body>"); out.println("</html>"); } catch(Exception e) { System.out.println("Error al crear una persona"); } }
Código:
DtoPersona.java (Clase encargada de guardar los javaBean en la BD) package dao; import beans.Persona; import conexion.ConexionDB; import java.sql.*; /** * * @author Equipo06 */ public class DtoPersona implements Dao { Persona p; ConexionDB conexion = new ConexionDB(); public DtoPersona (Persona p) { this.p=p; } public void create () { try { String sql = "INSERT INTO PERSONA VALUES (?,?,?,?)"; PreparedStatement pstm = conexion.getConexion().prepareStatement(sql); pstm.setString(1, p.getNombre()); pstm.setString(2, p.getApellidos()); pstm.setString(3, p.getEmail()); pstm.setString(4, p.getPassword()); pstm.executeQuery(); pstm.close(); conexion.desconectar(); } catch(SQLException e) { System.out.println("Error al guardar en la base datos"); } }