2013-06-04 66 views
0

我有一個使用spring/hibernate的web應用程序。我有一個要求。我在會議中保留一些信息。在會話超時之前,我需要取回所有會話對象,並且在創建新會話後,我需要將會話對象放回到會話中。一旦會話超時,用戶將被顯示登錄頁面,並且一旦用戶登錄,我需要從已登錄的用戶獲取已存儲的會話信息並保留在會話中。在會話超時之前取回會話對象?

兩個實現上述事情我需要實現HttpSessionListener。在一段時間內,我如何獲取所有登錄用戶的所有會話對象的備份。一旦創建了新的會話,我又需要從備份中取出登錄用戶的會話對象並保留在會話中。請給我建議的方法。

public class MySessionListener implements HttpSessionListener { 

    @Override 
    public void sessionCreated(HttpSessionEvent event) { 
    } 

    @Override 
    public void sessionDestroyed(HttpSessionEvent event) { 
    } 
} 

回答

0

我想你應該將數據存儲到數據庫代替這樣的方式。以這種方式維護數據不是一種好方法。我不知道你的申請要求。但會話設置時正確設置數據的方法&會話過期後刪除屬性。

如果您的應用程序擔心安全問題,它將創建安全線程。用正確的方法和模式進行良好的編碼,而不是以非常快的結果實現小事。

0

Servlet API不會爲您提供列出所有有效會話對象的方法。你必須堅持下去。作爲創造者,知道這一點應該不難。

爲了進行備份,數據庫似乎是最完美的一個。您可以在該特定用戶的sessionDestroyed方法中寫入數據庫。在sessionCreated方法中,您可以從數據庫檢索該用戶的值。

參考文獻:how do i get a list of all httpsession objects in a web-application