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

Redirigir desde un jsp a otro jsp pasando parametros...

Estas en el tema de Redirigir desde un jsp a otro jsp pasando parametros... en el foro de Java en Foros del Web. Buenas, Ya se que no es la practica ideal, pero bueno... como se haria una redireccion desde el codigo de un JSP a otro JSP ...
  #1 (permalink)  
Antiguo 19/06/2006, 04:28
 
Fecha de Ingreso: octubre-2005
Mensajes: 53
Antigüedad: 18 años, 6 meses
Puntos: 1
Redirigir desde un jsp a otro jsp pasando parametros...

Buenas,

Ya se que no es la practica ideal, pero bueno...

como se haria una redireccion desde el codigo de un JSP a otro JSP pero.. pasando ciertos parametros.

lo he intentado hacer asi pero no funciona

Código:
String param = "parametro enviado";
request.setAttribute("param",param);
this.getServletConfig().getServletContext().getRequestDispatcher("resultado.jsp").forward(request, response);
PD: no vale pasarlos en la url..

saludos.
  #2 (permalink)  
Antiguo 19/06/2006, 06:14
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
No puedes añadir parametros, solo puedes añadir atributos.

Y en la pagina que los recibe, solo puedes leerlos como atributos.

Eso o hacer una rediccion externa, creando un formulario de tipo POST y haciendo un auto-submit por JavaScript.

S!
  #3 (permalink)  
Antiguo 19/06/2006, 09:09
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Cita:
Iniciado por vic4ever
Buenas,

Ya se que no es la practica ideal, pero bueno...

como se haria una redireccion desde el codigo de un JSP a otro JSP pero.. pasando ciertos parametros.

lo he intentado hacer asi pero no funciona

Código:
String param = "parametro enviado";
request.setAttribute("param",param);
this.getServletConfig().getServletContext().getRequestDispatcher("resultado.jsp").forward(request, response);
PD: no vale pasarlos en la url..

saludos.
mira, asi como tienes tu codigo si te debe funcionar, perooooo eso solo funciona cuando las paginas estan compartiendo el mismo request, yo hago algo parecido a eso, por no decir igual pero para redireccionar de un servlet a un JSP, en el servlet manejo mis objetos DAO y decido a que JSP mandarle la informacion, para eso, meto en el request los atributos que quiero pasarle...

checa como lo hago
Código PHP:
protected void forward(String url){
        
RequestDispatcher fwd request.getRequestDispatcher(url);
        try{
            
fwd.forward(request,response);
        }catch(
Exception se){
            
System.out.println("Action.forward: error en el redireccionamiento "+se);
        }
    } 
have funnnnn
  #4 (permalink)  
Antiguo 20/06/2006, 02:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 53
Antigüedad: 18 años, 6 meses
Puntos: 1
me imagino que sera por eso que dices que no comparten el mismo request..

yo pensaba que en el forward le pasabas el request a la nueva pagina..

seguire investigando, gracias.

un saludo.
  #5 (permalink)  
Antiguo 20/06/2006, 06:00
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Cuando haces un forward, le pasas a la siguiente pagina el mismo request.
  #6 (permalink)  
Antiguo 20/06/2006, 14:00
 
Fecha de Ingreso: noviembre-2005
Mensajes: 172
Antigüedad: 18 años, 5 meses
Puntos: 1
Yo lo que he comprobado es que el forward lo que hace es sustituir literalmente el contenido de la pagina actual por el que pone en el forward.
  #7 (permalink)  
Antiguo 21/06/2006, 01:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Efectivamente, cuando haces un "forward" le estas pasando el control a la siguiente página, y tu de hecho no puedes haber empezado a escribir nada, ya que si no te da un error.
  #8 (permalink)  
Antiguo 21/06/2006, 01:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Mensaje repetido

Última edición por GreenEyed; 21/06/2006 a las 13:58
  #9 (permalink)  
Antiguo 21/06/2006, 03:01
 
Fecha de Ingreso: noviembre-2005
Mensajes: 172
Antigüedad: 18 años, 5 meses
Puntos: 1
¿No os parece un timo la funcion FORWARD? lo ideal, lo que yo esperaria de esa funcion es que mande la peticion a la pagina de destino con todas las consecuencias, pero no, si tu haces un forward dentro de la pagina: "pp/uno/uno.jsp" a "pp/dos/dos.jsp" lo que hace es seguir en uno.jsp pero sustituyendo el contenido de uno por el de dos.jsp y si en dos.jsp tienes funciones y cosas que dependen del contexto, ya se jode la marrana.

¿que pensais vosotros?
  #10 (permalink)  
Antiguo 21/06/2006, 14:02
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
No es un timo, es como debe funcionar por que asi es como está hecha con motivo. Un forward redirecciona una peticion de un servlet a otro, sin que el cliente(navegador) se entere, ni le cambia la URL ni tiene que hacer otra petición, y a la página siguiente del forward se le pasa el mismo request que tiene la original, a la que se pueden añadir atributos para "comunicarse" entre las dos paginas.

Quizá no la estas usando para lo que toca, y por eso no te cuadra, pero está bien como está .
  #11 (permalink)  
Antiguo 21/06/2006, 15:27
 
Fecha de Ingreso: noviembre-2005
Mensajes: 172
Antigüedad: 18 años, 5 meses
Puntos: 1
Ok. perfectamente explicado greeneyed, ya me quedo mas tranquilo :)
  #12 (permalink)  
Antiguo 26/06/2006, 02:31
 
Fecha de Ingreso: octubre-2005
Mensajes: 53
Antigüedad: 18 años, 6 meses
Puntos: 1
A mi tambien me ha liado bastante esa funcion de forward...

de momento uso mas el response.sendRedirect(), y paso los datos en session, pero claro si quiero pasar algo en la request solo lo podre hacer mediante forward..

por cierto. no hay ninguna manera posible de llamar a un jsp y pasarle parametros POST.. solo se puede pasar atributos?? la opción del javascript y la redireccion esta bien, pero.. y si no se puede usar javascript??

un saludo.
  #13 (permalink)  
Antiguo 26/06/2006, 03:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Mensaje

Cita:
Iniciado por vic4ever
por cierto. no hay ninguna manera posible de llamar a un jsp y pasarle parametros POST.. solo se puede pasar atributos?? la opción del javascript y la redireccion esta bien, pero.. y si no se puede usar javascript??
No. En un forward no puedes añadir parámetros, ni GET ni POST, y en un sendRedirect solo puedes usar una URL (en realidad lo que hace es enviar una cabecera HTTP para que el navegador llame automaticamente a otro página), así que básicamente no. A no ser que lo hagas tu estilo JavaScript en el cliente o haciendo tu la llamada a pelo en tu servlet en el servidor y devolviendo la respuesta.
  #14 (permalink)  
Antiguo 27/06/2006, 02:52
 
Fecha de Ingreso: octubre-2005
Mensajes: 53
Antigüedad: 18 años, 6 meses
Puntos: 1
Buenas,

investigando un poco lo he intentado hacer utilizandola clase HttpUrlConnection (creo que te referias a esto no?)

y funciona a medias.. porque puedo pasar a la pagina los parametros pero no puedo hacer que se ejecute por su cuenta sino que tengo que leer su respuesta y presentarla desde mi servlet...

como lo ves? es imposible que se ejecute por su cuenta sin que tenga que mostrar yo la informacion?

saludos.
  #15 (permalink)  
Antiguo 27/06/2006, 04:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Eso mismo queria decir. No, no puedes hacer que se ejecute por su cuenta y se muestre sin decirle al navegador que la llame o haciendole un forward. Si la quieres llamar por POST desde tu propio servlet, entonces has de hacerte cargo de mostrar el resultado.

Es lo que hay .
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 23:36.