今回は、「サーブレットを使った添付ファイルの扱い(1)―ファイルのダウンロード―」です。
 今回から、添付ファイルの扱いについて見ていきます。
 まずは、基本的なファイルのダウンロード方法について、見てみましょう。
■動画はこちら
■動画で使用しているソースコード
SQLのWHEREの条件にNULLを使う(IS NULLの場合)
サーブレット(Sv11.java)
| 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 | package yurufuwa.prog.sample; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import jakarta.servlet.ServletException; import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public class Sv11 extends HttpServlet {    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {       //CSVのMIMEタイプを設定       resp.setContentType("text/csv");       //ダウンロードの指定       resp.setHeader("Content-Disposition","attachment");       //CSVデータを出力ストリームに書き込み       try(ServletOutputStream sos = resp.getOutputStream();           OutputStreamWriter osw = new OutputStreamWriter(sos,"UTF-8");           BufferedWriter bw = new BufferedWriter(osw);){          bw.write("01,北海道");          bw.newLine();          bw.write("02,青森県");          bw.newLine();          bw.write("03,岩手県");          bw.newLine();          bw.flush();       }    } } | 
サーブレット(Sv12.java)
| 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 | package yurufuwa.prog.sample; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.URLEncoder; import jakarta.servlet.ServletException; import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public class Sv12 extends HttpServlet {    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {       //CSVのMIMEタイプを設定       resp.setContentType("text/csv");       //ダウンロードの指定(ファイル名付き)       resp.setHeader(          "Content-Disposition",          "attachment;filename=\"" + URLEncoder.encode("都道府県一覧.csv", "UTF-8") + "\""       );       //CSVデータを出力ストリームに書き込み       try(ServletOutputStream sos = resp.getOutputStream();           OutputStreamWriter osw = new OutputStreamWriter(sos,"UTF-8");           BufferedWriter bw = new BufferedWriter(osw);){          bw.write("01,北海道");          bw.newLine();          bw.write("02,青森県");          bw.newLine();          bw.write("03,岩手県");          bw.newLine();          bw.flush();       }    } } | 
web.xml
| 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 | <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" id="WebApp_ID" version="5.0">   <display-name>testWeb</display-name>   <servlet>     <description></description>     <display-name>Sv11</display-name>     <servlet-name>Sv11</servlet-name>     <servlet-class>yurufuwa.prog.sample.Sv11</servlet-class>   </servlet>   <servlet>     <description></description>     <display-name>Sv12</display-name>     <servlet-name>Sv12</servlet-name>     <servlet-class>yurufuwa.prog.sample.Sv12</servlet-class>   </servlet>   <servlet-mapping>     <servlet-name>Sv11</servlet-name>     <url-pattern>/sv11</url-pattern>   </servlet-mapping>   <servlet-mapping>     <servlet-name>Sv12</servlet-name>     <url-pattern>/sv12</url-pattern>   </servlet-mapping> </web-app> | 












