Как сохранить объект Session в Spring-MVC - PullRequest
0 голосов
/ 13 мая 2018

Как мы можем хранить объект сеанса (тяжелый объект) на страницах в сеансе http, но не совместно использовать этот объект сеанса (новый объект для каждого сеанса) в разных одновременных сеансах?

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Сохранить объект сеанса в контексте приложения весны.

0 голосов
/ 13 мая 2018

По умолчанию, если вы передадите HttpSession в качестве параметра в методе @ * Mapping (в контроллере), вы автоматически получите доступ к текущему сеансу.

@RequestMapping(...)
public String someMethod(HttpSession session) {
    // you have access to the session here
}

Вы можете хранить объекты всеанс с использованием HttpSession.setAttribute (String, Object)

Но если вы хотите иметь доступ к всем сеансам, поскольку поток автоматически создается для каждого сеанса,Вы должны были бы сохранить это в статической переменной.В этом случае я предполагаю, что карта будет именно тем, что вы ищете, поэтому вы можете идентифицировать сеанс с помощью идентификатора сеанса:

static Map<String, HttpSession> connectedUsers;

С идентификатором сеанса (HttpSession.getId()) в качестве ключа иHttpSession как значение, вы должны иметь возможность свободного доступа к различным сеансам.

...