/*
* StreamDownloadExAction
* 2004/07/05
*/
package testcl01.struts.action;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
/**
* サンプル・データをtext/plain形式でresponseにそのまま出力し、
* Webブラウザにファイルの保存ダイアログを表示するタイプのダウンロード処理を行います。
* つまりダウンロード対象データをサーバのファイルシステム上に全く保持しません。
*/
public class StreamDownloadExAction extends Action {
/**
* リクエスト・パラメータを受け取り処理をします。
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
String defaultFileName = "download.txt";
//response.setContentType("text/plain; charset=Windows-31J");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + defaultFileName);
OutputStream os = response.getOutputStream();
OutputStreamWriter w = new OutputStreamWriter(os, "SJIS");
BufferedWriter writer = new BufferedWriter(w);
writer.write("This,is,a,sample,record,data\n");
writer.write("そして,日本語の,文字列も,出力してみます。\n");
writer.write("end.\n");
writer.close();
w.close();
os.close();
return null;
//return mapping.findForward("success");
}
}
|