- PR -

処理済み(経過)件数を画面へ表示する方法

1
投稿者投稿内容
hide
常連さん
会議室デビュー日: 2003/01/15
投稿数: 20
投稿日時: 2005-05-20 14:58
いつもお世話になっています。
servletないでDB更新中にその処理済件数をJSPに渡して表示したいのですが、
何かよい方法はないでしょうか?処理済件数については既に取得できています。
今悩んでいるのは更新処理のループ処理中にどのようにしてJSPへフォワード
してやればよいのか?ということです。
hiro
常連さん
会議室デビュー日: 2005/03/10
投稿数: 32
投稿日時: 2005-05-20 15:49
サーバから実行途中の結果をJSP(クライアント)に渡したいと言う事でしょうか?

結論から言うと無理です。
サーバ発の動作はWEBアプリケーションではできません。
リクエストもないのにどこに結果を返していいかサーバは知りません

クライアント(ブラウザ)から取得するような機構が必要です。

サーバに絶えずリクエストを発行するのでサーバの負荷がかかりすぎるので、お勧めはできませんが、今思いつくものでしたら
実行途中結果をサーバ内のファイル(スナップショット)(セッションで区別できるような)に書き込む。
ファイルはHTML形式で用意しておき、ファイルがなくなれば処理終了となる

クライアント(ブラウザ)からは数ミリ秒間隔でサーバにスナップショットファイルの問い合わせをする。

のような処理が必要になると思います。


hide
常連さん
会議室デビュー日: 2003/01/15
投稿数: 20
投稿日時: 2005-05-20 16:00
hiroさんどうも有難うございました。
私もなんとなく無理な気はしていたのですが、いまいち確信が持てませんでした。
おかげさまで、この方法ではできないということがわかりました。
hiroさんに教えていただいた方法でやってみたいと思います。
itkmh
会議室デビュー日: 2005/04/06
投稿数: 7
お住まい・勤務地: 東京都
投稿日時: 2005-05-20 16:04
件数を取得した時点で下記のようなJSPにForwardして表示を行い
そのJSPから実際のデータ取得処理を行うURLへリクエストを発行するのはどうでしょうか?

<html>
<head>
<meta http-equiv="Refresh" content="0;URL=http://hoge.com/app/serch">
</head>
<body>
100件取得しました
</body>
</html>
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-05-20 16:28
処理を別スレッドで行うように工夫すればできないことはありません。
ちょっと手間がかかりますが。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7110&forum=12
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-05-20 21:32
JMSかMessageDrivenBeanを利用しましょう。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-05-21 01:21
今流行のAjaxはどうですか?
DHTML/JavaScriptでゴリゴリ記述します。
XMLHttpを使用して、サーバに処理済件数を指定の間隔で取得し、
コンプリートのメッセージを取得すれば、
完了済みのページに遷移するということもできますね。
hide
常連さん
会議室デビュー日: 2003/01/15
投稿数: 20
投稿日時: 2005-05-21 01:27
itkmhさん、インギさん、Anthyhimeさん、かつのりさんどうも貴重なご意見ありがとうございます。
色々な方法があるものですね。
参考にさせていただきます。
1

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