Uso javabeans, Servets y JSP

Iniciado por charmedever, 4 Febrero 2014, 07:17 AM

0 Miembros y 1 Visitante están viendo este tema.

charmedever

Hola buenas noches amigos quisiera que me ayudaran con un problema sucede que deseo guardar los datos en una base de datos que son pasados desde un formulario jsp, pero antes de ser guardados estos datos son pasados a otro jsp por medio de una sesion (usando la etiqueta <jsp:useBean), posteriormente esos datos, seran enviados a un servlet el cual se encargara de guardarlos en la base datos.

Espero que me haya dado a entender
Adjunto el codigo, espero sus comentarios y sugerencias



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>






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>









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="../GuardarPersona">Guardar BD</a>
       
    </body>
</html>








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");
        }
    }






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");
        }
       
       
    }


adastra

 Cual es la pregunta? te falla algo?

charmedever

Hola! Si no logro guardar los datos en la BD  =(

adastra

 aja.... alguna traza de error?