在servlet加载时显示内容

时间:2016-03-30 08:29:25

标签: java jsp servlets

我有一个java web应用程序,其中运行的servlet需要花费一些时间来加载,一旦完成servlet,jsp页面将显示来自之前运行的servlet的数据。

有没有办法在加载servlet时显示消息或gif?

2 个答案:

答案 0 :(得分:0)

JavaScript是要走的路,你知道Servlet是服务器端的。

只要我知道,一旦浏览器提交请求,我们就无法控制在下一页加载之前会发生什么。

因此,要么在加载新页面之前处理延迟,要么在加载页面后处理延迟。当然,在完成身份验证之前,很难加载需要身份验证的页面,因此最好在登录页面上保留,直到它发生。

我的建议是你用AJAX处理登录,总是小心安全性。您的JS不是让浏览器提交表单,而是使用AJAX收集登录信息并异步发送到Servlet。我不知道怎么做,但可以做到。

当你的JS等待响应时,你会创建一些动画以分散用户的注意力。一旦响应到来,如果登录成功,您的JS将加载新页面。

答案 1 :(得分:0)

如果servlet需要时间才能返回结果,则必须将其拆分。然后,您可以使用Javascript或重定向,后者可以使用或不使用刷新延迟。

Javascript是更明显的方式:智能是客户端。所以你:

  • 准备请求
  • 通知用户您正在启动需要时间的处理
  • 向服务器发送异步请求
  • [可能通知用户处理的处理]
  • 在请求完成后显示最终结果

但这不是唯一的方法。你也可以:

  • 将请求发送到第一个启动异步处理的servlet,并立即返回一个页面,通知用户处理可能需要一些时间
  • 该页面包含一个按钮 Advancement ,可自行查询并显示有关提升的信息
  • 请求完成后, advancement 页面会重定向到显示最终结果的页面

好的,这不是很好,因为用户必须单击按钮才能看到进度,但您可以使用进度页面中的刷新标题稍微改变一下,自动刷新它。刷新是非标准标记,但大多数浏览器(ref)都支持该标记。并且你得到一个页面,告诉用户没有一行javascript的长时间处理的推进。