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

Recargar páginas

Estas en el tema de Recargar páginas en el foro de Java en Foros del Web. Saludos tengo una aplicación web que te dibuja un mapa y todos los sensores que tengas guardados en una base de datos. Me gustaría saber ...
  #1 (permalink)  
Antiguo 08/08/2011, 03:05
Avatar de atapuerkasman  
Fecha de Ingreso: febrero-2011
Mensajes: 76
Antigüedad: 8 años, 10 meses
Puntos: 2
Recargar páginas

Saludos tengo una aplicación web que te dibuja un mapa y todos los sensores que tengas guardados en una base de datos. Me gustaría saber como puedo hacer para que cuando borro un sensor la página se me recargue sola automaticamente.

En mi caso borrar un sensor lo hace un servlet que accede a la base de datos y lo elimina, Y otro servlet se encarga de redibujar los mapas cada vez que se le llama.


¿Hay alguna función o manera de que por ejemplo el servlet eliminarsensor llame directamente a redibujar para que se actualice solo???
  #2 (permalink)  
Antiguo 08/08/2011, 15:31
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 10 años, 5 meses
Puntos: 12
Respuesta: Recargar páginas

Que genera el mapa? un applet?...en todo caso deberías estar utilizando ajax para así ahorrarte la recargada de una página solo por quitar un sensor



Código HTML:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Hello World</title>
    </head>

    <script>
    function Enviar() {

        var obj = false;

        if (window.XMLHttpRequest) {
            //Cuidado aqui, el objeto XMLHttpRequest no esta disponible en versiones previas a IE7
            obj = new XMLHttpRequest();
        } else {
            return false;
        }
        obj.onreadystatechange = function () {
            if ( obj.readyState == 4 && (obj.status == 200 || window.location.href.indexOf ("http")==- 1)) {
                document.getElementById("Respuesta_Hello").innerHTML = obj.responseText;
            } else {
                //procesando...
            }   
        };
        obj.open("GET", "Servlet_Hola?nombre=" + document.getElementById("nombre").value , true);
        obj.send(null);

        return (true);
    }
    </script>

    <body>

        <form action="Servlet_Hola" method="GET">
        Ingrese su nombre: <input type="text" name="nombre" value="" size="45" id="nombre" />
        <input type="button" value="Enviar (con Ajax)" onclick="Enviar();" name="enviarAjax">
        </form>

        <div id="Respuesta_Hello">
            <!-- Este DIV contendra la respuesta enviada por el Servlet -->
        </div>

    </body>

</html> 
no se que manera estes mostrando eso de los sensores, pero lo que sea, debería ir en la capa (DIV) llamada: "respuesta_Hello"(en el caso del ejemplo) que se actualiza con los: out.println("nuevo codigo html"); que provienen del servlet.(en el ejemplo: "Servlet_Hola"),

si en el servidor el servlet llama a otro servlet, de todas maneras la respuesta es interceptada por el código javascript el cual es el encargado de colocarlo en la capa especificada(en el caso del ejemplo la capa: "respuesta_Hello")

En caso de que sea un applet
out.println("<CODEBASE = \".\" CODE= \"applet.class\"</APPLET>");


bueno tu entiendes... no necesitas recargar la página y recuerda que entre menos servlets cargados en el cliente mucho mejor, y para tareas sencillas mejor utilizar Scriptlets, si alguien difiere de mi opinión bienvenidas sean las recomendaciones.


fuentes: http://luauf.com/2008/05/24/servlets-netbeans-y-ajax/

y si lo que te sirve es recargar la pagina podrias generar el script que lo hace:

out.println("<script Language:\"JavaScript\"> location.reload() </script>");
aunque no se si funcione solo se me acabo de ocurrir.

dudas?? a leer:

JavaScript: http://es.wikipedia.org/wiki/JavaScript

CSS: http://es.wikipedia.org/wiki/CSS

Scriptlets: http://es.wikipedia.org/wiki/JavaSer...ges#Scriptlets

AJAX: http://www.google.com.co/url?sa=t&so...ktaB4A&cad=rja

DOM: http://es.wikipedia.org/wiki/Document_Object_Model
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-

Última edición por calichecal; 08/08/2011 a las 16:43
  #3 (permalink)  
Antiguo 09/08/2011, 03:33
Avatar de atapuerkasman  
Fecha de Ingreso: febrero-2011
Mensajes: 76
Antigüedad: 8 años, 10 meses
Puntos: 2
Respuesta: Recargar páginas

Te explico un poco, tengo una pantalla_principal.jsp que durante la carga(onload) llama a un script que realiza una serie de tareas entre ellas llamar al un servlet.

Código:
llamarasincrono("<%=request.getContextPath()%>/servletCambiarPlano?atributo1=inicio&atributo2="+0+"&atributo3="+0+"&atributo4="+0, "plano");
llamarsincrono("url", "div"); //se le pasa la url a la que se va utilizando metodo GET y el contenedor div en el que se quieren que se dibujen los datos.


El servletCambiarPlano hace lo siguiente:

Accede a la BD para mostrar el plano que se ha seleccionado, que se le pasa en el atributo2 (en este caso es 0 porque es durante la carga de la página y el usuario no ha seleccionado nada)
una vez dibujado el plano, vuelve a la base de datos y busca todos los nodos pertenecientes a ese plano y los dibuja en su posicion correspondiente en el plano.

Y todo esto lo dibuja en el <div> que le pasaste en la llamada
llamarsincrono("url", "div");

Espero que hasta aqui se me entienda :D.

Mi problema es el siguiente, cuandol llamo a otro servlet, (ej: eliminar nodo) me gustaría saber como redibujar otra vez el mapa. Tal cual lo tengo ahora para que me desapareciera el nodo eliminado tendria que pinchar en el selector de mapas, elegir otra vez el mismo y ya no me lo mostraría.

basicamente me gustaría saber como puedo hacer que desde un servlet me llame al script que me redibuja el mapa

Es un poco complejo, si quieres preguntar cualquier cosa sin problema.

Etiquetas: jar, páginas, recargar
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:08.