- PR -

HTMLファイルを作成し、ダウンロードしたいのですが

1
投稿者投稿内容
トロ
会議室デビュー日: 2005/01/23
投稿数: 10
投稿日時: 2005-02-03 17:47
いつも参考にさせていただいています。
早速ですが、質問です。

Webシステムで、下記のような処理を作りたいと思います。
1.ユーザがダウンロードボタンを押す
2.DBよりそのユーザのデータを取得する
3.取得したデータをHTMLファイルとしてダウンロード処理を行う

この3番の処理をどのように構築すれば分からないので、
参考になりそうなサイト等をご教示ください。
できれば、HTMLファイルは実ファイルとしては作成したくありません。

ネットを探していたら
org.w3c.dom.html.HTMLDocument
なるものを見つけましたが、使用方法などが全く分からず今だ解読中です。
ダウンロード処理自体は、
javax.servlet.ServletOutputStream
を使用すればいいのかな?って位で、これもまた調査中です。

JavaもWebもまだ始めたばかりな私ですが、よろしくお願いします。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2005-02-03 17:54
ボタンを押したら、ファイル名を画面表示させてそのリンク先サーバの所定のファイルに対応づければ
できます。
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2005-02-03 18:21
引用:

3.取得したデータをHTMLファイルとしてダウンロード処理を行う

この3番の処理をどのように構築すれば分からないので、
参考になりそうなサイト等をご教示ください。
できれば、HTMLファイルは実ファイルとしては作成したくありません。

ネットを探していたら
org.w3c.dom.html.HTMLDocument
なるものを見つけましたが、使用方法などが全く分からず今だ解読中です。
ダウンロード処理自体は、
javax.servlet.ServletOutputStream
を使用すればいいのかな?って位で、これもまた調査中です。



HttpServletResponseからgetWriterして、そこにHTMLデータを流し込んであげてください。

http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/http/HttpServletResponse.html

ただ、普通に返すとブラウザに表示されてしまうと思いますので、それは適当に回避してあげてください。
#ブラウザは自分の知っている形式だと分かると、その形式に応じた反応をします。知らない形式だと判断したらダウンロードするはずです。

多分、この辺りの話が参考になると思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5606&forum=12
トロ
会議室デビュー日: 2005/01/23
投稿数: 10
投稿日時: 2005-02-08 01:27
返事が遅れてすいません。
インフルエンザで寝込んでいました。。。

HttpServletResponseのgetWriter()を使用する方法で明日やってみます。
HTML部分はStringBufferにセットする方法が一番簡単なので、
それでいこうかと思っています。
(というより、その方法しか分かりませんでした)

もし分からない事があったら質問するかもしれません。
その時はよろしくお願いします。
トロ
会議室デビュー日: 2005/01/23
投稿数: 10
投稿日時: 2005-02-23 02:19
今更なんですが…。

WindowsXP SP2で「ファイルのダウンロード」ダイアログで開くボタンを押した時、元のウィンドウにHTMLファイルが表示されるという現象が発生してしまいました。
WinXP SP1やWin2000では、別ウィンドウが開きHTMLファイルが表示されます。
「ショートカットを起動するためにウィンドウを再使用する」をOnOff切り替えてもWinXP SP2では、別ウィンドウが開きません。
(WinXP SP1では、これで回避出来ました)

WinXP SP2で別ウィンドウを開く方法をご存知ないでしょうか?
もしくは、ダイアログの「開く」ボタンを無効にする方法はご存知ないでしょうか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-02-23 07:14
>ただ、普通に返すとブラウザに表示されてしまうと思いますので、それは適当に回避してあげてください。
というサジェスチョンに対して現在どのような実装をしているのでしょうか?
その点を明らかにした方が対応方法が出やすいと思います。
トロ
会議室デビュー日: 2005/01/23
投稿数: 10
投稿日時: 2005-02-23 12:35
コード:
res.setContentType( "text/html" ); 
res.setHeader("Content-Disposition","attachment; filename=\"aaa.html\"" );


とやっています。
でもダウンロードダイアログの表示はしているし、
「保存」ボタンを押した時にはちゃんとHTMLファイルを保存出来ます。
「開く」ボタンを押した時だけ、期待する動きと違うだけなんです。

そんなわけでもしかして
「ショートカットを起動するためにウィンドウを再使用する」
に関するWinXP SP2のバグ?なんて思ってしまっているんですが…。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-02-23 14:29
バグ、というよりは、仕様、なだけの話かもしれません。
送られてきたレスポンスをどのウィンドウで表示するかは恐らく RFC で決められているわけでもなくブラウザに依存する話ですから。
FirefoxやOpera,Safari などではまた違う動きをするかもしれませんし、それらが特におかしいということもないでしょう。
ひとまず当初の目的は達成できたようですし、焦点を明確にする意味でも別のスレッドにしてみてはいかがでしょうか?
Java に限った話ではないと思いますのでこちら↓の方が活発に議論が進むかもしれません。
http://www.atmarkit.co.jp/bbs/phpBB/viewforum.php?forum=28
1

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