Java/JSP输出文本文件

标签 java google-app-engine jsp

我需要在我的网站上提供一个“文本”文件,以便合作伙伴可以每天读取数据。我希望动态生成这个“文本”文件。我们的页面使用 JSP 和 Java Servlet

有没有办法动态生成一个文本文件,以便在用户访问我的 JSP 或 Java Servlet url 时动态下载?

我尝试过使用没有任何 html 的 JSP。它确实在页面上放置了一些文本,但我似乎无法在输出中包含换行符,因此我认为最好将其作为要下载的文件提供。

最佳答案

要生成一些文本并下载它,您可以使用如下内容:

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 );
    }

}

关于Java/JSP输出文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12485681/

相关文章:

java - SQL Server 将 nvarchar 值 '2018-10-03' 转换为数据类型 int 时出现异常失败

java - 在 Android 应用程序中从 Google 云存储读取文件

javascript - 在javascript中将某种格式的字符串转换为JSON

java - 如何避免 GoogleAppEngine DataStore 延迟?

java - IntelliJ IDEA 15 中的无限目录递归

java - Spring Boot启动时加载数据到Ehcache 3

java - 异常发生后如何在 java 中重新生成 thrift 服务器?

google-app-engine - Jetty 无法在 appengine flexible 中启动 spring boot 应用程序

python - 从 Google App Engine 访问 Xero

java - 如何将多个模型属性添加到一个模型属性中?