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

[SOLUCIONADO] Actualizar JSP luego de un submit por servlet

Estas en el tema de Actualizar JSP luego de un submit por servlet en el foro de Java en Foros del Web. Hola a todos, esperando que esten muy bien les traigo la siguiente duda, resulta que necesito actualizar un JSP luego de eliminar la fila de ...
  #1 (permalink)  
Antiguo 15/04/2015, 07:58
Avatar de oshho  
Fecha de Ingreso: marzo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 0
Pregunta Actualizar JSP luego de un submit por servlet

Hola a todos, esperando que esten muy bien les traigo la siguiente duda, resulta que necesito actualizar un JSP luego de eliminar la fila de una tabla, pero al momento de clickear el botón para eliminarla, esta se elimina y me lanza a una pagina en blanco con la url del Servlet, cuando lo que necesito es que al eliminar la fila me muestre nuevamente la tabla sin la fila que acabo de eliminar, actualmente asi se ve.


Código:
http://i.imgur.com/xVqCOj1.png
Espero que se haya entendido n-n gracias de antemano.
  #2 (permalink)  
Antiguo 15/04/2015, 09:00
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Actualizar JSP luego de un submit por servlet

Buenas,

Entiendo tu problema, pero sin codigo... me temo que solo el puede ayudarte:



Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 15/04/2015, 09:08
Avatar de oshho  
Fecha de Ingreso: marzo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 0
Respuesta: Actualizar JSP luego de un submit por servlet

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Entiendo tu problema, pero sin codigo... me temo que solo el puede ayudarte:



Un saludo
Hahaha, bueno no sabía que era necesario el codigo, ya que siento que es como preguntar como crear una variable, el codigo que tengo en el servlet es el siguiente.


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.         try (PrintWriter out = response.getWriter()) {
  5.             /* TODO output your page here. You may use following sample code. */
  6.             dao.eliminarSeleccion(Integer.parseInt(request.getParameter("txtValEpoch")));
  7.             request.getRequestDispatcher("/ResultadosI.jsp").forward(request, response);
  8.         }catch (Exception ex){
  9.             out.println("Error: "+ex.getMessage());
  10.         }
  11.     }

Por ejemplo, cuando realizo la busqueda me lleva al JSP de resultados, pero en la url me aparece el nombre del servlet el cual es "Busqueda"

Última edición por oshho; 15/04/2015 a las 09:17
  #4 (permalink)  
Antiguo 15/04/2015, 12:48
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Actualizar JSP luego de un submit por servlet

Buenas,

El servlet que tienes no tiene mucho sentido. Abres un printwriter pero después haces un dispatcher a una JSP. O haces una cosa o haces la otra.

Por otro lado, la URL no tiene que cambiar, ya que haces un forward, por lo que lo unico que haces es enviar un contenido al navegador, lo cual es muy correcto. Para que cambie la url tendrias que hacer un redirect.

En mi opinion tu problema es que el servlet sale por la excepcion. No haces ningún tipo de validacion de los parámetros por lo que puede fallar y lanzar un nullpointer al convertir a int, por ejemplo. Has depurado para ver lo que está pasando?


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 16/04/2015, 10:56
Avatar de oshho  
Fecha de Ingreso: marzo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 0
Respuesta: Actualizar JSP luego de un submit por servlet

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

El servlet que tienes no tiene mucho sentido. Abres un printwriter pero después haces un dispatcher a una JSP. O haces una cosa o haces la otra.

Por otro lado, la URL no tiene que cambiar, ya que haces un forward, por lo que lo unico que haces es enviar un contenido al navegador, lo cual es muy correcto. Para que cambie la url tendrias que hacer un redirect.

En mi opinion tu problema es que el servlet sale por la excepcion. No haces ningún tipo de validacion de los parámetros por lo que puede fallar y lanzar un nullpointer al convertir a int, por ejemplo. Has depurado para ver lo que está pasando?


Un saludo
Es así como me enseñaron a hacerlo xd, poníamos todo el codigo del servlet dentro del try que viene por defecto al crear un servlet, lo del dispatcher me lo dijo un compañero y actualmente todo funciona bien, pero como dije, necesito que al llamar a ese servlet la tabla se actualice, no que me mande a otra pagina, yo no entiendo mucho de esto sorry.
  #6 (permalink)  
Antiguo 17/04/2015, 01:44
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Actualizar JSP luego de un submit por servlet

No me has respondido

Cita:
En mi opinion tu problema es que el servlet sale por la excepcion. No haces ningún tipo de validacion de los parámetros por lo que puede fallar y lanzar un nullpointer al convertir a int, por ejemplo. Has depurado para ver lo que está pasando?

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #7 (permalink)  
Antiguo 17/04/2015, 06:26
Avatar de oshho  
Fecha de Ingreso: marzo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 0
Respuesta: Actualizar JSP luego de un submit por servlet

Cuando me hablas de depurar pienso que te refieres a limpiar de cualquier linea de codigo que me este dando un error y luego correr el proyecto, o utilizar la opción Clean & Build, he realizado todo eso, de no ser así no se a que te refieres con depurar :P
  #8 (permalink)  
Antiguo 17/04/2015, 08:12
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Actualizar JSP luego de un submit por servlet

Buenas,

Me refiero a hacer debug de tu codigo:
http://programacion-fi.blogspot.fr/2...n-eclipse.html
http://www.ehowenespanol.com/depurar...s-como_248985/


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #9 (permalink)  
Antiguo 17/04/2015, 09:44
Avatar de oshho  
Fecha de Ingreso: marzo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 0
Respuesta: Actualizar JSP luego de un submit por servlet

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Me refiero a hacer debug de tu codigo:
[url]http://programacion-fi.blogspot.fr/2011/03/depuracion-de-java-con-eclipse.html[/url]
[url]http://www.ehowenespanol.com/depurar-codigo-java-netbeans-como_248985/[/url]


Un saludo
Ah si lo he hecho en otras aplicaciones, pero ¿Cual sería el sentido de hacerlo? lo pregunto porque nose que cosa estaría buscando.
  #10 (permalink)  
Antiguo 17/04/2015, 13:21
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Actualizar JSP luego de un submit por servlet

Buenas,

Depurando podrás ver si llegas a ejecutar la linea
request.getRequestDispatcher("/ResultadosI.jsp").forward(request, response);
Que es la que te debería devolver a la página de la tabla.

O bien falla antes de llegar ahí (lo más seguro, por lo que cuentas) y hace una retorno nulo, provocando que la pantalla se quede en blanco.

Depurar ese código no debería llevar más de un minuto. Si hubieras empezado en lugar de escribir ese post, ya sabrías seguramente lo que pasa


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #11 (permalink)  
Antiguo 20/04/2015, 06:30
Avatar de oshho  
Fecha de Ingreso: marzo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 0
Respuesta: Actualizar JSP luego de un submit por servlet

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Depurando podrás ver si llegas a ejecutar la linea
request.getRequestDispatcher("/ResultadosI.jsp").forward(request, response);
Que es la que te debería devolver a la página de la tabla.

O bien falla antes de llegar ahí (lo más seguro, por lo que cuentas) y hace una retorno nulo, provocando que la pantalla se quede en blanco.

Depurar ese código no debería llevar más de un minuto. Si hubieras empezado en lugar de escribir ese post, ya sabrías seguramente lo que pasa


Un saludo
Muchas gracias por la dedicación Profesor Falken, bueno, hice la depuración colocando un punto de interrupción en la linea de codigo:
request.getRequestDispatcher("/ResultadosL.jsp").forward(request, response);

Efectivamente ejecuta la linea, pero sinceramente no entiendo como funciona a continuación te dejo la imagen del "resultado"

EDIT: me aparece este mensaje al poner el mouse sobre la linea de codigo:
request.getRequestDispatcher("/ResultadosL.jsp").forward(request, response); = >Exception occurred in target VM: Cannot forward after response has been committed<


Código:
http://i.imgur.com/JZCp7Ni.png
  #12 (permalink)  
Antiguo 20/04/2015, 06:42
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Actualizar JSP luego de un submit por servlet

Buenas,

Es debido a lo que te comentaba en el primer post. Estas mezclando dos formas de informar la salida distintas.

Deja tu metodo simplemente asi:
Código Java:
Ver original
  1. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3.  
  4.             dao.eliminarSeleccion(Integer.parseInt(request.getParameter("txtValEpoch")));
  5.             request.getRequestDispatcher("/ResultadosI.jsp").forward(request, response);
  6.  
  7.     }

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #13 (permalink)  
Antiguo 20/04/2015, 12:26
Avatar de oshho  
Fecha de Ingreso: marzo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 0
Respuesta: Actualizar JSP luego de un submit por servlet

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Es debido a lo que te comentaba en el primer post. Estas mezclando dos formas de informar la salida distintas.

Deja tu metodo simplemente asi:
Código Java:
Ver original
  1. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3.  
  4.             dao.eliminarSeleccion(Integer.parseInt(request.getParameter("txtValEpoch")));
  5.             request.getRequestDispatcher("/ResultadosI.jsp").forward(request, response);
  6.  
  7.     }

Un saludo
Muchas gracias por tu respuesta, bueno escribí el codigo de esa manera y al igual que antes, me lanza la pagina sin la tabla.



Por ejemplo si vuelvo atras, la tabla esta como antes (con ta tabla que fue eliminada) y al presionar F5 la fila desaparece y eso es prácticamente lo que quiero lograr, habra algún modo de hacer que la pagina se refresque al hacer el submit? Así evito el redireccionamiento que al parecer me lanza al JSP sin los datos cargados.
  #14 (permalink)  
Antiguo 21/04/2015, 00:45
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Actualizar JSP luego de un submit por servlet

Buenas,

Claro, eso pasa porque esta redirigiendo a la pagina sin informar los datos.

Tienes que eliminar el registro, recuperar la lista y despues hacer el dispatch.

Código Java:
Ver original
  1. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3.  
  4.             dao.eliminarSeleccion(Integer.parseInt(request.getParameter("txtValEpoch")));
  5.  
  6.             //Aqui recuperas la lista de elementos de la pantalla, como haces en la operacion de listar, y
  7.             //los metes en la request
  8.  
  9.             request.getRequestDispatcher("/ResultadosI.jsp").forward(request, response);
  10.  
  11.     }

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #15 (permalink)  
Antiguo 21/04/2015, 06:57
Avatar de oshho  
Fecha de Ingreso: marzo-2015
Mensajes: 40
Antigüedad: 9 años
Puntos: 0
Respuesta: Actualizar JSP luego de un submit por servlet

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Claro, eso pasa porque esta redirigiendo a la pagina sin informar los datos.

Tienes que eliminar el registro, recuperar la lista y despues hacer el dispatch.

Código Java:
Ver original
  1. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  2.             throws ServletException, IOException {
  3.  
  4.             dao.eliminarSeleccion(Integer.parseInt(request.getParameter("txtValEpoch")));
  5.  
  6.             //Aqui recuperas la lista de elementos de la pantalla, como haces en la operacion de listar, y
  7.             //los metes en la request
  8.  
  9.             request.getRequestDispatcher("/ResultadosI.jsp").forward(request, response);
  10.  
  11.     }

Un saludo
Wow! Muchisimas gracias Profesor Falken, me sirvió de maravilla, te lo agradesco demasiado :D!

Etiquetas: jsp, servlet, submit
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 03:18.