2011-07-07 11 views
1

Java JSP /サーブレット技術を使用しています。ユーザーがWebサイトにフォームを送信すると、フォームはサーブレットで処理されます。サーブレットは作業を完了して結果をブラウザに返すのに5〜15秒かかります。リクエストが処理されていることをユーザーに知らせる中間ページを設定し、結果が表示されるまで少し待つようにユーザーに求めますか?サーブレットの作業中に中間(待機/処理)ページを設定する方法

私は中間ページにメタタグがあると推測しています。または、結果が利用可能かどうかを定期的に確認して確認するためにjavascriptを使用しています。

しかし、すでに中間(待機)ページにリダイレクトされている場合、サーブレットがどのように処理を完了するのかわかりません。サーブレットは、ユーザーのリクエストを処理しているサーバー上で新しいスレッドを開始する必要がありますか?そしてユーザーを待機中のページにすぐにリダイレクトしますか?それとも良い方法がありますか?

おそらく私はAJAXを使用することができます。しかし、私はAJAXを使わずにそれをやることができるかどうか疑問に思っていました。

答えて

5

私は難しいことではありません。それは、面倒なセッションハッキング/トークン/リダイレクトを必要とします。

送信ボタンを押すと、some animated gifと表示するのにJavaScriptを使用します。サーブレットコードで

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

は、応答ヘッダを設定しないか及び/又は前に長い実行中のプロセスが終了したレスポンスボディに最初のビットを消去/書き込み。それ以外の場合、ページはすぐに空白になります。つまり、ではありません。HttpServletResponseは、長時間実行されるプロセスが、実際にはになるまで続きます。この方法でアニメーションgifの元のフォームができるだけエンドユーザに提示されます。

関連する問題