Какие варианты шаблонов HTML существуют в Java в качестве альтернативы выполнению вывода HTML из вашего кода сервлета? - PullRequest
5 голосов
/ 03 мая 2009

Учитывая следующий сервлет Hello World, как вы могли бы перенести вывод Hello World из кода сервлета и поместить его в какой-то формат HTML-шаблонов? Я хотел бы просто вызвать шаблон из сервлета и сделать так, чтобы он отображал переменные Java, на которые я ссылаюсь в шаблоне - возможно, ссылаясь на строку «Hello World» как переменную класса в классе SprogzServlet?

package boochy;

import java.io.IOException;
import javax.servlet.http.*;

@SuppressWarnings("serial")
public class SprogzServlet extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException
    {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
    }
}

Ответы [ 4 ]

5 голосов
/ 03 мая 2009

Довольно редко можно заниматься веб-разработкой на Java без использования какой-либо инфраструктуры MVC, которая делегирует все представления JSP (кроме вывода в формате PDF и других угловых случаев), поэтому вы получаете:

Некоторые веб-фреймворки, такие как Tapestry и JSF («Java Server Faces»), немного больше похожи на представления HTML с дополнительными тегами.

В конечном итоге JSP просто компилируются в сервлеты и являются более удобной формой для вывода HTML. Вообще говоря, я бы использовал их как минимум вместо того, чтобы писать кучу операторов out.println () в сервлете напрямую.

2 голосов
/ 03 мая 2009

Я успешно использовал Velocity в течение нескольких лет на очень маленьком внутреннем сайте.

Его простой в использовании и имеет хороший чистый API. Очень хорошо справляется с всплеском активности.

1 голос
/ 03 мая 2009

Забавно, я только что видел немного похожий вопрос раньше. Вы также можете использовать страницы PHP через Quercus для рендеринга страниц в Java.

0 голосов
/ 03 мая 2009

Клетус совершенно прав в своих рекомендациях.

Freemarker (или скорость) - это решения, которые нужно использовать, если вам «просто» требуется рендеринг на основе шаблонов. Они довольно эффективны. Вы можете подняться по лестнице сложности с использованием JSP.

Я не согласен, что это конкретно ограничено паттерном MVC. В самом простом (и, очевидно, это не будет масштабироваться для больших систем) вы можете иметь один и тот же сервис сервлетов для всех запросов, выбрать шаблон скорости / свободного маркера, заполнить необходимый контекст и отобразить шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...