2

我有一个 index.html,其中有一个表单。当我按下提交时,该表单会向我的 servlet 发出 POST 请求。这个 servlet 做了一些繁重的事情,然后转发给一个 jsp。我想要的是当我按下提交时,显示一个加载器。我知道如何通过 javascript (preventDefault 等) 做到这一点。我不想要那个。这可以通过servlet来完成吗?我试图输出一个只包含加载器的“页面”,然后做繁重的工作,最后转发到一个jsp。那没有用。由于某种原因,它甚至没有离开 index.html,只是一直呆在那里直到 servlet 完成,最后我被转发到 jsp。

谢谢您的帮助

4

2 回答 2

2

这只能使用 AJAX 来完成。

因此,在单击提交按钮时,显示正在加载的图像,并对 servlet 进行 ajax 调用。因此,当 servlet 正在处理时,将显示加载图像。从 ajax 调用返回后,您可以使用 javascript 执行您需要的任何操作(将用户转发到另一个页面/显示错误 .. 等)。

我强烈推荐你看JQuery Ajax(这是我用过的最简单有效的脚本)

$.ajax({
    type: 'POST',
    url: '/myServlet',
    data: {
        name: $('#name').val()
    },
    beforeSend:function(){
        // this is where we append a loading image
    },
    success:function(data){
        // successful request; do something with the data            
    },
    error:function(){
        // failed request; give feedback to user
    }
});
于 2013-04-30T13:36:39.883 回答
0

您可以使用Ajax.. on form submitmake aajax call将/ neddedservlet返回到显示页面。您可以使用返回的替换 . 中的或任何内容。thingshtmlloadingpageformcurrent page

之后ajax form submission将照常继续......当其他Servlet完成时,processing您将被重定向到result page

于 2013-04-30T13:26:30.800 回答