Как получить результат JSP в методе Java? - PullRequest
1 голос
/ 09 января 2012

Я работаю над веб-порталом ресторана, который будет периодически отправлять зарегистрированным пользователям электронные письма, такие как изменения в меню, скидки и предложения, пожелания ко дню рождения и т. Д.

Вот как я это делаю-

  1. Я создаю страницу JSP с форматированием HTML. Эта страница принимает определенные параметры, которые будут настраивать страницу.
  2. MailDaemon сканирует БД и при определенном триггере отправит запрос GET в JSP.
  3. Возвращенный JSP представляет конечный почтовый контент, который затем отправляется с использованием JavaMail API.

У меня такие вопросы -

  1. Мне действительно нужно сделать запрос GET? Или я могу получить результат JSP непосредственно в своем классе Daemon?
  2. Есть ли у моего подхода какие-либо недостатки? Любые лучшие решения (с точки зрения архитектуры)
  3. Есть ли другие шаблонные решения для работы?

Ответы [ 2 ]

2 голосов
/ 09 января 2012
  1. Можно буферизовать ответ от вашего JSP, используя javax.servlet.RequestDispatcher#include, обернув исходный ответ в javax.servlet.ServletResponseWrapper (в случае, если ваш MailDaemon является сервлетом)
  2. Ваш подход в порядке. Хотя будет проще использовать другой шаблонизатор.
  3. Скорость Apache или FreeMarker . Эти два не привязаны к сети, поэтому вы можете легко использовать их без контейнера сервлета.
1 голос
/ 09 января 2012

Если я правильно понимаю, вы используете JSP в качестве движка шаблонов для генерации тела письма в формате HTML. Если вы хотите продолжать использовать JSP для этого, я не думаю, что есть лучшее решение, чем выполнение запроса GET для получения сгенерированного HTML.

Но вы также можете использовать встраиваемый шаблонизатор, такой как Velocity или FreeMarker , для генерации HTML-кода в строку непосредственно из почтового демона.

...