在浏览器上显示之前缓冲PDF内容时的GWT进度条

在浏览器上显示之前缓冲PDF内容时的GWT进度条,gwt,servlets,download,progress-bar,Gwt,Servlets,Download,Progress Bar,在我的GWT应用程序中,我编写了一个servlet来下载/传输PDF文件 下面是代码 protected void updateResponse(HttpServletResponse response, InputStream dataStream, long contentLength, KnownContentTypes contentType, String filename, int cacheSeconds) { response.setHeader("Conten

在我的GWT应用程序中,我编写了一个servlet来下载/传输PDF文件

下面是代码

    protected void updateResponse(HttpServletResponse response, InputStream dataStream, long contentLength, KnownContentTypes contentType, String filename, int cacheSeconds) {

    response.setHeader("Content-Type", contentType.getTypeString());
    response.setHeader("Content-Length", String.valueOf(contentLength));
    response.setHeader("Content-disposition", "inline;filename=" + filename);
    response.setHeader("Cache-Control", "max-age=" + cacheSeconds);


    byte[] buffer = new byte[BUFFER_SIZE];
    try {
         ServletOutputStream out = response.getOutputStream();
         while ((dataStream.read(buffer)) != -1) {
            out.write(buffer); 
         }

    } catch (IOException e) {
        sendError(response);

    } 
}
在浏览器上成功呈现pdf。 问题是一些pdf的大小非常大,因为它是在window.open上调用的,所以我看到的只是一个空白的浏览器

我想显示一条动态消息,如“1MB/5MB下载”,并在所有字节流传输后显示/呈现整个PDF文件

请让我知道怎么做。 我是GWT的新手,任何帮助都将不胜感激


谢谢。

我们通常通过调用带有
窗口的servlet来发出同步请求,但这无法完成。打开
您必须发出ajax请求来计算进度并显示响应


请查看此库:。它非常易于使用,在大多数浏览器中都能正常工作。它使用
ajax
请求来计算进度

你能举个简单的例子吗。我看了一下这个库,看起来它是用来上传而不是下载的。