Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2013, 16:51
serenimusmoriarty
 
Fecha de Ingreso: octubre-2012
Mensajes: 24
Antigüedad: 11 años, 6 meses
Puntos: 0
paso de String (tlf) entre dos servlets

Saludos a la comunidad,

espero que me puedan ayudar,
Estoy tratando de pasar un dato String de servlets a servlet , les muestro el proceso
lo más ordenado posible

Empieza la aplicacion en el Index.jsp:

Código java:
Ver original
  1. <html>
  2.     <head>
  3.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4.         <title>JSP Page</title>
  5.     </head>
  6.     <body>
  7.         <h1 align="center">***PIZZERIA***</h1>
  8.         <br>      
  9.         <form action="/PizzasHoja2/verT" method="POST" style="text-align:center">
  10.             <br>
  11.             introduce el telefono<input type="text" name="telefono"></input>
  12.             <br></br>
  13.             <p align="center"><input type="submit" value="Enviar"></input></p>
  14.            
  15.         </form>
  16.     </body>
  17. </html>

En verT recojo la variable con request.getParameter("telefono")
y conecto a la BD para ver si el telefono está o no. Si no lo encuentra doy mensaje,si lo encuentra redirijo al Servlet Confirmacion

esto lo hago, con :

request.getRequestDispatcher("Confirmacion").forwa rd(request, response);
y funciona, pero además quiero volver a pasar el telefono,porque lo necesito para
hacer otra consulta a la BD,

Código Java:
Ver original
  1. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3.         response.setContentType("text/html;charset=UTF-8");
  4.         PrintWriter out = response.getWriter();
  5.        
  6.         try {
  7.             bbdd mibase=new bbdd("jdbc:odbc:bdpizza","sun.jdbc.odbc.JdbcOdbcDriver");
  8.             String tlf=request.getParameter("telefono");            
  9.             mibase.abrir();
  10.             int res=BDuser.buscarTelefono(tlf, mibase);
  11.             mibase.cerrar();          
  12.            if(res<1){
  13.            out.println("no esta");              
  14.                
  15.            }
  16.            else
  17.            {
  18.          
  19.                request.getRequestDispatcher("Confirmacion").forward(request, response);
  20.                request.setAttribute("tlf", tlf);
  21.              
  22.            }
  23.            
  24.            
  25.         } finally {            
  26.             out.close();
  27.         }
  28.     }

El navegador me redirije a Confirmacion.java, pero cuando imprimo la variable para ver si efectivamente la ha pasado, me sale como null:

Código Java:
Ver original
  1. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3.         response.setContentType("text/html;charset=UTF-8");
  4.         PrintWriter out = response.getWriter();
  5.         try {
  6.              
  7.             String tlf="";
  8.             tlf=(String)request.getAttribute("tlf");          
  9.             out.println("su telefono es : "+tlf);
  10.            
  11.                        
  12.         } finally {            
  13.             out.close();
  14.         }
  15.     }

No lo entiando, porque he depurado y en los puntos de interrupción puedo ver que la variable está,

Espero que la explicación este clara, porque es la primera vez que uso "highligt"
Gracias por anticipado.