2009-09-02 7 views
36

Каков наилучший способ хранения связанных с сеансом данных пользователя (например, журнал последних действий, выполненных пользователем) в веб-приложении Spring MVC (2.5)?Как хранить сеанс весной MVC

Использование классического javax.servlet.http.HttpSession или указание области = "сеанс" в компонентах контроллера и сохранение данных в объекте сеанса?

ответ

36

Фасоль с участковыми участками (с использованием scope="session") - самый чистый подход. Это устраняет необходимость взаимодействия с сеансом самостоятельно.

Если вы хотите авторизовать компонент, подключенный к сеансу связи, к контроллеру, вам нужно либо сделать сам сеанс сеанса контроллера, либо использовать прокси-сервер с областью действия, чтобы подключить его к одному контроллеру, как described here. Любой подход действителен.

+0

спасибо, более чистый подход был именно тем, что я искал – dakull

+1

Спасибо за этот отличный ответ, я использовал HttpSession прямо до сих пор. Выполнение запроса Контроллера (например, старого контроллера Throwaway Controller) также работает и позволяет избежать необходимости использования прокси-сервера. Есть ли недостатки в этом? –

+4

@Dick: бобы с запросом облагают снижением производительности, но до тех пор, пока у вашего контроллера нет дорогостоящего пользовательского процесса инициализации или ваш трафик не слишком высок, он не должен быть значительным. – skaffman

Смежные вопросы