次に、Webサイトからテキストファイルをダウンロードするためのサーブレットのコード例を示します。

たとえば

たとえば、 “http://localhost:8080/servlet/DownloadDemo”のようにURLを使ってダウンロードするようにしたい場合、 “testing.txt”という名前のテキストファイルを作成します。

{空} 1。 “testing.txt”という名前のテキストファイルを作成し、プロジェクトのルートフォルダに配置します。

\--servlet (project root folder)
      \--testing.txt (download file here)
      \--WEB-INF
           \--web.xml

{空} 2。サーブレットコード

package com.mkyong;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDownloadDemo extends HttpServlet{

  private static final int BYTES__DOWNLOAD = 1024;

  public void doGet(HttpServletRequest request,
   HttpServletResponse response) throws IOException{
    response.setContentType("text/plain");
    response.setHeader("Content-Disposition",
                     "attachment;filename=downloadname.txt");
    ServletContext ctx = getServletContext();
    InputStream is = ctx.getResourceAsStream("/testing.txt");

    int read=0;
    byte[]bytes = new byte[BYTES__DOWNLOAD];
    OutputStream os = response.getOutputStream();

    while((read = is.read(bytes))!= -1){
        os.write(bytes, 0, read);
    }
    os.flush();
    os.close();
   }
}

{空} 3。 Webデプロイメント記述子

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app__2__4.xsd">

    <display-name>serlvetdemo</display-name>

    <servlet>
        <servlet-name>ServletName</servlet-name>
        <servlet-class>com.mkyong.ServletDownloadDemo</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>ServletName</servlet-name>
        <url-pattern>/DownloadDemo</url-pattern>
    </servlet-mapping>

</web-app>

{空} 4。それをコンパイルしてTomcatフォルダにコピーする

\--Tomcat
     \--webapps
          \--servlet
               \-- testing.txt (download file)
               \--WEB-INF
                    \--web.xml
                    \--classes
                         \--com
                              \--mkyong
                                   \--ServletDownloadDemo.class

  • Note ** このリンクに興味があります://java/how-to-download-file-from-website-java-jsp/[Struts 1.xのファイルダウンロードの例]

リンク://タグ/ダウンロードファイル/[ダウンロードファイル]リンク://タグ/サーブレット/[サーブレット]