Как получить информацию о сеансе в Spring MVC 3 - PullRequest
20 голосов
/ 08 сентября 2011

Я новичок в Spring MVC и пытаюсь получить информацию о сеансе в классе моего контроллера

Прямо сейчас я использую

HttpSession objHttpSession = request.getSession (true);

если я хочу получить время создания сеанса и идентификатор сеанса, который я использую

objHttpSession.getCreationTime (); objHttpSession.getId ();

Я хочу знать, есть ли какой-нибудь конкретный MVC-способ получить подробности сессии?

Заранее спасибо

Ответы [ 2 ]

35 голосов
/ 08 сентября 2011

Я обычно объявляю параметр типа HttpSession в моем методе контроллера Spring MVC, когда мне нужен доступ к деталям сеанса.

Например:

@RequestMapping("/myrequest")
public void handleMyRequest(HttpSession session, ...) {
   ...
}

Я думаю, что это самый простой способ, но не знаю, подходит ли он вашим потребностям.

21 голосов
/ 26 сентября 2012

Вы можете получить сеанс в Spring MVC следующим образом:

ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpSession session = attr.getRequest().getSession();

Метод currentRequestAttributes возвращает RequestAttributes, привязанный в данный момент к потоку, в котором есть текущий запрос, и из этого запросаможно получить сессию.Это полезно, когда вам нужно овладеть сессией в не весеннем классе.В противном случае вы можете просто использовать:

@RequestMapping(...)
public void myMethod(HttpSession session) {   
}

Spring вставит HttpSession экземпляр в метод вашего контроллера.

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