如何将页面调用的内容保存到jsp / java中的文件中?

时间:2010-01-11 07:15:50

标签: java xml file jsp save

在jsp / java中,如何调用输出xml文件的页面并将其结果(xml类型)保存到服务器上的xml文件中。这两个文件(生成xml的文件和我们要保存/覆盖的文件)都存在于同一台服务器上。

基本上我想立即更新 test.xml ,方法是调用输出xml类型结果的 generate.jsp

谢谢。

3 个答案:

答案 0 :(得分:2)

  1. 注册一个过滤器,为您的回复添加包装器。也就是说,它会返回一个新的HttpServletResponse个对象,扩展原始的HttpServletResponse,并返回您的自定义OutputStreamPrintWriter,而不是原始的。{/ li >
  2. 您的OutputStreamPrintWriter会调用原始OutputStreamPrintWriter,但也会写入您的文件(使用新的FileOutputStream

答案 1 :(得分:2)

如果请求是幂等的,那么只需使用java.net.URL来获取JSP输出的InputStream。 E.g。

InputStream input = new URL("http://example.com/context/page.jsp").openStream();

如果请求不是幂等的,那么您需要使用自定义实现替换响应的PrintWriter,该实现将输出复制到某个缓冲区/构建器中。我之前在这里发布了一个代码示例:Capture generated dynamic content at server side

一旦输出,只需将通常的java.io方式写入磁盘,假设JSP已经是XHTML格式。

答案 2 :(得分:1)

为什么不使用像FreeMarker这样的真实模板引擎?那会更容易。