2011-09-08 15 views
19

我新的Spring MVC和我試圖獲取會話信息在我的控制器類如何獲取會話信息在Spring MVC 3

現在我使用

的HttpSession objHttpSession =請求.getSession(真);

,如果我想獲得會話創建時間和會話ID,我使用

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

我想知道的是那裏得到了會議的詳細信息任何Spring MVC的具體方式是什麼?

在此先感謝

回答

34

我通常聲明類型的HttpSession的參數在我的Spring MVC控制器的方法,當我需要訪問會話詳細信息。

例如:

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

我認爲這是最簡單的方法,但不知道它是否符合您的需求。

15

您可以在Spring MVC獲取會話是這樣的:

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

currentRequestAttributes方法返回當前綁定到其中有當前的請求,並從該請求就可以得到會話線程的RequestAttributes。當您需要在非Spring類中獲得會話時,這非常有用。否則,你可以使用:

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

Spring會注入HttpSession實例到你的控制器的方法。