如何在我的JSP中显示加载消息

时间:2015-08-04 13:05:24

标签: jsp loading

当我点击一个按钮时,它会在服务器上执行一个批处理文件,这需要相当长的时间才能完成,所以我需要在我的页面上显示 Please Wait 消息,同时执行该过程在背景中。我的JSP中有以下代码。

<%
if(session.getAttribute("wait") != null){
        session.removeAttribute("wait");
 %>
// this is 'wait' block
<html>
<head><title>searching...</title>
<meta http-equiv='Refresh' content='0'>
<style type="text/css">
.wait{
font-family: arial;
font-size: 13px;
color: #ff0000;
font-weight: bold;
}
</style>
</head>
<body>
<table align="center" valign="middle">
<tr>
<td class="wait">
Please wait, menus are being searched...
<br>
<img src="ajax-loader.gif" border="0">
</td>
</tr>
</table>
</body>
</html>
<%
}
else{
     session.setAttribute("wait", new String());
%>

// This is where process is executed.
<html>
<body>
<head>
<title>List</title>
</head>

<%
    try
        {
            Process p = Runtime.getRuntime().exec("cmd.exe /c start /wait my.bat");
            p.waitFor();
            out.print("The last update was on "+ sdf.format(file.lastModified()));

        }
    catch(Exception ex)
        {
            out.println(ex);
        }
%>

<p>
        <iframe src="../jsp/new_list.txt" frameborder="0" height="80%" width="95%"></iframe>
</p>

</body>
</html>

但是这里发生的事情是,当我点击按钮时,进程被执行但没有消息出现,现在当批处理文件执行完毕时,执行请求再次被触发并且屏幕上出现Wait消息。请帮我解决。

1 个答案:

答案 0 :(得分:0)

在JSP中使用scriptlet是不好的做法。

点击按钮时显示加载图像的逻辑很简单 1.有隐藏的装载图像
2.点击按钮显示加载图片。
3.当您从服务器获得响应时隐藏加载图像。