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

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

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

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

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

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

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


person Community    schedule 04.05.2009    source источник


Ответы (5)


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

О Уикете можно много говорить.

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

Для JSP и JSF есть что улучшить.

  • Единственное, что беспокоит меня больше всего, - это ерунда "EL", поскольку я считаю, что она нарушает безопасность и силу хорошего типа java.
  • Оба нуждаются в инструментальной поддержке для высокой производительности.
  • Вам нужен еще один фреймворк поверх них обоих, чтобы действительно решить проблемы (как видно из фреймворка шва, который делает JSF пригодным для использования).
  • Обработка ошибок очень сложна, а исключения не всегда полезны.
  • В обеих платформах сложно создавать повторно используемые компоненты, и они не поддерживают надлежащую модель разделения задач.
  • ... и, самое главное, долгие и т. д. мелких хлопот, типа это или это.
person H Marcelo Morales    schedule 04.05.2009
comment
Да, калитка в порядке! Вам также следует попробовать Grails (с GORM в качестве очень мощного слоя ORM). Это похоже на рубин на рельсах. - person Martin K.; 04.05.2009

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

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

person fforw    schedule 04.05.2009
comment
Приятно слышать. Я использую JSP так же, как и Spring MVC, и это очень хорошо и быстро. - person marioosh; 11.10.2011

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

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

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

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

person Luixv    schedule 04.05.2009
comment
Теперь это имя просто Grails; Ребята из Ruby on Rails попросили их изменить его. - person Michael Borgwardt; 04.05.2009
comment
Приятно знать. Спасибо за комментарий. Вы получили от меня очко. - person Luixv; 04.05.2009
comment
Две альтернативы Grails: 1. Лифт (liftweb.net). Он работает на JVM, но вам придется изучить Scala (хотя это отличный язык для изучения :-)). 2. JRuby on Rails, то есть Rails, работающий на JVM (wiki.jruby.org/wiki/JRuby_on_Rails). Опять же, хотя JRuby работает на JVM, вам придется изучить Ruby, чтобы работать с ним. - person Javier; 04.05.2009

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

person mP.    schedule 04.05.2009
comment
Это может быть предвзятым, но GWT (code.google.com/webtoolkit) больше похож на веб-сайт. -FRONTEND-framework, чем настоящий веб-фреймворк для меня. - person Javier; 04.05.2009
comment
Я также не вижу смысла в JSP, особенно в Java EE. Это должна быть просто необязательная библиотека. Но похоже, что большинству людей нравится смешивать контент и код (что является анти-шаблоном). - person ivan_ivanovich_ivanoff; 04.05.2009
comment
@Javier В конце концов, речь идет о конечном опыте пользователей, оба доставляются в браузер ... пользователю все равно, как он туда попал, пока он работает и делает их счастливыми. - person mP.; 04.05.2009

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

  • Фреймворк ненавязчиво побуждает вас писать лучше спроектированный код: используя внедрение зависимостей и разбивая дизайн вашего приложения на объекты предметной области (модели), контроллеры, классы обслуживания, DAO и т. д.
  • Как побочный эффект первого пункта, ваш код становится чрезвычайно и легко поддается модульному тестированию.
person matt b    schedule 04.05.2009