2011-07-07 57 views
1

我們正在使用Java JSP/Servlet技術。當用戶在我們的網站上提交表單時,表單由一個servlet處理,這需要5到15秒來完成其工作並將結果發送回瀏覽器。如何設置一箇中間頁面,告訴用戶正在處理請求,並要求用戶在顯示結果之前等待一會兒?如何在servlet完成其工作時設置中間(等待/處理)頁面

我猜測的中間頁都將有一個meta標籤或使用JavaScript來檢查,看看定期結果是否可用。

不過,我不知道該servlet將如何完成自己的工作,如果它已經重定向到中間(等待)頁? servlet是否需要在處理用戶請求的服務器上啓動一個新線程,然後立即將用戶重定向到等待頁面?或者,還有更好的方法?

我知道,我大概可以使用AJAX。但我想知道我是否可以在不使用AJAX的情況下做到這一點。

回答

5

我不會做它的艱辛的道路。這將涉及討厭的會話黑客/令牌/重定向。

我只是使用JavaScript按下提交按鈕時顯示some animated gif

<input type="submit" value="submit" 
    onclick="document.getElementById('loader').style.display = 'block';"> 
... 
<img id="loader" src="loader.gif" style="display: none;" /> 

在Servlet代碼,執行設置響應標頭和/或寫入/長時間運行的過程完成之前刷新的第一個位至所述反應體。否則,該頁面將立即消失。換句話說,做以任何方式觸摸HttpServletResponse直到長時間運行過程真的結束。這樣,帶有動畫gif的原始格式將盡可能呈現給最終用戶。