我想一直都是一个数。不想出很多。我用了 out.close() 就会出错,说 out变成了 空 大家可以运行看看。

解决方案 »

  1.   

    可是我用out.clearBuffer()成功了呀,
    显示:1OK2OK3OK......
      

  2.   

    <%
       while (true)
       {
          out.write("OK");
          out.flush();
          Thread.sleep(2000);
       }
    %>
    ————————————————————
    目的就是只输出一个 OK
      

  3.   

    不是这样的,这个页面不是在刷新,而是不断out.write("OK")!
      

  4.   

    肯定不能这样写啦,设个标志打印一次就改标志嘛!
    boolean flag = true;
    while (true){
       if (flag){
          out.write("OK");
          flag = false;
       }
          Thread.sleep(2000);
    }
    不知道这样和你心意嘛,嘿嘿
      

  5.   

    to: ericsome(GzEric) 不行啊!你那样我还用 while (true) 干什么啊!
      

  6.   

    sd这种相关问题你已经问了N遍了!
    答案是:不可能!
    因为传到浏览器的是一个静态网页,你可以看看http协议,在完成get,post,put等请求后和web服务器的连接就中断了,所以不可能每2000毫秒从服务器端out.write("xxx")到浏览器去显示,(out表示web服务器与浏览器建立连接后得到的向浏览器输出的writer,作用与servlet的
    PrintWriter out=new PrintWriter(Response.getOutputStream());
    里面的out没有区别,只不过他是jsp的内建对象)如果要编译通过,可以这样改:
    <% 
       int k = 0;
       while (true){
             k++;
             out.print(k + "OK");
             Thread.sleep(100);
             if(k>5) break;//加入循环出口.
        }
    %>
    但无法动态显示,你只能嵌入applet,flash...等对象实现这功能,要不你可以每隔2000mm与服务器申请一次连接,就像sina的世界杯文字直播一样来刷新你的"ok"
      

  7.   

    谢谢了。   最后方法 就如下了。 不过如果有更好的方法请告诉我,<%
       int k = 0;
       while (true)
       {
      k++;
               out.write(k + "OK");
          out.flush();
               Thread.sleep(2000);
      out.print("<SCRIPT>self.location='self.jsp'</SCRIPT>");
      break;
       }
    %>
      

  8.   

    haha, 你要有办法也告诉我!