还要想!我不知道,怎样人工得让servlet返回信息!

解决方案 »

  1.   

    单纯用servlet不能实现这个功能,除非是用客户端不断请求(让页面每隔一段时间请求一次)。因为http是基于无连接的,服务器没有办法自动发送数据给客户端。
    但你可以考虑用applet+servlet的方法实现
      

  2.   

    在run()中有间隔的flush一下,不知到行不?
      

  3.   

    to mty(天鱼)
    说的有点道理!
    ----http是基于无连接-----applet+servlet的方法实现 ?
    有什么好办法吗?
      

  4.   

    定时刷新页面,response.setHeader("Refresh", "1");
    不就可以了。
      

  5.   

    servlet当然要有客户端请求才激发,你什么意思啊?
      

  6.   

    定时刷新页面只需要简单的HTML就行了。
    <META HTTP-EQUIV=Refresh CONTENT="10; URL='http://www.yourdomain.com/'">
      

  7.   

    luodi(无知者无畏) 你最拽!PF!
      

  8.   

    TO: FJY168(风雨飞扬) 
    你要的很难以做到这一点。换个思路你看可以吗?
    服务器采用无buffer(buffer='none')方式,采用无限循环方式向客户发送信息,直到客户主动断开。例子:<%
      int i=0;
      while(;;)
      {
         out.print("<Script>document.clear;</Script>");
         out.print(i);
         out.println("<BR>");
         Thread.sleep(1000);
         i++;
      }
    %>
      

  9.   

    换个思路行吗?
    就是让服务器端不停的送数据到客户(死循环),直到客户端断开。例子:
    <%
      int i;
      while(;;)
      {
        out.println("<Script>document.clear;</Script>");//清掉先前的数据
        out.print(i);
        out.println("<BR>");
        out.flush();
        Thread.sleep(1000); //睡它1秒钟
      }
    %>
      

  10.   

    记住Thread.sleep之前要先out.flush()
      

  11.   

    Muf(沐枫),这样做不知效率如何呀?
      

  12.   

    Muf(沐枫)你的想法很好,但如果有1000人同时访问该页,这样做不知效率.....
      

  13.   

    那看来没有办法
    只能applet+servlet的方法实现 但是,我总是无法试通applet与servlet之间的连接,。
      

  14.   

    TO: ezhb(海) 
    所以才要Sleep。中网沙龙和网易聊天室都是这种持续型的聊天室,你可以看看。(不过他们都有限制每个聊 天室不超过100人)。有1000人同时访问该页,就不知道有没有问题了。TO: FJY168(风雨飞扬) 
    如果你的访问量不限制,而且真的很多的话,用HTML拉或用Applet拉都是很正规的解决之道。
    如果你暂时试不通Applet,那么先用HTML代替,然后再得到解决方法再用。
    其实,我不到不得以的时候是不会用Applet的。
      

  15.   

    to Muf(沐枫):
    兄弟的建议固然不错,但效率...呵呵!!换成luodi(无知者无畏)的方法
    <META HTTP-EQUIV=Refresh CONTENT="10; URL='http://www.yourdomain.com/'">,
    效果跟你一样,不过事全在client做完了,效率高一大截了。:)
    to FJY168(风雨飞扬):
    applet + servlet的基本思想是:
    在server端(servlet)建立一server socket侦听:(发送数据)
      Socket s = (new ServerSocket(1000)).accept();
    在client端(applet)建立socket连接(接收数据)。
    就可以实现数据的实时更新。
      

  16.   

    http://www.csdn.net/expert/topic/168/168069.shtm