Atualizar jsp em tempo real

6 respostas
maior_abandonado

oi pra todo mundo,

eu so iniciante em desenvolvimento web e, to começando a criar uns jsp, queria saber se tem como atualizar partes de uma pagina em tempo de execução…

por exemplo, eu tenho uma aplicação swing que fica dando ping em certos endereços, e atualizando uma JLabel com a saida do comando (só a parte do “resposta de xxx tempo=xxx, etc…”)

sendo assim criei esse jsp abaixo pra testa o comando:

<html>
<body>


<%  /*processando...*/

for (int x=0;x<10;x++){

try{
	    String mensagem2="";	
            java.util.Scanner s = new java.util.Scanner( Runtime.getRuntime().exec("ping www.uol.com.br").getInputStream());
            
	    while(s.hasNextLine()) {
                
                mensagem2=s.nextLine();
                if (mensagem2.length()>16){
                    
                    if (mensagem2.regionMatches( true, 0, "resposta", 0, 8 )){ %>
                        <font size=4> <%=mensagem2%> </font><br>
                    <% break;
		    }
                }

            }    

}catch(Exception e){} 
}
%>

</body>
</html>

o caso é que esse arquivo ai cria uma pagina com 10 saidas uma embaixo da outra, o que eu queria mesmo, era dexa um loop infinito, e em um lugar só ir atualizando(obviamente vo bota um thread.sleep(x) ou java.util.timer entre um e outro pra nao zua a maquina…rs)

tem como ir atualizando e mudar assim???

6 Respostas

Mauricio_Linhares

Não faça um ping desse jeito, faça assim -> http://codare.net/2007/05/09/java-fazer-ping-em-um-servidor/

E o jeito de ficar atualizando é com ajax, mas provavelmente é uma coisa um tanto quanto complicada pra você entender agora, o que você pode botar é um link na página pra o cara clicar e atualizar, é bem mais simples pra esse primeiro momento.

maior_abandonado

puxa…interessante esse metodo isReachable…

vc sabe se tem algum jeito de pegar o tempo de resposta tb???

Mauricio_Linhares

Não sei, mas você pode usar o timeout pra isso.

maior_abandonado

intendo, mais ai no caso eu não vo saber o tempo de resposta, apenas o tempo maximo que ele demoraria (pra certas coisas é bom saber esse detalhe)

assim mesmo muito pbrigado pelas respostas, vieram bem rapidas e tiraram minha duvida…

eu vo tenta fazer alguma gambi, tenta descobri em uma thread separada quanto tempo demoro pra executa esse comando, algo assim…sei la… se eu nao consegui td bem tb…

brigadão kra…

Mauricio_Linhares

Homem, conta o tempo antes e depois da chamada do método.

maior_abandonado

aqui não funciona…

bom…não da erro, mais sempre diz que falhou o ping sendo que no dos pinga normalmente…

tem alguma coisa errada no meu codigo?

import java.net.InetAddress;
import javax.swing.JOptionPane;
public class execucao {
    
    public static void main(String args[]){
        String ip="www.uol.com.br", resp="";
        execucao obj=new execucao();
//        resp=obj.pinga("www.iwts.com.br");
//        JOptionPane.showMessageDialog(null, resp);
        obj.pinga2("200.221.2.45");
        obj.pinga2("www.uol.com.br");
    }

...

public void pinga2(String ip){
        //String saida="";
        
        try {
            if (InetAddress.getByName(ip).isReachable(10000))
              System.out.println("Ping OK: " + ip);
            else
              System.out.println("Ping FALHOU: " + ip);
      } catch (Exception e) {
        System.err.println("Ping FALHOU (deu merda): " + ip + " - " + e);
      }
        
        
    }

a saida fico assim:

init:
deps-jar:
compile-single:
run-single:
Ping FALHOU: 200.221.2.45
Ping FALHOU: www.uol.com.br
BUILD SUCCESSFUL (total time: 20 seconds)

obrigado pela ajuda, desde ja.

Criado 28 de dezembro de 2007
Ultima resposta 28 de dez. de 2007
Respostas 6
Participantes 2