Производительность JSF и Spring против плохой производительности JSP

StackOverflow https://stackoverflow.com/questions/819684

Вопрос

Я видел некоторые проекты JSF, разработанные моими коллегами, и эти проекты показались мне очень медленными.Есть ли у кого-нибудь такое же мнение?

В настоящее время я использую jsp+jstl и jQuery для «богатого» клиента.

Интересно, какие преимущества и недостатки имеют современные фреймворки (jsf, калитка, гобелен...) по сравнению со старым простым jsp.

Было бы здорово, если бы ответили люди, которые использовали все эти технологии.

Мне также интересно, какие наиболее интересные функции заставили вас оставить jsp и использовать «массивный» фреймворк (я имею в виду, например, AOP в Spring или что-то еще, что вы можете заметить).

Спасибо за все комментарии.

Это было полезно?

Решение

Я использовал CGI, PHP, JSP, Struts, Spring MVC (1.2), Bea Workshop, JSF, JBoss Seam, Spring MVC (2.5) и Калитка (в этой последовательности).Я заметил скачок производительности и качества для каждой новой технологии, над которой я работал.Это просто работает лучше, это чувствует лучше.Я предпочитаю Wicket (с начинкой из пружины, кварца и т. д.) всем остальным.Я могу честно сказать, что увидел свет, и я не хочу возвращаться на более темную – или светлую ;) – сторону.

О Уикете можно многое сказать.

  • Поддержка диалога (или включение вкладок) поставляется по умолчанию, и вы больше не беспокоитесь о проблемах с кнопками «открыть в новой вкладке» и «назад».
  • Он основан на компонентах, поэтому вы можете повторно использовать код в стиле Swing.
  • Использует многие стандартные возможности Java, например, чудеса безопасности типов.
  • Поддерживает расширенные функции безопасности, такие как шифрование URL-адресов.
  • Кластеризуемые приложения по умолчанию.
  • И, самое главное, это веселье использовать.

JSP и JSF еще многое предстоит улучшить.

  • Единственное, что меня беспокоит больше всего, - это ерунда «EL», поскольку я считаю, что она нарушает безопасность и прочность хорошего типа Java.
  • Оба нуждаются в инструментальной поддержке для обеспечения высокой производительности.
  • Вам нужна еще одна структура поверх обеих, чтобы действительно решить проблемы (как видно из фреймворка шва, который делает JSF пригодным для использования).
  • Обработка ошибок очень сложна, и исключения не приносят прямой пользы.
  • В обеих платформах сложно создавать повторно используемые компоненты, и они не поддерживают правильную модель разделения задач.
  • ...и, самое главное, долгие и т. д. мелких болей, типа этот, или этот.

Другие советы

Мне очень нравится использовать JSP 2.0 в качестве технологии создания шаблонов - то есть я использую Spring MVC для доступа к моим объектам домена и подготовки всех данных, которые мне нужны для определенного представления, и оставляю их JSP для их рендеринга. JSP 2.0, потому что мне нравится использовать файлы тегов для компоновки шаблонов, что позволяет мне использовать простую JSP 2.0, где мне понадобятся другие компоновочные структуры, в остальном.

Я намеренно избегаю всего, что в JSP является программированием. Нет доступа к данным, нет SQL, нет скриптлетов, нет методов, нет ничего. просто простое представление ранее существующих данных, предоставленных контроллером, возможно, с некоторыми простыми случаями и итерацией коллекций.

Множество преимуществ.Я могу перечислять преимущества JSF, которые я использовал в своем последнем проекте.

  • Централизованное место для навигации (как в стойках)
  • Такие компоненты, как выбор даты, автозаполнение, пейджинг и т. д.
  • У вас есть рендеринг макета, который значительно упрощает логику макета.
  • Наличие плитки, как в стойках.

JSP не проводит четкого разделения между бизнес-логикой и макетом.

В любом случае, несмотря на все эти преимущества, и если вы программист на Java, я бы посоветовал взглянуть на Грааль что гораздо удобнее.

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

Преимущества Spring MVC:

  • Фреймворк тонко поощряет вас писать более продуманный код:используя внедрение зависимостей и разделяя дизайн вашего приложения на объекты домена (модели), контроллеры, классы обслуживания, DAO и т. д.
  • В качестве побочного эффекта первого пункта ваш код оказывается очень сильно и легко тестируется.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top