dポイントプレゼントキャンペーン実施中!

CSVファイルのダウンロード時に、パラメータ(Getメソッドで渡される
CGI引数(QUERY_STRING環境変数の中身))を、
Javaサーブレット(doGetメソッド内)内で、以下のようにして
  ↓
final ResultSetMetaData meta = rs.getMetaData();
response.setContentType("application/octet-stream;charset=utf-16le");

final StringBuffer sbUrl = new StringBuffer();
sbUrl.append("KYOIKU.csv");
sbUrl.append("?").append("20101029162359");

response.setHeader("Content-Disposition", "attachment; filename="
+ sbUrl.toString());

out = response.getWriter();

として実行してみたところ、
半角の?(クエスチョンマーク)が、
半角の_(アンダーバー)に変換されて、
テキストファイルとして出力されています。
(KYOIKU.csv_20101029162359)

イメージとしては、doGetメソッドからのCSVファイルダウンロード時に、
URLとして、
http://hogehoge.co.jp/KYOIKU.csv?20101029162359
として、セット後に実行したいと思っております。


そこでご質問内容なのですが、
ネットで調べていて、先程たまたま、
「URLの末尾にユニークな捨て文字を付加するという手法」として、
「ダウンロードするファイルを、キャッシュにあるファイルとは別物だとIE
 に思わせれば、結果的に目的を果たせます。
   ↓
 (目的とは、CSVファイルのダウンロード時に直接[開く]を押下した場合に、
  余計な→[1]文字列が自動的にExcelファイル名として追加されなくなること)」
という記事をたまたま見つけました。

それを試す為に、
「URLの?文字、およびそれ以降の文字列」を、
どのようにすれば、セットできるのか?
その方法を教えてください。

お世話になります。
宜しくお願い致します。

A 回答 (1件)

もしかして勘違いなされてるかもしれません。


「URLの?文字、およびそれ以降の文字列」は、
「クエリ情報」と呼ばれています。

「クエリ情報」とは、
URLの末尾の「~?」以降に、
「キー名=値」で追加される簡易情報です。

パス本体とクエリ情報は、
「?」(半角のクエスチョン文字)で区切っていて、
複数のキーがある場合には「&」(半角のアンド文字)で
連結します。

たとえば、
<form>タグでGETオプションを指定した場合などに、
フォームに入力されたデータが、
すべてクエリ情報としてサーバに送信されますよ。

この回答への補足

「hohoemikun」様

お世話になります。
ご回答ありがとうございます。

今回ご回答いただきました内容を見たところ、
「フォームに入力されたデータが、
 すべてクエリ情報としてサーバに送信される」
とのことでしたが、
これを、
Javaサーブレット(doGetメソッド)内から、
直接「クエリ情報」をセットしてサーバへ送信する方法が
もしございましたら教えてください。

「hohoemikun」様をはじめ、
もしご存知の方がいらっしゃいましたら、
ぜひ教えてください。

以上、宜しくお願い致します。

補足日時:2010/11/04 11:38
    • good
    • 0
この回答へのお礼

「hohoemikun」様

ご回答ありがとうございました。

お礼日時:2010/11/05 23:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!