- PR -

サーブレットで画像を配信(?)したい

投稿者投稿内容
ぽち
常連さん
会議室デビュー日: 2005/05/24
投稿数: 25
投稿日時: 2005-05-24 12:06
javaが解ってないのか、サーブレットが解ってないのか、
それ以前にWEBアプリが解ってないのか・・・
といった状況なので、ネットで色々検索してみましたが上手くヒットせず、
ここで相談させていただくことにしました。(無関係の話題だったならすみません)

クライアントからWEBサーバに対しある条件を入力すると、
サーブレットでその条件にあった画像・それを表示するHTMLを作成し、
クライアントで条件にあった画像が見られるというものを作りたいと思っています。

現在、第一ステップとして、サーブレットで固定の画像(画像ができたと仮定)を
表示するHTMLを作成し、クライアントで表示することはできました。
しかし、画像へのリンクがサーバ内の画像となっているので、
画像をクライアントのTMPフォルダに配信(?)して、それをリンクするように
させたいのですが、配信方法がわかりません。

ご存知の方、いらっしゃいましたらアドバイスお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-05-24 12:50
TMP フォルダなどにコピーするのはブラウザがたまたまそういうキャッシュの動作をするだけで、サーバ側で指定しているのではありません。
サーバ側から具体的にローカルのどのようなパスにキャッシュが保持されるかなど知る術はありませんので、そこへリンクを張ることはできません。

要件からは、なぜローカルに画像ファイルを配置しなくてはならないのかいまいち見えてこないのですが、具体的に何を行いたいのでしょうか?
検索して、画像を表示、というだけだならば「画像へのリンクがサーバ内の画像」でも良いかと思います。
ぽち
常連さん
会議室デビュー日: 2005/05/24
投稿数: 25
投稿日時: 2005-05-24 13:59
インギさん、レスありがとうございます。

>サーバ側から具体的にローカルのどのようなパスにキャッシュが保持されるかなど知る術は
>ありませんので、そこへリンクを張ることはできません。
そうなんですか。

>要件からは、なぜローカルに画像ファイルを配置しなくてはならないのかいまいち見えて
>こないのですが、具体的に何を行いたいのでしょうか?
>検索して、画像を表示、というだけだならば「画像へのリンクがサーバ内の画像」でも
>良いかと思います。
不特定多数のクライアントからのアクセスがあり、またクライアントで指定される条件も
様々(サーブレットで作成する画像も様々)なので、あまりサーバ側に画像を持ちたくない
ような気がした(根拠なし)ので、作成した画像をクライアントに渡しちゃおうかなと
思いました。
MARU
常連さん
会議室デビュー日: 2005/02/16
投稿数: 35
投稿日時: 2005-05-24 14:24
引用:

不特定多数のクライアントからのアクセスがあり、またクライアントで指定される条件も
様々(サーブレットで作成する画像も様々)なので、あまりサーバ側に画像を持ちたくない
ような気がした(根拠なし)ので、作成した画像をクライアントに渡しちゃおうかなと
思いました。



IISかApachでWeb公開している場所に、各ユーザを識別出来る名前で
(セッションIDが適当ですかね?)フォルダを作成しておき、
ユーザの閲覧が終わってセッションが切れたら、作成したフォルダを削除する。

これならサーバー側に画像が残る事もないとおもいますので
問題ないと思いますがいかがでしょうか?

どうしてもクライアント側に画像を転送したいのであれば、ActiveXの利用等が必要になってきます。
少なくともJavaだけでは出来ません。
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2005-05-24 14:44
対応ブラウザが限られてしまいますが、mht ファイルならサーブレットで生成できるのではないでしょうか。

参考:
http://www.atmarkit.co.jp/fwin2k/win2ktips/104ie_pgarc/104ie_pgarc_02.html
ぽち
常連さん
会議室デビュー日: 2005/05/24
投稿数: 25
投稿日時: 2005-05-24 15:04
MARUさん、びしばしさん、レスありがとうございます。

セッションについて少々検索してみました。
なんか使えそうですね。(未だ、さっぱり理解できてませんが)
だたこれだと、セッションが切れた->フォルダ削除を行う
常駐プログラムが別途必要になるということでしょうかね?
まだ、そこまで調べきれていませんが、セッション管理について
検索するといっぱい情報が出てくるので、何か解決の糸口を
見つけられそうです。

mhtファイルは、ブラウザが限られるのがちょっといただけないような・・・
でも、個人的に利用するには便利そうですね。
okutin
ベテラン
会議室デビュー日: 2003/12/11
投稿数: 98
お住まい・勤務地: 広島
投稿日時: 2005-05-24 15:04
サーブレットに画像の転送もさせるのも手ですね。

HTML用サーブレットと画像用サーブレットを別に用意しておいて
(別ではなくても良いですが)
HTML用サーブレットは以下のようなHTMLを返せば良いと思います。
<img src="/servlet/画像用サーブレット">

画像用サーブレットはその場で画像を生成してメモリ上に置いたまま転送するもよし、
ファイルシステム上に生成された画像ファイルを転送後、ファイルの削除処理までするもよし。

分かりやすいよう微妙に訂正。

[ メッセージ編集済み 編集者: okutin 編集日時 2005-05-24 15:11 ]
MARU
常連さん
会議室デビュー日: 2005/02/16
投稿数: 35
投稿日時: 2005-05-24 15:15
引用:

だたこれだと、セッションが切れた->フォルダ削除を行う
常駐プログラムが別途必要になるということでしょうかね?


HttpSessionListenerという仕組みがありまして、それを利用すれば簡単に実装することが出来ます。

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