解説動画
日本語のファイル名を付けたいときって、結構ありますよね。
■動画はこちら
■Youtube版の解説で使用しているソースコード
動画と一緒にこちらも参考にどうぞ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.URLEncoder; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DownloadServlet2 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String dlFileName = "データ.csv"; //CSVのMIMEタイプを設定 resp.setContentType("text/csv"); //ダウンロード時のデフォルトファイル名を指定 resp.setHeader("Content-Disposition","attachment;filename=\"" + URLEncoder.encode(dlFileName, "UTF-8") + "\""); //CSVデータを書き込み ServletOutputStream sos = resp.getOutputStream(); //BOMをつける sos.write(0xef); sos.write(0xbb); sos.write(0xbf); OutputStreamWriter osw = new OutputStreamWriter(sos, "UTF-8"); BufferedWriter bw = new BufferedWriter(osw); bw.write("\"1\",\"北海道\"\r\n"); bw.write("\"2\",\"青森\"\r\n"); bw.write("\"3\",\"岩手\"\r\n"); bw.flush(); bw.close(); } } |