【问题标题】:How to get the result of a JSP in a java method?如何在 java 方法中获取 JSP 的结果?
【发布时间】:2012-02-05 22:15:33
【问题描述】:

我正在开发一个餐厅门户网站,它将定期向注册用户发送电子邮件,例如菜单更改、折扣和优惠、生日祝福等。

这是我的做法-

  1. 我用 HTML 格式创建了一个 JSP 页面。此页面接受将自定义页面的某些参数。
  2. MailDaemon 扫描数据库,并在某个触发条件下向 JSP 发出 GET 请求。
  3. 返回的 JSP 代表最终的邮件内容,然后使用 JavaMail API 发送。

我的问题是这些 -

  1. 我真的需要发出 GET 请求吗?或者我可以直接在我的 Daemon 类中获取 JSP 结果吗?
  2. 我的方法有什么缺点吗?任何更好的解决方案(从架构上来说)
  3. 还有其他适合这项工作的模板解决方案吗?

【问题讨论】:

标签: email jsp jakarta-mail portal


【解决方案1】:
  1. 可以使用javax.servlet.RequestDispatcher#include 将原始响应包装在javax.servlet.ServletResponseWrapper 中来缓冲来自您的JSP 的响应(如果您的MailDaemon 是一个servlet)
  2. 您的方法没问题。虽然利用另一个模板引擎会更容易。
  3. Apache VelocityFreeMarker。这两个没有绑定到 web,所以你可以在没有 servlet 容器的情况下轻松使用它们。

【讨论】:

    【解决方案2】:

    如果我理解正确,您使用 JSP 作为模板引擎来生成 HTML 电子邮件的正文。如果你想继续使用 JSP,我认为没有比发出 GET 请求来获取生成的 HTML 更好的解决方案了。

    但您也可以使用可嵌入的模板引擎,如 VelocityFreeMarker,直接从邮件守护进程生成 HTML 到字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      相关资源
      最近更新 更多