アプリ版:「スタンプのみでお礼する」機能のリリースについて

サーブレット+DB、JSPでプログラムをしています。
以下の質問(CGIが対象です)
http://www.okweb.ne.jp/kotaeru.php3?q=173368
と似たようなことを、JSPで行うにはどうしたらよいでしょうか。
サーブレットの処理中(長い処理)に、「処理中」のメッセージを表示して、終了したら完了ページに飛ばしたいのです。
「処理中」の表示はJSPでもJavaScriptでも、サーブレットから直接出力しても構いません。
さらに言えば、サーブレットではfor文で処理を回しているので、「○%完了」などが表示できたら最高です。

よろしくお願いします。

A 回答 (3件)

一度クライアントに返されてしまった表示を書き換えるとなるとJavaScriptを使わなくちゃだめかもしれませんね。



もしくは

[i]を表示するJSP(or HTML)

適当な時間を待って自動的にserverに通信
if(処理が終わっていない){
[i+1]を表示するJSP(or HTML)
}else{
//処理が終わっていれば
処理終了を表示するJSP(or HTML)
}

というのを繰り返せばできるのではないでしょうか。
    • good
    • 0

こういう感じのことでしょうか...


JSPの動く環境でやってみてください。

<HTML>
<%
for(int i=0;i<10;i++){
out.write(String.valueOf(i)+"<BR>");
out.flush();
Thread.sleep(2*1000);
}
%>
</HTML>
    • good
    • 0
この回答へのお礼

遅くなりました。ありがとうございます。
やってみましたが、おもしろいですね。
ただ、1,2,3・・・と出るのではなく、1⇒2⇒3・・・と切り替わってほしいのですが。
他の件で使えそうなので、参考にさせていただきます。

お礼日時:2003/06/13 17:07

掲示板の書き込みのような処理は、基本的に以下の流れ(画面遷移ベース)


で実行することが多いです。

 書き込み画面 ⇒ 処理実行画面 ⇒ (実行終了画面) ⇒ 処理後に遷移したい画面

ここで重要なのは『処理実行画面』です。
この画面の基本構成は…
 ・処理実行部分(ここをJSPで記述する)
 ・処理中表示部分(HTMLでOK)
の2つになります。

処理が終了したら、表示を『処理終了』とするか、処理終了画面に遷移させればよいのです。

○%完了の表示は、処理実行部分のfor文の中でパーセンテージ計算をし、
out.print なり何なりで%の数値の部分だけを書き換えれば
良いかと思います。

大雑把ですが、こんなイメージで設計してみれば良いかと思いますよ。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
実行画面(「実行中です・・・」)のHTMLを出力したあとで、処理を続ける、というのは可能なのでしょうか。(並行処理ということですよね)

処理が終わった後にHTMLを出力する、という一般的なものしか知らないもので・・・

JSPでは、HTML部分は先に表示され、JSPのタグのメソッド部分(この場合、繰り返し処理を実行するメソッド)は完了まで稼動を続けている、という解釈で合っているのでしょうか。

お礼日時:2003/05/21 17:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!