Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP进度条_Java_Eclipse_Jsp_Servlets - Fatal编程技术网

Java JSP进度条

Java JSP进度条,java,eclipse,jsp,servlets,Java,Eclipse,Jsp,Servlets,在JSP中实现进度条有一种非常简单的方法。基本上,我有一个JSP页面,它指向一个调用方法的servlet,现在这个过程将运行很长一段时间,我想指出进度的状态,就像我们执行任何java程序时eclipse任务栏中显示的进度条一样 我在这里找到了一个不错的教程,但它似乎有点过时 有没有新的简单的方法来实现这一点?在我看来,当您调用jsp时,它应该立即返回给用户,但也表明一些复杂的任务正在后台处理(例如,使用加载微调器)。如果您想知道任务的进度,应该使用Ajax轮询或Comet push从服务器检索任

在JSP中实现进度条有一种非常简单的方法。基本上,我有一个JSP页面,它指向一个调用方法的servlet,现在这个过程将运行很长一段时间,我想指出进度的状态,就像我们执行任何java程序时eclipse任务栏中显示的进度条一样

我在这里找到了一个不错的教程,但它似乎有点过时


有没有新的简单的方法来实现这一点?

在我看来,当您调用jsp时,它应该立即返回给用户,但也表明一些复杂的任务正在后台处理(例如,使用加载微调器)。如果您想知道任务的进度,应该使用Ajax轮询或Comet push从服务器检索任务。对于获取和显示进度,我认为Ajax已经足够了,Comet可能有点过头了。以下是有关Ajax方法的更多信息:

)


关于您的问题,servlet(以及jsp)根据HTTP协议工作,该协议基于请求->响应模型。在今天的世界中,很少有站点让您转到jsp来执行复杂的任务,然后在请求完成时您不得不坐在那里无所事事。您可能希望在后台处理用户的请求时,允许用户自由地与web应用程序/网站进行交互。

有很多解决方案,例如jQuery

您可以将Jquery与Ajax结合使用来更新进度条:


一旦你了解了细节,确定一项特定任务的进度是一件非常复杂的事情。例如,您如何确定您完成了50%的工作?如果最后10%的任务占用总时间的1/2,会发生什么

通常,对于web应用程序,如果您确实需要进度条,那么使用AJAX路线是最好的,正如上面提到的一些海报所示。 然而,我发现,在web上,向用户指出正在发生的事情是合适的。只需在提交页面时将某种微调器设置为可见,然后在呈现页面时将其再次隐藏(请参见)。这是非常容易做到的,不会对性能造成额外的影响,并且表明取得了某种进展