Spring PetClinic和HttpRequest会话

时间:2011-12-08 16:00:25

标签: java spring session spring-mvc

我正在使用SpringPetClinic应用程序,我正在考虑如何捕获特定请求的HttpRequest会话。我想捕获请求的唯一会话ID,以跟踪此请求所做的所有方法调用,并使用session-id将它绑定在一起。我们的想法是在控制器中获取HttpRequest会话,将其存储在Threadlocal变量中并使用此变量的值,并在调用方法之前以及在调用相同方法之后将其附加日志字符串。

我的问题是,在SpringMVC项目的控制器类中获取HttpRequest会话的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

使用@InitBinder method参数类型HttpSession

@InitBinder
public void initBinder(HttpSession session) {
    myThreadLocal.set(session.getSessionId());
}

答案 1 :(得分:1)

这应该

private @Autowired HttpServletRequest request;