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

Ir actualizando una página con servlets

Estas en el tema de Ir actualizando una página con servlets en el foro de Java en Foros del Web. Hola, tengo una página web hecha que anda relativamente bien (teniendo en cuenta mi bajo conocimiento de java) pero me encontré con un problema. La ...
  #1 (permalink)  
Antiguo 04/12/2012, 12:28
 
Fecha de Ingreso: octubre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 1
Ir actualizando una página con servlets

Hola, tengo una página web hecha que anda relativamente bien (teniendo en cuenta mi bajo conocimiento de java) pero me encontré con un problema. La página (jsp) ejecuta en servlet (método get) y anda bien, lo que no me gusta, es que en el caso que el servlet tenga muchos out.println() recién veo el resultado de cuando termina de ejecutarse el servlet, lo cual no tiene mucho sentido.
Por ejemplo, si mi servlet hace esto

Código:
PrintWriter out = res.getWriter();
out.println("Conectando a la base...");
...
out.println("Conectado");
---
out.println("Ejecutando query");
...
out.println("Terminado");
Lo que quiero es que no me muestre todas las salidas al final del servlet, sino que se vayan mostrando a medida que pasan, si el query tarde 5 segundos, yo quiero ya haber visto el mensaje "ejecutando query".
Se entiende ? Cual es la mejor manera de hacerlo ? se puede con servlets o debería cambiar a otra tecnología?

Muchas gracias por la ayuda!!!
  #2 (permalink)  
Antiguo 04/12/2012, 12:44
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Ir actualizando una página con servlets

Lo que quieres hacer no tiene sentido, te fallan los conceptos.

Una página web funciona de la siguiente manera, el navegador hace una petición y el servidor contesta. Por lo tanto el servidor nunca puede enviar información sin que el navegador se la pida. ¿Cómo se actualizan entonces las páginas? Haciendo que mediante javascript el navegador realice peticiones cada cierto tiempo.

Como el servidor solo contesta una vez por petición, ya sea una JSP o un servlet, el contenido de lo que se va a mostrar se manda junto. Con out.println lo que estás haciendo es crear el html que se le enviará al navegador que hizo la petición. Uno por petición.

Otra cosa es que tú quieras ver esos textos durante la ejecución (por ejemplo en consola), entonces lo que tienes que hacer es un log.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 04/12/2012, 13:05
 
Fecha de Ingreso: octubre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ir actualizando una página con servlets

No tengo duda que me fallan los conceptos jeje, por eso pregunto, recién estoy arrancando con esto. No se si fui del todo claro, el pedido existe, desde la pagina invoco al servlet, por ejemplo para hacer un query. Cuando termina de ejecutarse todo me aparece en el navegador:

Conectando a la base...
Conectado
Ejecutando query
Terminado

Me dijeron que tal vez con Ajax (???) podía lograr que me vaya mostrando las cosas a medida que pasan y no todo junto al final, sino podría hacerlo de alguna otra forma ???
  #4 (permalink)  
Antiguo 04/12/2012, 15:07
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Ir actualizando una página con servlets

Fuiste claro y lo que vuelves a preguntar ya está contestado. Vuelve a leerlo con calma y trata de comprenderlo.

Podrías hacerlo con AJAX (AJAX es javascript), pero es complicarte innecesariamente la vida, ten en cuenta que salvo que sea una consulta muy bestia, esos cuatro mensajes son inmediatos y la comunicación cliente-servidor es más lenta. Recibirías los mensajes secuencialmente cuando el proceso estuviera acabado.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 05/12/2012, 07:13
 
Fecha de Ingreso: octubre-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Ir actualizando una página con servlets

Los mensajes que puse en el out.println son a modo de ejemplo, solo para mostrar cual es la problemática sin tener que poner el código completo. Si se puede hacer con ajax me gustaría alguna punta de como sería, o si en vez de servlet debería usar otra cosa, también me gustaría que me indiquen que.
Gracias
  #6 (permalink)  
Antiguo 06/12/2012, 05:26
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Ir actualizando una página con servlets

Hola:

No sé si funcionará, pero cada vez que quieras que el mensaje se vea en el navegador, prueba a llamar al método flush() de out. Como te comento, no estoy seguro que funcione, no lo he probado nunca.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: servlets
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:06.