Подтвердить что ты не робот

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

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

Сейчас я использую

HttpSession objHttpSession = request.getSession(true);

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

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

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

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

4b9b3361

Ответ 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 в ваш метод контроллера.