1

パートナーが毎日データを読み取れるように、サイトで「テキスト」ファイルを利用できるようにする必要があります。この「テキスト」ファイルを動的に生成したいと思います。ページには JSP と Java サーブレットを使用しています。

ユーザーが JSP または Java サーブレット URL にアクセスしたときにダウンロードされるテキスト ファイルを動的に生成する方法はありますか?

HTMLを含まないJSPを使用してみました。ページにテキストが表示されますが、出力に改行を含めることができないようですので、ダウンロードするファイルとして提供する方がよいと思います。

4

1 に答える 1

2

テキストを生成してダウンロードするには、次のようなものを使用できます。

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet( name = "TextOutputServlet", urlPatterns = { "/servlets/giveMeSomeText" } )
public class TextOutputServlet extends HttpServlet {

    protected void processRequest( HttpServletRequest request, HttpServletResponse response )
            throws ServletException, IOException {

        response.setContentType( "text/plain;charset=UTF-8" );
        response.setHeader( "Content-Disposition", "attachment;filename=MyTextFile.txt" );
        PrintWriter out = response.getWriter();

        try {

            out.println( "Some content..." );
            out.println( "Some more..." );

        } finally {            
            out.close();
        }

    }

    @Override
    protected void doGet( HttpServletRequest request, HttpServletResponse response )
            throws ServletException, IOException {
        processRequest( request, response );
    }

    @Override
    protected void doPost( HttpServletRequest request, HttpServletResponse response )
            throws ServletException, IOException {
        processRequest( request, response );
    }

}
于 2012-09-18T22:05:45.677 に答える