2014-07-13 83 views
2

我使用創建應用程序Spring MVC休眠人們可以在其帳戶中註冊和存儲一些數據。 我創建了註冊和登錄過程。現在我有一個問題,我如何保持用戶會話?我不想在我的應用程序的每個頁面中保留用戶標識。 例如:一旦用戶已登錄,他到達Spring MVC在會話中保留用戶數據

someurl/overview/1 

其中id是用戶的ID頁面。我會把它想看起來像這樣爲每個登錄的用戶:

someurl/overview/ 

什麼是最好的做法,如何使用Spring保存用戶數據會話,並保存它,如果用戶關閉網站,然後打開它?

在此先感謝。

+0

的可能重複[如何使用Session在Spring的MVC屬性(http://stackoverflow.com/questions/18791645/how-to-use-session-attributes-in-spring-mvc) – dabadaba

+0

dabadaba ,謝謝你,我正在尋找重複,但由於某種原因沒有看到這一個 – user3127896

回答

4

您可以通過多種方式在會議上保存用戶數據做簡單的將是:

public ModelAndView yourMethod(HttpSession session){ 

    session.setAttribute("user", 1); 
    return new ModelAndView("home"); 

} 

,你將可以使用會話如果你正在使用彈簧組件所有的時間,所以只加這個參數並使用它。

編輯: 也可以使用Spring的會話屬性: http://fruzenshtein.com/spring-mvc-session/ 如果它滿足您的要求。

EDIT(感謝@Serge貝勒斯特以便讓你可以在評論,只是更新後FYI)

即使API不會強制執行,規範要求所有 會話屬性可序列化。想想看,如果存儲超過 的ID。

+0

我怎樣才能得到這個會話屬性在另一個控制器? – user3127896

+0

如果你正在使用該控制器註釋與控制器,然後只在參數中添加HttpSession,你將擁有它。沒有額外的工作。 – nsthethunderbolt

+0

Spring維護會話本身,並在需要時在它的組件範圍內提供給你。 – nsthethunderbolt