- PR -

JavaプログラムからのHTML出力について

1
投稿者投稿内容
やまん
会議室デビュー日: 2005/10/17
投稿数: 2
投稿日時: 2005-10-17 16:15
初めて質問させていただきます。

下記の環境でシステムを開発しておりますが、表題の処理が実現できず悩んでおります。
・Java 1.5.0_05
・Apache 2.0.54
・Tomcat 5.5
・MySQL5.0
※エディタはEclipse3.1.0を使用しています。

処理内容は以下の通りです。
1.静的なHTMLよりSUBMITし、JSPを呼び出します。
2.「1.」において呼び出されたJSPにおいて、useBeanよりJavaプログラム(サーブレット)を呼び出します。
3.「2.」より呼び出されたJavaプログラム(サーブレット)のメソッド内でDBにアクセスし、データを取得します。
4.「3.」のメソッド終了後、取得したデータを「2.」のJSP上で表示します。

そこで、質問なのですが、上記の処理の「3.」において、Javaプログラム(サーブレット)で処理を行っておりますが、この処理時間が非常に長い為、その間、画面(ブラウザ)に「処理実行中・・・」というような文字を表示しておき、処理終了後は、「4.」の処理が実行されるようにしたいのですが、どうして良いかがわかりません。

色々と調査をしてみた所、document.writeを用いてHTML出力する方法などを見つけたのですが、Javaプログラム内で「document.write」を用いてHTMLをすることができませんでしたので、実現できませんでした。
上記のような方法以外でも結構ですので、処理中は「処理実行中・・・」という文字列を表示するようなことはできませんでしょうか?

宜しくお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-10-17 16:34
document.write は Java ではなくて JavaScript 内に記述するものですね。
両者は名前は似ていますが、違う物です。
サーブレット内で処理中にレスポンスを返したいのであれば ServletOutputStream 等に書き出して、flush することでしょうか。
レスポンスを返し終わらないうちに html をレンダーしてくれるかどうかはブラウザに依存しますが。
似たような話題も過去にいくつかありました。
こんなの↓参考になるかもしれません。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7110&forum=12
やまん
会議室デビュー日: 2005/10/17
投稿数: 2
投稿日時: 2005-10-18 12:02
インギさん、早速のご回答、ありがとうございます!
やっぱりスレッドを使用するんですね。ちゃんと勉強しないといけませんね。

一度、ご教授いただいたページのプログラムを検証してみます。

ありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)