for(Future<String> fs:futureList){
        out.print("<tr>");
        str = fs.get().split(",");   
        for(int j=0;j<str.length;j++){
            out.print("<td>");
            out.print(str[j]);           
            out.print("</td>");
        }
        out.print("</tr>");
        out.flush();
    }为什么在本机上,out.flush()有作用,能逐步显示,但到了服务器,就要等全部运行完了,才显示内容,有人知道吗,先谢谢我想要在服务器tomcat,对就运行完了数据,就先把返回结果输出来

解决方案 »

  1.   

    服务器上的tomcat是如何配置的?
      

  2.   

    先利用像charles之类的HTTP跟踪工具确认是服务器没有返回,还是客户端收到但是不显示而已你再增加调用response.flushBuffer()试试吧
      

  3.   

    还有,为什么程序在 tomcat里面运行时,过一会儿,就出现 connection reset, 是什么原因
      

  4.   

    你的tomcat是和apache一块用的么?
      

  5.   

    是啊,在linux下,但服务器不是我配置的
      

  6.   

    apache+mod+tomcat是这样吧?
    我以前也遇到过。
    你的flush只是从tomcat强制输出到apache。apache必须等到响应内容达到一定的长度,或者收到结束信号的时候才返回内容给客户端。
    我记得module里有一个参数可以控制不进行判断,而直接将响应输出。
      

  7.   

    你可以试试直接访问8080端口,这样flush应该可以出来。
      

  8.   

    不可能访问8080端口的.因为project发布上去后,要服务器指定一个路径,才能正常访问的,而我是没有权限去改的,唉还有一个问题,就是运行时,页面会有输出,只不过不是逐步显示,而是差不多每20条数据显示一次,但如果能这样也行,不过只能显示到200条数据,往后的就不能实现在,有时等了很久,会出现connection reset,或者浏览器还是处在运行状态,但就是进一步显示
      

  9.   

    如果是apache+tomcat的配置的话,光配置tomcat是不能解决问题的。
    reset也有可能是timeout设置不当所致。
    你必须先确认问题所在。
    不明白为什么8080你不能用。
      

  10.   

    因为那个路径是指定的,如果按照正常的访问 域名:8080/project name,根本访问不了。至于,timeout,我在网上查了很多,php就有timeout的设置,但jsp好像没有,都没有这方面的资料
      

  11.   

    我跟你说了,你不是直接访问tomcat,中间隔了个apache。
    你应该确认apache的配置。
    如果没权限,你可以自己找一台机器(实在没有的话,虚拟机也可),照着服务器上的环境自己建起来。其实也不难搭建。
    建起来以后确认问题所在。然后再看下一步怎么处理。
    你这样在这里问,你又不去试,怎么可能确认问题所在呢。再专家的人物也不可能一看你的现象就拍板说是哪的问题啊。何况我们也不是专家。
      

  12.   

    好的,谢谢你,分全给你吧,其实我也有想过搭建环境,但有时候很容易就搭建起来,有时候却很耗时间啊.而且我也没装linux系统,就算装起来,但环竟不可能全部一样吧,有时候也会有差别