A 回答 (2件)
- 最新から表示
- 回答順に表示
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に細工を施して
ください。
以上
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;
}
}
お探しの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ランキング
-
入力文字列が数字かどうかの判別
-
以下のJAVAプログラムでご質問...
-
java.lang.NoClassDefFoundErro...
-
equalsの逆
-
Java初心者です。csvファイルの...
-
yyyymmddからyyyy/mm/d...
-
JavamailでGmailのお気に入りフ...
-
InputStream.read()でタイムア...
-
javaでCSVの中身から最大値を表...
-
JSPからパラメータを取得してサ...
-
Javaの質問です。テキストファ...
-
java シンボルが見つかりません
-
ファイル読み込みで
-
Java int sum = 0は必要ですか?
-
java連結
-
Log4jで機能毎に別ファイルへ出...
-
このプログラミング誰か教えて...
-
C言語のポインターに関する警告
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
csv出力について
-
九九を横に表示する。
-
InputStream.read()でタイムア...
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
javaのfor文が機能してないみた...
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
以下のJAVAプログラムでご質問...
-
Class.forNameでエラーになる
-
ソケットを使ったサーバとクラ...
-
テキストファイルにおいて任意...
-
テキストファイルの任意の文字...
-
JAVAでエラーがでる。
-
Inputstreamについて
-
ObjectInputStreamとStreamCorr...
-
Windowsでの標準入力の終了の仕方
-
[JAVA]エラーが解決できません。
おすすめ情報