【问题标题】:How would I email the entire content of the JSP output as an HTML email attachment我如何将 JSP 输出的全部内容作为 HTML 电子邮件附件发送
【发布时间】:2010-03-22 20:01:40
【问题描述】:

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

【问题讨论】:

    标签: jsp email


    【解决方案1】:

    如果请求是idempotent(如GET请求是),那么只需使用java.net.URL即可获得JSP输出的InputStream。例如

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-06
        • 1970-01-01
        • 2012-06-25
        • 1970-01-01
        • 2011-04-20
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多