- ベストアンサー
CSVファイルをダウンロードする方法
- CSVファイルをダウンロードする方法について教えてください
- HttpServletResponseのgetOutputStream()を使用してCSVファイルをダウンロードする方法について教えてください
- ボタンをクリックして警告が表示され、CSVファイルのダウンロードまたは保存が選べるようにする方法について教えてください
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
値の受け渡しは、 サーブレット→サーブレット JSP→サーブレットは違います。 JSP→サーブレットの遷移は、 1.POSTもしくはGET 2.forward 3.redirect 4.include のどれでしょう? 1、3の場合は、パラメータで渡すことになります。 2、4の場合は、#2の方法でできます。
その他の回答 (2)
>1、サーブレット側にString値を 受け渡したい。 とは、サーブレットからサーブレットにStringを渡したいということでしょうか? それならば、ServletRequest#setAttributeとServletRequest#getAttributeでいいんじゃないでしょうか。 >を変形してこのString値をダウンロード出来るようにしたい。 #1でも回答していますが、ServletResponse#getWriterを使えば、いちいちCSVファイルを生成しなくても文字列をそのままダウンロードできるはずです。
補足
ありがとうございます。 本当はjspからサーブレットだったのですが、 教えてもらった方法で何とかならないか 試してみます。 分からなかったらまたお願いします。
単純にStringを出力するだけなら、 ServletResponse#getWriterを使えばいいと思います。 詳しくはAPIリファレンスを参照下さい。
- 参考URL:
- http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletResponse.html#getWriter()
補足
ご解答ありがとうございました。 色々と試してみて、 サーブレットファイルの作成 およびjsp側からの連絡を 達成しました。 ボタンを押すとダウンロード するようになっています。 ただ、まだ分からない点が 2つほどありまして、質問させて 下さい。 1、サーブレット側にString値を 受け渡したい。 2、 BufferedInputStream bistream = new BufferedInputStream(new FileInputStream( getServletContext().getRealPath("ファイル名"))); を変形してこのString値をダウンロード出来るようにしたい。 問題は、ファイルを作成していない段階で ファイル名を指定しないといけないことです。 どうにかいい方法はないでしょうか? よろしくお願いします。m(__)m
補足
調べてみました。 includeはjspの中にテキストを埋め込む方法。 redirectはURLを一時的に書き換える方法。 forwardはディスパッチを行うメソッド。 そのときjspも呼び出される。(主語と目的語が逆) Post/Getはjsp間でのやり取りに使う ことが分かりました。 答えは1番でしょうか?? 採点のほう、よろしくお願いします。m(__)m