后台能System.out.println 能输出上传进度。。
但是要怎么才能传到页面呢?因为页面上已经有一个ajax在进入上传的servlet,我把进度存到Session里面去了。
我现在又写了个ajax访问另一个servlet 读取Session里面存的进度。。 还是实现不了谁有什么好的方法或者解决方案

解决方案 »

  1.   

    http://daihoufa.javaeye.com/blog/184212
      

  2.   

    ajax执行一个后台上传方法, 上传方法中能输出进度,在方面还没结束前如何给前台传递数据
      

  3.   

    http://passport.csdn.net/ActivateUser.aspx?UserName=era_jl&Code=P1p1%2fCO0PT1WB5AO2J7ximnnpK00kwAYgZYn5QcaPPrE%2b58fT6125d3P7bs0Ip5C0Okfw85gU2I%3d
      

  4.   

    使用javascript中的setTimeOut(int num)方法试试!
    意思是:没num/1000秒调用你异步请求的js程序,这样就可以动态获得后台的进度了。
      

  5.   

    上传开始的同时发出一个JS的异步请求getCurrProgress()
    这个请求的Callback这样写(伪代码)
    if(currProgress!=100%){
     //上传未完成继续获得当前进度
     getCurrProgress();
     alert(currProgress);
    }else{
     //上传完成
    }服务器端代码:
    //返回currProgress的Servlet
    while(session.getAttribute("currProgress")==null)
    {
     lock.wait();//等待Session中数据更新
    )
    out.write(session.getAttribute("currProgress");
    out.flush();
    session.removeAttribute("currProgress");//更新Session中的currProgress的Servlet
    session.setAttribute("currProgress","XX%");
    lock.notify();//唤醒返回currProgress的Servlet写的不是很详细 不知道你明白没有