我需要使用 Servlet 和 jsp 创建报告。我的问题是,有一个页面列出了以前生成的报告。可以单击列表中的任何此报告并再次查看该报告。为此,我必须在服务器上保留由 jsp 呈现的静态 html 文件。我怎样才能得到这个。我不想渲染 jsp 文件两次,因为这很耗时。
提前致谢。
基本上,您应该将 HTTP 响应对象的主体写入网络服务器上的文件,并编写某种服务/servlet 来检索这些文件。我想最简单的方法是编写一个 ServletFilter 来拦截 JSP 的响应。
当前的 Oracle Java EE 6 教程关于过滤器的内容相当简短,但您可以在之前的版本中阅读所有相关信息:http: //docs.oracle.com/javaee/5/tutorial/doc/bnagb.html
您可以通过添加过滤器来缓存报告。过滤器可以检查已经渲染的版本是否可用并返回该文件的内容。如果不存在文件,它可以将结果响应写入缓存。