powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java EE 6 и шаблон MVC
7 сообщений из 7, страница 1 из 1
Java EE 6 и шаблон MVC
    #38142746
c3p0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброй ночи.

Прошу прощения, если похожий вопрос уже задавался на этом форуме и тем не менее, я в свободное от безделья время занимаюсь изучением технологий Java EE 6. Отображая шаблон MVC на типичное Java EE приложение, понятно, что M - это сущности JPA и управляющие этими сущностями EJB, V - Facelets и C - managed beans (поправьте, если ошибаюсь). Простой пример: web-приложение с аутентификацией и авторизацией пользователей. В этом приложении есть XHTML-страничка смены пароля пользователя, managed bean UserController (обрабатывает нажатие на кнопку "Изменить пароль"), stateless EJB UserService (позволяет создавать/обновлять/удалять пользователей, выполнять поиск по имени) и сущность User. Правильно ли я понимаю, что основная логика по проверке введенного текущего пароля пользователя, хешированию нового пароля, получением сущности нужного пользователя и обновлением пароля в этой сущности (путем вызова соответствующего метода UserService (например, UserService.updateUser(User user))) ляжет на плечи контроллера, т.е. класса UserController? Хотелось бы увидеть мнения о правильных вариантах распределения подобного функционала между уровнями web-приложения от людей, съевших на этом не одну собаку.

Заранее спасибо за ответ.
...
Рейтинг: 0 / 0
Java EE 6 и шаблон MVC
    #38142961
Tensai
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бизнес логика помещается в ejb
...
Рейтинг: 0 / 0
Java EE 6 и шаблон MVC
    #38143015
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
managed bean это не контроллер.
http://stackoverflow.com/questions/5104094/what-components-are-mvc-in-jsf-mvc-framework
managed bean содержит бизнес-логику. Роль контроллера в MVC иная.

Кстати, в новых версиях JEE рекомендуют отказаться от managed bean в пользу session bean.
...
Рейтинг: 0 / 0
Java EE 6 и шаблон MVC
    #38143026
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле однозначного ответа нет. У меня даже в одной организации было собеседование, на котором просили описать набор контроллеров, которые будут управлять логикой приложения. Я спросил - это контроллеры из MVC? - мне сказали угу, ведь модель это фактически база данных, представление - это страницы, ну а следовательно вся логика приложения - в контроллерах. Я убежал.
Применяя шаблоны, следует понимать, для чего они придуманы. Одна из целей - отделить изменяемое от неизменяемого, и вот простой пример, как это можно сделать.
Представьте себе, что ваше приложение должно работать не только через браузер, но и через телефонное меню: вам зачитывают пункты, вы выбираете цифру, переходите в следующее меню, и т.д. Ну или общаемся с приложением с помощью смс.
Очевидно, что в данной ситуации у приложения сменится представление и контроллер, но вот все, что останется неизменным - и есть модель.
В каждой из приведенных 3 ситуаций - разный протокол взаимодействия с пользователем. Протокол реализуется контроллером.
Зачитанные фразы меню, присланные смс-ки, ваша html - страница-это представление.

Так должно быть. Но на практике, например, вы знаете, что ваше приложение будет работать только в браузере, плюете на всё и часть логики реализуете в контроллере. И это тоже правильно, если вам не надо отделять изменяемое от неизменяемого, поскольку паттерны - не самоцель. Если в результате получается прозрачный, легко изменяемый и сопровождаемый код, остается только снять шляпу.
Тем более, что на самом деле такое разделение всё равно есть, если принять во внимание то, что неизменяемая часть на самом деле имеется (фронт контроллер javax.faces.FacesServlet или что там у вас), а ваш как-бы контроллер незаметно стал моделью
...
Рейтинг: 0 / 0
Java EE 6 и шаблон MVC
    #38143078
c3p0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

По приведенной вами ссылке мне понятен случай "smaller developer picture". Понятно также, что FacesServlet - некий front controller, передающий в дальнейшем управление к managed beans. Немного непонятен только отказ от managed beans в пользу session beans (видимо это случай "big architectural picture"). Это же EJB, разве их можно вызвать из XHTML странички с помощью EL?

P.S. Программирование для Java EE 6 начал с изучения приложения Petstore от Antonio Goncalves. В этом приложении, на мой взгляд, присутствует достаточно чёткое следование шаблону MVC. Смутило, что сессионные бины там предельно просты.
...
Рейтинг: 0 / 0
Java EE 6 и шаблон MVC
    #38143079
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanraОчевидно, что в данной ситуации у приложения сменится представление и контроллер, но вот все, что останется неизменным - и есть модель.
а я вот согласен, именно так определяю модель, а БЛ вне модели это от лукавого)))
...
Рейтинг: 0 / 0
Java EE 6 и шаблон MVC
    #38143085
c3p0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanra,

Понимаю, что многие пишут, как бог на душу положит. Хотелось как раз узнать, как всё же правильно организовать логику приложения на простом примере. Спасибо за подробное объяснение.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Java EE 6 и шаблон MVC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]