Как работают области поддержки бобов?

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам