![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Cyclone |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 2.5.2007 Репутация: нет Всего: нет |
Добрый день, господа и дамы.
Интересует некий принципиальный вопрос... а именно использование sessionScope при работе с многопользовательской web-системой. Во-первых, подтвердите, пожалуйста, что Солнце действительно восходит на востоке: 1. Объект Session хранится в памяти сервера, не клиента - верно? 2. Объект сервлета создаётся для каждого обратившегося пользователя - сервлеты ... (как это по-русски? безопасны в многопользовательской среде) ... thread-safe - верно? 2. Объекты в sessionScope обладают thread-safity - наличие множества пользователей не должно привести к путанице в объектах - верно? 3. Session bean - обычный POJO, хранящийся в sessionScope - верно? Есть ли какие-то разумные границы объёма хранения данных в сессии? Я не говорю о мегабайтовых бинарниках, конечно. А в текстовых данных можно чувствовать себя свободно? Ситуация, в общем, обычная. Зашли через сервлетик на страничку, получили там из базы всякие связанные списки, отобразили на страничке. Дальнейшая работа включает использование полученной информации на других страницах - не получать же их из базы заново, верно? Как обычно поступают в таких случаях - хранят объекты списков в session бине? ... ещё придумаю. Нужно подтверждение того, что мыслю я в правильном направлении. Развёрнутые комменты приветствуются. Спасибо. |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Объем данных хранимых в сессии ограничен по самый OutOfMemoryException. Т.е. не безграничен. Отсюда вывод, что всегда найдется такое количество открытых сессий что бы сервер начал "пробуксовывать". Поэтому, чем меньше данных в сессии тем лучше. По крайней мере вы должны уметь ограничивать размер сессионных данных для пользователя. В лучшем случае, если в сессии вообще нет бизнес данных. В идеале - полностью stateless обработка запросов. |
|||
|
||||
| polosatij |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 3 Всего: 8 |
такой вопрос: в некоторых случаях, например, переходах между сайтами и проблемы реализации"Back" в браузере требуют определённых объектов в сессии. в них сохраняются не только откуда пришёл пользователь, но ещё и кое-какая информация в объекте в сессии, если всё же был нажать "Back". как вы реализуете эту траблу? |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Если возможности отказаться от сессионных данных нет, то нужно их использовать. Я просто хочу сказать, что чем меньше вы используете сессию тем лучше. Это не означает, что использование сессионных данных является антипаттерном. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |