Foros del Web » Programación para mayores de 30 ;) » Java »

recuperar datos de un servlet???

Estas en el tema de recuperar datos de un servlet??? en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/04/2010, 17:08
Avatar de cesmichael  
Fecha de Ingreso: julio-2008
Mensajes: 207
Antigüedad: 16 años, 4 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
  #2 (permalink)  
Antiguo 07/05/2010, 00:13
 
Fecha de Ingreso: marzo-2010
Mensajes: 62
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: recuperar datos de un servlet???

Hola pues creo que es obvio, todo tu servlet esta bien incluso el como lo mandas los atributos, pero el problema es que no veo en tu jsp donde estas recibiendo los valores que te mandas??.

Primero los envias esta bien eso pero te falta recogerlos los recoges asi:

String nombre_devuelto=(String) request.getAttribute("nombre_get");

nota que aqui ya el metodo es getAttribute y no setAttribute nombre_get debe ser el mismo con el que lo enviaste sino te saldra null; y ya que lo tienes solo te falta asignarlo a tu campo asi:

<th><input type="text" name="nombre_get" value="<%=nombre_devuelto%>" /></th>

con eso te deberia funcionar.

Saluditos.
  #3 (permalink)  
Antiguo 08/05/2010, 00:59
Avatar de cesmichael  
Fecha de Ingreso: julio-2008
Mensajes: 207
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: recuperar datos de un servlet???

sigue sin salirme

Por cierto cuando yo hago esto

Código PHP:
request.setAttribute("nombre_get"obj_pers.getNombre());
request.setAttribute("apellido_get"obj_pers.getApellido());
request.setAttribute("edad_get"obj_pers.getEdad()); 
Pensaba que ya automaticamente ponia los valore en mis cajas de texto como esto

<input type="text" name="nombre_get" value="" >

Es decir sin necesidad de ponerlo en el atributo value
  #4 (permalink)  
Antiguo 08/05/2010, 17:41
 
Fecha de Ingreso: marzo-2010
Mensajes: 62
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: recuperar datos de un servlet???

Hola pero pues que es lo que te marca de error o que??
Y no el setAttribute no te asigna los valores lo que haces es mandarlos a tu otra pagina para que esta los recoja y hagas lo que quieras con ellos.

Mira segun yo en tu primera llamada al servlet (post) obtienes los valores y los guardas en tu objeto ok eso esta bien, ahora en tu segunda llamada (get) en el servlet tienes que enviarle los valores al jsp asi

request.setAttribute("valor_recogido_del_campo_nom bre", obj_pers.getNombre()); // esto es antes de que redirecciones.

Y ya en tu jsp solo te falta recibirlo con el id que lo enviaste que es 'valor_recogido_del_campo' y volverlo String para asignar el value a tu textfield

<% String valor = (String) request.getAttribute("valor_recogido_del_campo_nom bre"); %>

y ya que lo tienes lo asignas

<input type=text value="<%=valor%>" name="usuario">

Intentalo.

Saluditos.
  #5 (permalink)  
Antiguo 10/05/2010, 05:01
 
Fecha de Ingreso: febrero-2010
Mensajes: 128
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: recuperar datos de un servlet???

A ver, vamos a aclarar conceptos

Un Servlet y un JSP no estan automaticamente conexos solo por el hecho de que uno le mande datos al otro. No puedes acceder desde un servlet a un jsp intentando instanciar objetos del jsp como si se tratase de Javascript o ASP.Net

Todo es secuencial:

JSP hace una llamada a un Servlet.

El Servlet procesa la petición (request) y genera una respuesta(response) .

y para mandar lo que quieras a un JSP que muestre el resultado la manera más sencilla es mandar los datos en la URL o dejarlos en la sesión.

Y entonces el nuevo JSP procesa la petición del Servlet(nuevamente el objeto request).

Espero haberte aclarado un poco.

Saludos

Etiquetas: recuperar, servlet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:53.