Webサイトからテキストファイルをダウンロードするサーブレットコード– Java
以下は、Webサイトからテキストファイルをダウンロードするサーブレットコードの例です。
例えば
「testing.txt」という名前のテキストファイルを考えてみましょう。ユーザーにURL(「http:// localhost:8080 / servlet / DownloadDemo」など)でダウンロードさせたいとします。
1. 「testing.txt」という名前のテキストファイルを作成し、プロジェクトルートフォルダーに配置します。
\--servlet (project root folder)
\--testing.txt (download file here)
\--WEB-INF
\--web.xml
2. サーブレットコード
package com.example;
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();
}
}
Note
Webアプリケーションのルートを表すスラッシュ(「/」)を使用した「getResourceAsStream()」メソッド。
3. Webデプロイメント記述子
serlvetdemo ServletName com.example.ServletDownloadDemo ServletName /DownloadDemo
4. コンパイルしてTomcatフォルダーにコピーします
\--Tomcat
\--webapps
\--servlet
\-- testing.txt (download file)
\--WEB-INF
\--web.xml
\--classes
\--com
\--example
\--ServletDownloadDemo.class
4. 完了し、URLhttp://localhost:8080/servlet/DownloadDemoにアクセスすると、テキストファイルを自動的にダウンロードするようにユーザーに求められます。
Note
このfile download example in Struts 1.xに興味があるかもしれません