A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
もう解決されているかもしれませんが。
(^^)ブラウザはダウンロードするのか表示するのかを、
拡張子だけで判断しているのでは決してないです。
一般的には下記のような感じで、
レスポンスに値を設定します。
これはJavaに限ったことではなく、
RFCの規約で決められていることで、
WEBならどの言語を使用しても同じです。
RFCについてはWEB上で日本語訳も、
出回っていますので、それを読んでみましょう。
//CSVをダウンロードするサンプル
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CsvServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {
PrintWriter out = response.getWriter();
//レスポンスヘッダーを設定
response.setContentType("application/octetstream; charset=MS932");
response.setHeader("Content-disposition","attachement; filename= sample.csv");
//CSVを出力
out.println("123456,あいうえお");
out.println("123456,あいうえお");
out.println("123456,あいうえお");
out.println("123456,あいうえお");
out.println("123456,あいうえお");
out = null;
}
}
No.1
- 回答日時:
"データをWeb上に表示させる"
ために使った検索ロジックの結果を
格納しているBeanからがあるので、
それからただCSVをつくればよいだけでは?
urlの最後が
http://www.hoge.co.jp?aa=xx&filename=file.xls
などのように.csvで終わってれば
windows環境ではブラウザの窓からエクセルが開いたり
するし。
http://www.hoge.co.jp?aa=xx&filename=file.dat
など、アプリケーションと関連付けされてないもの
であれば、ダウンロードするかどうかのダイアログが
でる。
IEはurlの最後が拡張子になっているもので
判断しているようなのでで
"データをWeb上に表示させる"機能を実現した画面上で
ダウンロードボタンを押下した時に
GETで自分自身に遷移させて、
urlの終わりが.datになるようにしておけば
ダウンロードにはず。
サーバ上でcsvのファイルを作るのはよくない。
同じファイルに毎回上書きするのは論外(排他制御の問題)
で、毎回異なるファイルもサーバにゴミがたまったり
してよくない(消しこみロジックについて考慮したり、うっとおしい。)
なので、
単純に結果を byte[]のなかにでも格納してしまって。
getServletOutputStream
とかそういうクラスで
はいてclose()すればよい。
後は↑に記載したようにurlに細工を施して
ください。
以上
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- 一眼レフカメラ 「Imaging Edgeに関する収集データの取扱い」について。何を収集するのですか? 1 2022/08/05 11:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csv出力について
-
JSPからパラメータを取得してサ...
-
yyyymmddからyyyy/mm/d...
-
ソケットを使ったサーバとクラ...
-
javaでCSVの中身から最大値を表...
-
テキストファイルから空白行をよむ
-
Javaのカウント方法について
-
javaで質問です。 文字列2023/2...
-
大量のデータを読み込んで表示...
-
ループ処理の際、最後だけ","を...
-
Javaで改行などが出来ないのです。
-
動的配列が存在(要素が有る)か...
-
ダブルクォーテーションのrepla...
-
substring バイト単位でやりたい
-
Javaでの改行コード
-
System.err. printlnとSystem.o...
-
VBAで配列の計算
-
C言語でunsigned char配列を連...
-
変数を動的に作るには?
-
switch分が機能しません。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
InputStream.read()でタイムア...
-
Java int sum = 0は必要ですか?
-
テキストファイルから空白行をよむ
-
csv出力について
-
[JAVA]エラーが解決できません。
-
Servletでテキストボックスに入...
-
Javaの質問です。テキストファ...
-
Javaでデータに登録する度にID...
-
ソケットを使ったサーバとクラ...
-
javaのfor文が機能してないみた...
-
java連結
-
ObjectInputStreamとStreamCorr...
-
テキストファイルにおいて任意...
-
Class.forNameでエラーになる
-
九九を横に表示する。
-
Javaの質問です。テキストファ...
-
javaでCSVの中身から最大値を表...
-
BufferedReaderでのエラー
おすすめ情報