Расположение и управление хранилищем сеансов Struts2
Я читал Struts2 в действии, и он говорит для каждого запроса ActionContext
, ValueStack
и Action
экземпляры созданы, поэтому они являются потокобезопасными. Мне было интересно, как фреймворк управляет сессией, потому что он не может быть сохранен в этих местах, где хранится фактическая карта и как параллельный доступ к этой карте управляется фреймворком?
1 ответ
Решение
Сеанс http хранится в SessionMap
которая среди других контекстных карт хранится в контексте действия диспетчером при обслуживании запроса. Карта сеанса является оболочкой для объекта сеанса http и таких операций, как get
/put
синхронизируются с помощью монитора объекта сеанса http. Он просто синхронизирует доступ к атрибутам сеанса http, однако обеспечивает Map
реализация.