Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2010, 17:08
Avatar de cesmichael
cesmichael
 
Fecha de Ingreso: julio-2008
Mensajes: 207
Antigüedad: 15 años, 9 meses
Puntos: 0
recuperar datos de un servlet???

ver´na soy un novato en JSP y estoy haciendo mis primeras apicaciones con ejemplos sumamente sencillos.

bueno he reado el siguiente formulario para practicr el envío de datos y luego el regreso de los mismos a traves de un servlet

bueno este es el formulario que arme (es muy simplon por cierto)



como podran notar en la partede formulario yo escribo los datos y luego los envío hacinedo clic en enviar.

Luego de eso para recibir los datos me voy a la secion de datos. Supuestamente ahi al apretar el boton enviar los datos deben ser escritos en cada caja de texto

bueno este es el codijo de dicho formulario. Es una pagina jsp

Código HTML:
Ver original
  1.         <h1>Prueba</h1>
  2.         <form action="Enlace" method="POST">
  3.         <table border="1" cellspacing="0" cellpadding="0">
  4.             <thead>
  5.                 <tr>
  6.                     <th colspan="2" align="center">Formulario</th>
  7.                 </tr>
  8.             </thead>
  9.             <tbody>
  10.                 <tr>
  11.                     <td>Nombre</td>
  12.                     <td width="60"><input type="text" name="nombre" value="" /></td>
  13.                 </tr>
  14.                 <tr>
  15.                     <td>Apellido</td>
  16.                     <td width="60"><input type="text" name="apellido" value="" /></td>
  17.                 </tr>
  18.                 <tr>
  19.                     <td>Edad</td>
  20.                     <td width="60"><input type="text" name="edad" value="" /></td>
  21.                 </tr>
  22.                 <tr>
  23.                     <td colspan="2"><input type="submit" value="Enviar" /></td>
  24.                 </tr>
  25.             </tbody>
  26.         </table>
  27.         </form>
  28.         <form action="Enlace" method="GET">
  29.             <table border="1">
  30.                 <thead>
  31.                     <tr>
  32.                         <th colspan="2">Datos</th>
  33.  
  34.                     </tr>
  35.                 </thead>
  36.                 <tbody>
  37.                     <tr>
  38.                         <th>Nombre</th>
  39.                         <th><input type="text" name="nombre_get" value=""  /></th>
  40.                     </tr>
  41.                     <tr>
  42.                         <td>Apellidos</td>
  43.                         <td><input type="text" name="apellido_get" value=""  /></td>
  44.                     </tr>
  45.                     <tr>
  46.                         <td>Edad</td>
  47.                         <td><input type="text" name="edad_get" value="" /></td>
  48.                     </tr>
  49.                     <tr>
  50.                         <td colspan="2"><input type="submit" value="enviar" /></td>
  51.                     </tr>
  52.                 </tbody>
  53.             </table>
  54.  
  55.         </form>
  56.     </body>

Bueno como podrán notar los datos son enviados al servlet Enlace.

este es el codigo de dicho servlet

Código PHP:
Ver original
  1. public class Enlace extends HttpServlet {
  2.     private Persona obj_pers=new Persona();
  3.     /**
  4.      * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
  5.      * @param request servlet request
  6.      * @param response servlet response
  7.      * @throws ServletException if a servlet-specific error occurs
  8.      * @throws IOException if an I/O error occurs
  9.      */
  10.     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  11.     throws ServletException, IOException {
  12.         response.setContentType("text/html;charset=UTF-8");
  13.         PrintWriter out = response.getWriter();
  14.         try {
  15.             //TODO output your page here
  16.             /*out.println("<html>");
  17.             out.println("<head>");
  18.             out.println("<title>Servlet Enlace</title>");  
  19.             out.println("</head>");
  20.             out.println("<body>");
  21.             out.println("<h1>Servlet Enlace at " + request.getContextPath () + "</h1>");
  22.             out.println("</body>");
  23.             out.println("</html>");*/
  24.             request.getRequestDispatcher("index.jsp").forward(request, response);
  25.         } finally {
  26.             out.close();
  27.         }
  28.     }
  29.  
  30.     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
  31.     /**
  32.      * Handles the HTTP <code>GET</code> method.
  33.      * @param request servlet request
  34.      * @param response servlet response
  35.      * @throws ServletException if a servlet-specific error occurs
  36.      * @throws IOException if an I/O error occurs
  37.      */
  38.     @Override
  39.     protected void doGet(HttpServletRequest request, HttpServletResponse response)
  40.     throws ServletException, IOException {
  41.         processRequest(request, response);
  42.        
  43.         request.setAttribute("nombre_get", obj_pers.getNombre());
  44.         request.setAttribute("apellido_get", obj_pers.getApellido());
  45.         request.setAttribute("edad_get", obj_pers.getEdad());
  46.     }
  47.  
  48.     /**
  49.      * Handles the HTTP <code>POST</code> method.
  50.      * @param request servlet request
  51.      * @param response servlet response
  52.      * @throws ServletException if a servlet-specific error occurs
  53.      * @throws IOException if an I/O error occurs
  54.      */
  55.     @Override
  56.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  57.     throws ServletException, IOException {
  58.         processRequest(request, response);
  59.        
  60.        obj_pers.setNombre((String) request.getParameter("nombre"));
  61.        obj_pers.setApellido((String) request.getParameter("apellido"));
  62.        obj_pers.setEdad(Integer.valueOf((request.getParameter("edad")).toString()));
  63.     }


Bueno esto es mi lógica. Primeramente lo que tuve que idear fue que al enviar los datos del formulario, me reenviara al mismo jsp. Para eso puse este codigo

Código PHP:
request.getRequestDispatcher("index.jsp").forward(requestresponse); 
Ahora para atrapar los datos que recibo del formulario he creado un objeto persona donde alamaceno dichos valoresdel formulario

El almacenamiento lo hago en el metodo doPost del servlet

Código PHP:
obj_pers.setNombre((String) request.getParameter("nombre"));
obj_pers.setApellido((String) request.getParameter("apellido"));
obj_pers.setEdad(Integer.valueOf((request.getParameter("edad")).toString())); 
Ahora para enviar los datos del objeto persona desde el servlet al jsp he utilizado el método doGet del servlet

Código PHP:
request.setAttribute("nombre_get"obj_pers.getNombre());
request.setAttribute("apellido_get"obj_pers.getApellido());
request.setAttribute("edad_get"obj_pers.getEdad()); 
Bueno he comprobado que los datos se guardan en el objeto, pero el problema es al momento de enviarlos. Al parecer no estoy utilizando el método adecuado para enviar los datos del servlet al jsp.

alguien me puede decir cual sería el método adecuado. Busque si habi un setParameter pero solo encontre un setAttribute

Bueno espero su ayuda