如何在java方法中获取JSP的结果?

发布于 2024-12-25 10:44:21 字数 394 浏览 1 评论 0原文

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

这是我的做法 -

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

我的问题是:

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

I am working on a restaurant web portal which will send periodic emails to the registered users such as changes in menu, discounts and offers, birthday wishes etc.

Here is how I am doing it-

  1. I create a JSP page with the HTML formatting. This page accepts certain parameters that will customize the page.
  2. The MailDaemon scans the db and upon a certain trigger will make a GET request to the JSP.
  3. The returned JSP represents the final mail content which is then sent using the JavaMail API.

My questions are these -

  1. Do I really need to make a GET request? Or can I obtain the JSP result directly in my Daemon class?
  2. Does my approach have any drawbacks? Any better solutions (architecturally speaking)
  3. Any other templating solutions for the job?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

所有深爱都是秘密 2025-01-01 10:44:21
  1. 可以使用 javax.servlet.RequestDispatcher#include 通过将原始响应包装在 javax.servlet.ServletResponseWrapper (如果您的 MailDaemon 是一个 servlet)
  2. 您的方法没问题。尽管利用另一个模板引擎会更容易。
  3. Apache Velocity自由标记。这两个不与 Web 绑定,因此您无需 servlet 容器即可轻松使用它们。
  1. It's possible to buffer a response from your JSP using javax.servlet.RequestDispatcher#include by wrapping original response in javax.servlet.ServletResponseWrapper (in case your MailDaemon is a servlet)
  2. Your approach is OK. Though it'll be easier to leverage another templating engine.
  3. Apache Velocity or FreeMarker. These two are not tied to web, so you can easily use them without servlet container.
留蓝 2025-01-01 10:44:21

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

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

If I understand correctly, you're using the JSP as a templating engine to generate the body of an HTML email. If you want to keep using JSPs for that, I don't think there's a better solution than making a GET request to get the generated HTML.

But you could also use an embeddable templating engine like Velocity or FreeMarker to generate the HTML to a String, directly from the mail daemon.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文