Как получить информацию о сеансе в Spring MVC 3
Я новичок в spring MVC, и я пытаюсь получить информацию о сеансе в классе контроллера
Сейчас я использую
HttpSession objHttpSession = request.getSession(true);
Если я хочу получить время создания сеанса и идентификатор сеанса, я использую
objHttpSession.getCreationTime(); objHttpSession.getId();
Я хочу знать, есть ли какой-либо spring способ MVC для получения сведений о сеансе?
Заранее спасибо
Ответы
Ответ 1
Я обычно объявляю параметр типа HttpSession в моем методе контроллера MVC Spring, когда мне нужно получить доступ к сведениям о сеансе.
Например:
@RequestMapping("/myrequest")
public void handleMyRequest(HttpSession session, ...) {
...
}
Я думаю, что это самый простой способ, но не знаю, соответствует ли он вашим потребностям.
Ответ 2
Вы можете получить сеанс в Spring MVC следующим образом:
ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpSession session = attr.getRequest().getSession();
Метод currentRequestAttributes
возвращает RequestAttributes
, привязанную к потоку, в котором есть текущий запрос, и из этого запроса вы можете получить сеанс. Это полезно, когда вам нужно получить сеанс в классе spring. В противном случае вы можете просто использовать:
@RequestMapping(...)
public void myMethod(HttpSession session) {
}
Spring будет вставлять экземпляр HttpSession
в ваш метод контроллера.