昨日うまく変数が渡せていなかったのは、" できちんと囲ってなかったせいでした。ちゃんちゃん。

ちなみにサーブレットをCSVに返信させる魔法のコードはこれ。

response.setContentType("application/octet-stream;charset=Shift_JIS");

response.setHeader("Content-Dispsition","attachment;filename=hoge.csv");

なあんにも考えず、この2行をサーブレットの頭に付けたらできます。いやっほい♪

しかし問題発生。サーバー経由でクライアントからダウンロードしようとしたら、エラー。

「Internet Explorerではドメイン名-ファイル名をダウンロードできません。このインターネットのサイトを開くことができませんでした。要求されたサイトが使用できないか、見つけることができません。後でやり直して下さい。」

…後でやり直しても自分でコード何とかしないとダウンロードできないわけで。

スタンドアロンだと問題なくダウンロード出来たから、どうやらサーバーとクライアント間の通信に原因がありそう。

そう、このシステム、SSL通信使ってるんだ…!

こんなときは、さっきのコードの下に以下の2行を追加。

response.setHeader("Pragma","public");
response.setHeader("Catch-Control","public");

これで無事クライアントからもダウンロードできました。

最近問題がサクサク解決していくので、愉快。