Java 如何将已填充的JSP写入文件系统?

Java 如何将已填充的JSP写入文件系统?,java,jsp,file-io,Java,Jsp,File Io,我有一个遗留系统,需要在“批处理”过程中生成大量报告。我想使用一些JSP模板(即“header.JSP”、可变数量的“body.JSP”和“footer.JSP”)来构建一个可以在以后查看的静态HTML文件。在Java中,我想: 打开一个HTML文件进行编写 将header.jsp的输出(填充有数据)写入文件 对于批次中的每个报告: 填充模板使用的变量 将body.jsp的输出(用数据填充)写入文件 将footer.jsp的输出写入文件 关闭文件以进行写入 我知道如何在屏幕上显示的JSP

我有一个遗留系统,需要在“批处理”过程中生成大量报告。我想使用一些JSP模板(即“header.JSP”、可变数量的“body.JSP”和“footer.JSP”)来构建一个可以在以后查看的静态HTML文件。在Java中,我想:

  • 打开一个HTML文件进行编写
  • header.jsp的输出(填充有数据)写入文件
  • 对于批次中的每个报告:
    • 填充模板使用的变量
    • body.jsp的输出(用数据填充)写入文件
  • footer.jsp的输出写入文件
  • 关闭文件以进行写入

我知道如何在屏幕上显示的JSP中实现这一点(我只需要一个父JSP,它本身是由“includes”构建的),但问题是:如何捕获JSP输出并将其写入文件系统中的文件?

为什么是JSP?它需要一个正在运行的servlet容器。为什么不是另一个模板引擎?例如Thymeleaf、FreeMarker、Groovy、Jade4j,仅提及其主要功能。它是现有servlet应用程序(Struts 1!)的一部分,我已经准备好JSP,因为这些报告也可以一次查看一个。我希望为这个批处理过程重复使用尽可能多的代码。我会接受一个使用Thymeleaf或其他东西的答案,如果这是一个更简单或更干净的方法。为了尽可能重复使用代码,只需让你的批处理程序使用HTTP连接调用webapp。这不是一个坏主意!不过,我还是希望得到对这个问题的答案。我猜这类似于触发JSP并将其输出捕获为流,可以将其写入文件。