サーブレット+DB、JSPでプログラムをしています。
以下の質問(CGIが対象です)
http://www.okweb.ne.jp/kotaeru.php3?q=173368
と似たようなことを、JSPで行うにはどうしたらよいでしょうか。
サーブレットの処理中(長い処理)に、「処理中」のメッセージを表示して、終了したら完了ページに飛ばしたいのです。
「処理中」の表示はJSPでもJavaScriptでも、サーブレットから直接出力しても構いません。
さらに言えば、サーブレットではfor文で処理を回しているので、「○%完了」などが表示できたら最高です。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
一度クライアントに返されてしまった表示を書き換えるとなるとJavaScriptを使わなくちゃだめかもしれませんね。
もしくは
[i]を表示するJSP(or HTML)
↓
適当な時間を待って自動的にserverに通信
if(処理が終わっていない){
[i+1]を表示するJSP(or HTML)
}else{
//処理が終わっていれば
処理終了を表示するJSP(or HTML)
}
というのを繰り返せばできるのではないでしょうか。
No.2
- 回答日時:
こういう感じのことでしょうか...
JSPの動く環境でやってみてください。
<HTML>
<%
for(int i=0;i<10;i++){
out.write(String.valueOf(i)+"<BR>");
out.flush();
Thread.sleep(2*1000);
}
%>
</HTML>
遅くなりました。ありがとうございます。
やってみましたが、おもしろいですね。
ただ、1,2,3・・・と出るのではなく、1⇒2⇒3・・・と切り替わってほしいのですが。
他の件で使えそうなので、参考にさせていただきます。
No.1
- 回答日時:
掲示板の書き込みのような処理は、基本的に以下の流れ(画面遷移ベース)
で実行することが多いです。
書き込み画面 ⇒ 処理実行画面 ⇒ (実行終了画面) ⇒ 処理後に遷移したい画面
ここで重要なのは『処理実行画面』です。
この画面の基本構成は…
・処理実行部分(ここをJSPで記述する)
・処理中表示部分(HTMLでOK)
の2つになります。
処理が終了したら、表示を『処理終了』とするか、処理終了画面に遷移させればよいのです。
○%完了の表示は、処理実行部分のfor文の中でパーセンテージ計算をし、
out.print なり何なりで%の数値の部分だけを書き換えれば
良いかと思います。
大雑把ですが、こんなイメージで設計してみれば良いかと思いますよ。
早速の回答ありがとうございます。
実行画面(「実行中です・・・」)のHTMLを出力したあとで、処理を続ける、というのは可能なのでしょうか。(並行処理ということですよね)
処理が終わった後にHTMLを出力する、という一般的なものしか知らないもので・・・
JSPでは、HTML部分は先に表示され、JSPのタグのメソッド部分(この場合、繰り返し処理を実行するメソッド)は完了まで稼動を続けている、という解釈で合っているのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaプログラムからポップアッ...
-
数値の定数を付ける時
-
tryの終了
-
Tomcat高負荷時の設定について
-
switch文の中に、throws new Ex...
-
アコーディオンメニューをアン...
-
Javaでのデバッグコード削除
-
JavaScriptからJAVAクラスを呼...
-
Linux上でのTomcatのServletプ...
-
JAVAにおける画像のJPEG保存の...
-
Delphiのマルチスレッドの割り...
-
重たい処理のタイムアウト強制終了
-
C#のスレッド動作について
-
onBlurとonFocusの処理順序につ...
-
C#の処理をリアルタイムに表示...
-
ラベルの表示までが異常に遅い...
-
SwingUtilities.invokeLater(ne...
-
Javaアプリケーション実行の返...
-
VBScriptでPing
-
[Java] while(true)の意味
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
Javaでのデバッグコード削除
-
数値の定数を付ける時
-
Tomcat高負荷時の設定について
-
onBlurとonFocusの処理順序につ...
-
ExcelVBA で文字列の特定の文字...
-
JavaScriptからJAVAクラスを呼...
-
ラジオボタンの選択判定
-
アコーディオンメニューをアン...
-
ラベルの表示までが異常に遅い...
-
C#で別スレッドの終了を知りたい
-
WPF C#でF10のイベント取得方法...
-
JavaでVBのDOEVENTSと同様の処...
-
Javaプログラムからポップアッ...
-
Javaアプリケーション実行の返...
-
SwingUtilities.invokeLater(ne...
-
処理実行後、終了させないで最...
-
[Java] while(true)の意味
-
再度、スレッドが実行中かどう...
-
VBScriptでのWord印刷
おすすめ情報