Сервлет против бобов

Я новичок в java (изучаю JSF и другие компоненты JAVA EE), и у меня очень простой вопрос.

Зачем нам нужен сервлет, когда многие вещи можно сделать с помощью Beans. Что есть в сервлете, чего нельзя сделать из Bean-компонента, или как использовать Servlet лучше, чем Bean-компоненты в веб-приложении.


person user1433804    schedule 03.06.2012    source источник


Ответы (2)


С JSF вы в основном уже используете сервлет, FacesServlet который вы, скорее всего, уже зарегистрировали в web.xml самостоятельно, чтобы заставить JSF работать. Это именно тот сервлет, который избавляет от необходимости писать кучу сервлетов для выполнения повторяющихся задач, таких как сбор параметров запроса, их преобразование/проверка, обновление свойств javabean, вызов действий и переход к нужному представлению.

В JSF вам не нужно создавать дополнительные сервлеты для выполнения этих задач. Вы просто создаете и объявляете управляемый компонент в качестве контроллера, который, в свою очередь, содержит простой класс javabean в качестве модели, которая привязывается к компонентам пользовательского интерфейса в представлении.

Но иногда JSF является излишним или слишком сложным, когда вы никогда раньше не изучали JSF и просто хотите две, три или четыре веб-страницы только с контактной формой. JSF имеет относительно крутую кривую обучения, что также требует хорошего понимания HTTP-сервлетов. С «простыми ванильными» сервлетами и JSP их легче разрабатывать. Но всякий раз, когда сайт выходит за свои рамки и вы начинаете копировать/рефакторить общие задачи, вы были бы счастливы, если бы заранее выбрали фреймворк MVC.

person BalusC    schedule 03.06.2012

Компоненты используются для представления ваших данных. Сервлеты следует использовать для управления вашим процессом.

В шаблоне MVC (модель, представление, контроллер) Beans будет вашей моделью, которая ориентирована на данные и представляет ваши данные, действует как объекты домена или простые структуры данных.

Сервлеты — это контроллер, который вызывает правильную модель и отправляет их в правильном порядке. Их можно использовать для получения пользовательских запросов и преобразования их в правильные входные данные для работы с моделями.

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

person kjp    schedule 03.06.2012