
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
InputStream.read()でタイムア...
-
ProcessBuilderを使用して、対...
-
System.err. printlnとSystem.o...
-
VBSエラー"オブジェクト型の変...
-
変数を動的に作るには?
-
javaのコンパイルエラーについ...
-
パソコンキーボードで時分秒を...
-
JSPやサーブレットでSystem.out...
-
JavaScriptの変数をjavaのメソ...
-
「配列定数は、イニシャライザ...
-
javaです
-
jspでの二次元配列
-
JButton-背景の透明化
-
VBで作った乱数を一度も重複さ...
-
C#で、あるクラスのメンバーす...
-
int型のゼロ埋め
-
createImage()を使い コンパイル
-
プログラミングの問題です。大...
-
JavaFXでの表内のチェックボッ...
-
StrutsでJSPからListを受け取り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
csv出力について
-
yyyymmddからyyyy/mm/d...
-
テキストファイルから空白行をよむ
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
equalsの逆
-
戻り値を使用する呼出
-
JAVAでエラーがでる。
-
FileクラスのcanRead/canWrite...
-
Java 出席状況を表す文字列から...
-
Javaでデータに登録する度にID...
-
ファイルの読み飛ばしが出来ま...
-
九九を横に表示する。
-
javaのfor文が機能してないみた...
-
Javaの質問です。テキストファ...
-
Servletでテキストボックスに入...
-
java連結
-
java.lang.NoClassDefFoundErro...
-
拡張子の読み込み制限を設けた...
-
[JAVA]エラーが解決できません。
おすすめ情報