我需要制作一个"文本"我的网站上提供了文件,以便合作伙伴可以每天读取数据。我喜欢这个" text"要动态生成的文件。我们为页面使用JSP和Java Servlet
当用户访问我的JSP或Java Servlet网址时,有没有办法动态生成文本文件以供下载?
我尝试过使用没有任何html的JSP。它确实在页面上放了一些文字,但我似乎不能在输出中包含换行符,所以我认为将其作为要下载的文件提供它可能会更好。
答案 0 :(得分: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 );
}
}