Весенний «сессионный» размах боба - PullRequest
0 голосов
/ 07 мая 2010

Мне кажется, что область "сеанса" - это еще одно средство для сохранения объектов в сеансе как

с использованием setAttrubute / getAttribute

Правильно?

Знаешь, не знаю почему, у меня это не работает.

Я вижу, что после инициализации и первоначального развертывания свойства MyUser верны.

Затем в первом сеансе я изменяю свойство MyUser, сеанс закрывается.

Второй сеанс запускается, и он видит последнее установленное значение из предыдущего сеанса!

Что это значит?

Я ожидаю, что этот объект будет инициализирован всякий раз, когда начинается новый сеанс. Но он лучше выглядит как синглтон, хотя вы видите - атрибут «сессия» установлен.

Я вижу причину проблемы в том, что поля сервлета инициализируются с помощью @Autowired поэтому, как только он будет инициализирован, каждый другой сеанс увидит, что его поля установлены и не «переписать» эти свойства. Это бывает один раз? Как преодолеть эту проблему?

Ответы [ 3 ]

1 голос
/ 07 мая 2010

Сеанс Spring не совсем соответствует HttpSession, и даже в документации Spring на аннотации @SessionAttributes говорится, что она может храниться в сеансе или в «некотором диалоговом хранилище». Я получил это от Spring Docs для 2,5 Я в основном перестал пытаться разобраться в этом, и просто продолжил свою жизнь, если я хочу, чтобы что-то было сохранено в HttpSession, я просто заставил Spring ввести мне HttpSession, предполагая, что вы используете Spring MVC довольно просто инструкции на той же странице.

1 голос
/ 07 мая 2010

Сессионные компоненты хранятся в Http Session от Spring Framework. Эта область действия действительна только в контексте веб-приложения. Она также работает для среды портлетов. При использовании в среде портлетов существует два понятия сессии, области приложения и области портлета (по умолчанию).

1 голос
/ 07 мая 2010

Сессионные компоненты - это компоненты, которые живут в течение всего сеанса http. Они каким-то образом сохраняются в сеансе через setAttribute.

Так что - да.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...