- PR -

サーブレットからのhtml画面操作

1
投稿者投稿内容
kouziii
会議室デビュー日: 2003/12/02
投稿数: 11
投稿日時: 2004-07-23 11:33
postされたリクエストを受けたサーブレットにて、呼び元のHTML画面にサーブレットの進行状況を表示するようなことはできるでしょうか?
画面が切り替わるような見た目にはならないようする方法はありますか?
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2004-07-23 12:03
Servletはあくまで、サーバー上で動作するものです。

ご所望のような動作を実現するためには、JavaScriptやAppletなど、
クライアント上で動作するものを利用するしかないですね。
kouziii
会議室デビュー日: 2003/12/02
投稿数: 11
投稿日時: 2004-07-23 13:27
回答ありがとうございます。
JavaScriptやAppletを使ってとありますが、もうすこし具体的に答えてくださるとたすかります。
JavaScriptとサーブレットもしくは、Appletとサーブレットならなら可能ということですか?
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2004-07-23 14:34
紛らわしかったですか。すみません。

さて、私が書いたのは、サーバー上で動作するものと、
クライアント上で動作するものは区別しなければならないということです。
これについては、HTTPプロトコルの仕組みや、Servletのことを勉強してください。

で、改めてご所望の件は、「HTTPプロトコルを使用して」という前提であれば、不可能です。
HTTPプロトコルを使用しないとなると、まったく別次元の話になりますし、
もう少し、スキルを上げてから挑戦されてはいかがでしょうか。
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2004-07-23 17:35
Servletは「リクエストを受け取ってレスポンスを返す」のが仕事なので、
Servletがリクエストを受け取ってからレスポンスを返すまでの間に
他の仕事をさせるのは基本的には無理なので、クライアント(ブラウザ)に
仕事をさせるしかない、ということだと思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=10088
上記のスレッドが似た話題で解決しているようなのですが、
.NETに関する知識がないためJavaに応用できるかは分かりません。すみません。

ご参考までに、JavaScriptで1秒おきにイメージを次々と切り替えるサンプルを挙げます。
これは進行状況とは無関係なのですが、途中でページが切り替わるとそれっぽく見えます??
コード:
<html>
<header>
<SCRIPT language="javascript">
var count = 0;
var newsrc = "black.gif";
var waiting = false;
function startTimer(){
	waiting = true;
	window.setTimeout("wait()", 1000);
}
function stopTimer(){
	waiting = false;
}
function wait(){
	if(count>10) return;
	document.images["image_"+count].src = newsrc;
	window.setTimeout("wait()", 1000);
	count++;
}
</SCRIPT>
</header>
<body>
<form>
<input type="button" name="button_0" value="start" onclick="startTimer()">
<input type="button" name="button_1" value="stop" onclick="stopTimer()">
<BR>
<img name="image_0" src="white.gif">
<img name="image_1" src="white.gif">
<img name="image_2" src="white.gif">
<img name="image_3" src="white.gif">
<img name="image_4" src="white.gif">
<img name="image_5" src="white.gif">
<img name="image_6" src="white.gif">
<img name="image_7" src="white.gif">
<img name="image_8" src="white.gif">
<img name="image_9" src="white.gif">
<img name="image_10" src="white.gif">
</form>
</body>
</html>

永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-07-23 18:49
引用:

JavaScriptとサーブレットもしくは、Appletとサーブレットならなら可能ということですか?



JavaScriptを用いる方法ですと

引用:

画面が切り替わるような見た目にはならないようする方法はありますか?



という要件を単純に満たすのは難しいのではないかと思います。
フレームなり、インラインフレームなりを巧く使う必要がありそうです。
#やったことはないですが、切り替わる画面表示をフレームの中に押し込めばそれで出来そうな気はします

まあ、表示体裁(バッファリング含む)に関してはUA依存になってしまうのは仕方ないことですので、もしクライアント環境を限定できない状況で見た目にこだわらなければならないのでしたら、その上にAppletなりFlashなり、もう1枚被せてやるのがいいのではないかと思います。


[ メッセージ編集済み 編集者: 永井和彦 編集日時 2004-07-23 18:51 ]
kouziii
会議室デビュー日: 2003/12/02
投稿数: 11
投稿日時: 2004-07-26 18:03
★Edossonさん、回答ありがとうございます。
どうやら、Edossonの見解としては、無理とのことですね。残念ですが了解しました。
解る人に聞いてみます。
また、貴重な時間を勉強不足でかつ的はずれという少も無さを指摘するために使わせてしまったこと、問題の解決にならない無駄なお心遣いをさせてしまったことを心からお悔やみ申し上げます。

★taroさん、ありがとうございます。
早速実行してみました。画像が切り替わるのをタイマーで制御できるので、そのタイミングでサーブレットを起動し、
同じスクリプトを含むhtmlを出力したらできそうですね。でも画面がやぱりチカチカしそうです。

★永井さん、ありがとうございます。
フレームを使えばごまかせるかもしれませんね。実験してみます。
flashは無理そうなので、appletでも実験してみます。足がかりになりそうです。ありがとうございました。


1

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