我如何将JSP输出的整个内容通过电子邮件发送为HTML电子邮件附件

时间:2010-03-22 20:01:40

标签: jsp email

我如何将JSP页面输出的整个内容通过电子邮件发送为HTML或PDF电子邮件附件?

2 个答案:

答案 0 :(得分:2)

如果请求是idempotent(例如GET个请求),那么只需使用java.net.URL获取InputStream JSP输出。 E.g。

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

如果请求不是幂等的(例如POST个请求),那么您需要创建一个Filter wraps ServletResponse write()的自定义实现已覆盖五个{{1}}方法的PrintWriter,其中您将输出复制到存储在会话中的某个缓冲区/构建器或本地磁盘文件系统上的临时文件夹中,以便随后可以在后续访问要求。我可以在here之前发布的答案中找到代码示例。

要将其作为电子邮件发送,请使用JavaMail API或更方便的Apache Commons Email。代码示例可以在他们的文档/指南/ FAQ中找到。

如果您想首先将HTML转换为PDF,请查看XhtmlRenderer。可以找到代码示例here

答案 1 :(得分:1)

您可以先使用javascript获取html源代码。

var source = document.getElementsByTagName('html')[0].innerHTML

然后,您可以将此源存储在隐藏字段中,并在用户单击提交按钮时将其发送。如果你想在页面加载时使用ajax发送源代码。

为了确保您获得完整的html源,请确保在页面加载之前获取它。