Atualizar jsp em tempo real

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???

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.

puxa…interessante esse metodo isReachable…

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

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

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…

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

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.