java - 如何使用JSP生成请求?

标签 java jsp httprequest

我正在做一个网络应用程序,它在文件上传完成后处理文件,我希望用户能够以某种方式获得有关进度的一些信息。现在我正在考虑创建一个 jsp 进度页面,它将 hibernate 5 秒钟,然后生成一个请求并向其提供我们想要了解进度的文件名。那么我该如何做到这一点,或者有更好的方法吗?也许 JavaScript 可以执行所需的操作?那么你们有什么建议呢?谢谢。

最佳答案

您需要使用ajax 轮询服务器。如果您使用 Java,Apache FileUpload 库有一个名为 ProgressListener 的接口(interface)。 ,您可以实现它来确定上传进度。您可以跟踪收到的百分比或在文件完成时将其标记为完成。在客户端,您每隔几秒钟检查一次进度,直到看到它完成。另外,如果您希望用户看起来停留在同一页面上,请尝试在提交时将表单的目标属性设置为 0x0 iframe 的 id。

如果您决定编写 JavaScript 代码,一个简单的轮询函数可能如下所示:

function poll(uploadId) {
    $.ajax({
         url: '/path/to/upload/status/servlet',
         type: 'POST',
         data: 'id=' uploadId,
         dataType: 'json',
         timeout: 10000,
         error: function(err){
             // handle error
         },
         success: function(data) {
             var status = data["status"];

             if (status == 'finished') 
             {
                 // completed upload logic
             }
             else
             {
                 setTimeout(function() {
                     poll(uploadId);
                 }, pollingIntervalInMillis);               
             }
         }
    });
}

关于java - 如何使用JSP生成请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16701715/

相关文章:

java - 在 vaadin 应用程序中放置我的企业登录信息的位置

java - Jsp中如何调用Java类

c++ - 如何使用 C++ 发出 HTTP 请求?

java - Spring Data Rest - 如何更改抽象类集合的 JSON 序列化

java - 如何在 ServerName 和 Url 中使用 DNS 设置 Glassfish 连接池

java - HSQL 中是否有 'addScript' 的最大记录数?

java - 通过 HTTPURLConnection 发送 cookie

java - 在我的 arraylist.set() 上获取空值。使用jsp

c# - DownloadStringAsync 等待请求完成

ios - 了解大中央调度