Я новичок в мире J (2) разработки EE и веб-приложений, но быстро перемещаю свой путь вокруг и многому учусь. Каждый день - фантастическое путешествие нового открытия для меня.
В настоящее время я работаю над проектом, в котором я использую Visual JSF Woodstock на Glassfish v2. Я также очень новичок в JSF.
Иногда мне нужно сохранить некоторые объекты (например, MyObject) между запросами. И из того, что я прочитал и понял до сих пор, мне нужно использовать сеансы для сохранения этих объектов между разными запросами. Пока все хорошо.
Точно, как это сделать, моя озабоченность кроется. Я знаю, что в JSP вы можете использовать session.setAttribute("myObj", myObject)
, который сохранил бы объект на стороне клиента с помощью файлов cookie или перезаписи URL или скрытых переменных формы.
С другой стороны, в JSF я использую Session scoped beans, скажем, SessionBean1, например, и сохраняю объекты как свойства SessionBean1 (например, SessionBean1.setSomeOjb(myObj)
). Это правильный путь?
Я предполагаю, что выполнение этого способа приведет к увеличению использования памяти на сервере, так как каждый запрос создаст новый экземпляр сеанса bean, SessionBean1 плюс память, используемую сохраненными экземплярами myObject в SessionBean1.
Я прочитал, что вы можете использовать FacesContext.getExternalContext().getSession/getSessionMap()
, который сохранил бы переменные сеанса на стороне клиента.
Итак, какой из методов вы бы предположили, что я использую - область сеанса bean или карту сеанса для сохранения объектов для доступа между запросами на сеанс?
Спасибо.