Зачем использовать инфраструктуру MVC, когда работают сервлеты, JSP и легкий слой DAO? - PullRequest
7 голосов
/ 01 октября 2009

Мне трудно принять инфраструктуру Java MVC, когда кажется, что сервлеты, JSP и облегченный DAO сделают почти все, что вам нужно, чтобы отделить контроллеры / представления / модели. Для PHP я вижу необходимость, так как нет встроенных конструкций, таких как сервлеты, но действительно ли фреймворки Java MVC дают вам ЭТО гораздо больше?

Ответы [ 2 ]

8 голосов
/ 01 октября 2009

Одной из областей, где сервлеты / JSP несколько слабы, является тестируемость. Несмотря на то, что сервлеты можно тестировать модульно, используя макеты, им не кажется, что они были разработаны с учетом модульного тестирования. JSP еще сложнее. Вы можете положиться на функциональные тесты аля Selenium, но в наши дни люди хотят получить покрытие модульных тестов. Некоторые из более современных платформ Java MVC предоставляют более легко тестируемые единицы кода.

В целом вы, конечно, правы, что обычный старый стек Tomcat с базой данных MySQL выполняет свою работу.

3 голосов
/ 01 октября 2009

Большинство веб-фреймворков абстрагируются от деталей низкого уровня. Например, Wicket , Tapestry и JavaServer Faces позволяют вместо этого думать с точки зрения компонентов (например, кнопок, меток, раскрывающегося списка и т. Д.) протоколов http. Даже ориентированные на действие веб-фреймворки, такие как Spring MVC и Struts , дают вам уровень выше, чем используемые базовые технологии.

В качестве дополнительного бонуса эти фреймворки поставляются с дополнительными возможностями, такими как Ajax, Comet, интеграция с фреймворками персистентности, которая работает «из коробки».

Конечно, как указал Асаф, веб-фреймворки обычно проще тестировать.

...