Как работают области поддержки бобов? - PullRequest
0 голосов
/ 17 июля 2009

У меня возникли некоторые недоразумения с областью поддержки JSF. Я новичок в JSF и сейчас пишу простой проект, и все мои компоненты в основном имеют сессионный охват. Но если на моем сайте будет много пользователей, это означает, что моя сессия будет очень большой и убьет мой сервер. Некоторые люди говорят мне, что решение состоит в том, чтобы использовать компоненты запроса. Но, например, когда моя страница должна быть проверена и если проверка является неудачной, показать сообщения об ошибках и сохранить все введенные пользователем данные, что я могу сделать в этой ситуации? Я пытаюсь использовать компонент, который использует AJAX-запрос, и надеялся, что мой компонент запроса не будет восстановлен, но это не работает (я использую <rich:datascroller>).

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

1 Ответ

2 голосов
/ 17 июля 2009

Область действия определяет время жизни бобов.

Бины области действия запроса работают во время обслуживания одного HTTP-запроса, поэтому они доступны как при анализе входных данных пользователя, так и при формировании страницы ответа. Так что для простой проверки и ответа я бы ожидал, что bean-объекты в области запросов будут именно тем, что вам нужно - исключение может быть, если вы отправляете перенаправление обратно в браузер и отправляете новый запрос, тогда вам может понадобиться ...

Бин области действия сеанса живет в течение жизни сеанса пользователя, т.е. через несколько запросов. Сеансы могут длиться некоторое время, но в конечном итоге пользователь выходит из системы или перестает работать, и его сеанс истекает. Таким образом, не имеет значения, сколько пользователей в целом у вас есть, просто сколько активных одновременно. Весьма распространено хранить некоторые данные сеанса для каждого пользователя (например, по крайней мере, кто есть, и, возможно, его недавно просмотренные материалы), так что нет никаких фундаментальных причин для беспокойства по поводу сохранения некоторых данных. Вам просто нужно убедиться, что вы сохраняете это в чистоте, не храните данные для старых страниц очень и очень долго - возможно, просто компонент "текущие данные" или что-то подобное.

...