JSP vs Velocity, что лучше? - PullRequest
       19

JSP vs Velocity, что лучше?

33 голосов
/ 04 марта 2009

Что лучше между JSP и скоростью в - Спектакль - Простота использования - Простота создания повторно используемых компонентов - Доступность сторонних разработчиков с открытым исходным кодом - Поддержка IDE

Ответы [ 8 ]

42 голосов
/ 23 марта 2009

@ Vartec: Я не думаю, что «строгое отделение взгляда от бизнес-логики» - это функция скорости, которой нет в jsp. Вы можете делать бизнес-логику в jsp (более или менее), но это совсем не рекомендуется. Но я согласен с вашей точкой зрения относительно синтаксиса.

Производительность

JSP компилируется в Java, поэтому я не думаю, что скорость выше. (сам не тестировал)

Удобство использования

Для дизайнеров: скорость Для программистов: (IMHO) jsp, потому что он ближе к коду

Простота создания повторно используемых компонентов

JSP имеет много компонентов Скорость сама по себе не имеет компонентов (не ориентирована на компоненты)

Наличие сторонних разработчиков с открытым исходным кодом

Я видел гораздо больше проектов, использующих технологии, связанные с JSP или JSP, чем скорость. Может быть, потому что скорость действительно низкий уровень ...: -)

Поддержка IDE

Существует множество инструментов для jsp. В частности, плагин / набор инструментов eclipse jboss имеет хороший редактор jsp.

Плагины для Velocity в основном не функциональны или довольно просты (вам повезет, если у вас есть подсветка синтаксиса)

Обновление Если вы сейчас ищете шаблонизатор, я бы посоветовал взглянуть на тимелист. Он сравнительно легкий по скорости и может использоваться только для шаблонирования некоторых текстовых шаблонов с несколькими строками кода или в качестве полнофункционального шаблонизатора, например, в веб-приложении.

19 голосов
/ 04 марта 2009

Преимущества скорости:

  • строгое отделение взгляда от бизнес-логики
  • простой синтаксис, понятный графическим дизайнерам
10 голосов
/ 29 декабря 2010

Ниже речь идет о Freemarker, но сравнения, вероятно, все еще актуальны.

На данный момент в развитии этих двух технологий кажется, что основными причинами выбора одной из них являются:

  1. Вам нужно что-то конкретное, что есть в одном, а не в другом
  2. Вы хотите запретить разработчикам представления размещать Java-скриптлеты на страницах JSP
  3. Вашим разработчикам удобнее в одном, чем в другом

Причины, которые, кажется, не оказывают столь значительного воздействия:

  1. Скорость. В типичном приложении Java EE есть так много слоев, которые оказывают гораздо большее влияние, чем пара миллисекунд, более или менее, что может занять средство визуализации представления. Фактически, это, вероятно, последний слой, который я бы использовал, если бы мое приложение выполняло подпроцесс.
  2. Поддержка IDE. JBoss Tools предоставляет редактор Freemarker, а инструменты JSP хорошо известны.
  3. Синтаксис. JSP 2 и Freemarker имеют практически идентичный синтаксис для многих основных операций из-за EL и JSTL.

Пример Freemarker:

<#list foos as foo>
  <tr>
     <td>${foo.field1}</td>
     <td>${foo.field2}</td>
     <td>
        <#list foo.childObjects as child>
           <#if child.name == 'bar'>
              ${child.value}
           </#if>
        </#list>
     </td>
  </tr>
</#list>

JSP-EL-JSTL Пример:

<c:forEach items="${foos}" var="foo">
  <tr>
     <td>${foo.field1}</td>
     <td>${foo.field2}</td>
     <td>
        <c:forEach items="${foo.childObjects}" var="child">
           <c:if test="${child.name == 'bar'}">
              ${child.value}
           </c:if>
        </c:if>
     </td>
  </tr>
</c:forEach>
8 голосов
/ 04 марта 2009

Скорость или даже лучше FreeMarker . В JSP вы не можете иметь время выполнения для иерархий pojo , и все статически типизировано, что является болью. Более того, если вы создадите много пользовательских тегов JSP2.0 (скажем, более 100-150), то цикл разработки-развертывания сильно замедлится из-за неэффективности Jasper для эффективного разрешения зависимостей.

С другой стороны, JSP имеет отличную поддержку инструментов.

медленные ссылки компиляции JSP:

http://www.mailinglistarchive.com/users@tomcat.apache.org/msg10786.html

http://marc.info/?l=tomcat-dev&m=119377083422720&w=2

3 голосов
/ 04 марта 2009

Я сосредоточусь на использовании шаблонизатора, потому что это то, с чем у меня больше всего опыта.

Это зависит от того, что вы действительно хотите сделать. Сервлеты в сочетании с Velocity (или в этом отношении FreeMarker) предлагают очень хорошее разделение логики и представления. Шаблоны сложнее тестировать, потому что вам нужно будет оценить шаблон, чтобы можно было определить, верен ли HTML (или любой другой формат вывода). Для JSP это можно сделать в выбранной вами IDE.

Большим преимуществом шаблонов является то, что вы можете хранить их полностью вне приложения и даже обновлять их во время работы приложения. Это немного сложнее с JSP, хотя горячее развертывание довольно близко.

Многократно используемые компоненты могут быть созданы с помощью функции включения механизма шаблонов.

1 голос
/ 13 апреля 2013

Преимущества Velocity, описанные выше, упускают пару очень важных вещей с точки зрения инженеров:

  • строгое отделение взгляда от бизнес-логики (как указано выше)
  • простой синтаксис, понятный графическим дизайнерам (см. Выше)
  • компактный код, который не является кошмаром, чтобы вернуться позже, см. пример ссылка
  • развертывание контейнера без сервлетов означает простое развертывание в любом месте

Последние два действительно делают Velocity полезным по сравнению с JSP.

0 голосов
/ 28 октября 2015

Скорость лучше Он адаптируется ко многим областям применения Он предлагает простой, понятный синтаксис для дизайнера шаблонов. Он предлагает простую модель программирования для разработчика Поскольку шаблоны и код являются отдельными, вы можете разрабатывать и поддерживать их независимо Движок Velocity легко интегрируется в любую среду приложений Java, особенно в сервлеты Velocity позволяет шаблонам получать доступ к любому общедоступному методу объектов данных в контексте

0 голосов
/ 19 декабря 2009

Я не знаю, сможет ли Velocity конкурировать с JSP во всех аспектах, но Velocity быстрее и проще. Эффективность Velocity на 35–45% больше, если это сложные веб-страницы, она может быть уменьшена, но все же это На 5% больше, чем JSP.

...