2012-02-23 19 views

回答

12

由於會話數據存儲爲cookie,因此不會再有會話ID與播放2.0。事實上,不需要標識令牌,會話數據只是隨着每個請求離開服務器完全無狀態而傳遞。

但是,如果您需要將每個用戶的數據存儲在全局緩存中,您可能仍然需要一個id。 爲此,使用下面

// Generate a unique id 
String uuid=session("uuid"); 
if(uuid==null) { 
    uuid=java.util.UUID.randomUUID().toString(); 
    session("uuid", uuid); 
} 

會話ID的代碼?它聽起來非常適合Java EE ......

+0

如何控制全局緩存中對象的生命週期?您配置TTL和其他到期參數? – 2012-02-23 19:43:55

+0

生命週期取決於緩存實現。我不知道細節,如果我記得EHCache使用WeakReferences,當JVM需要內存時它會被清除。 EHCache是​​緩存最好的API之一,我相信他們支持到期設置。 – 2012-02-23 19:53:07

+0

好的,但Play 2.0中有什麼根本不同/更好?會話(一般來說)只是一個具有特定生命週期的商店。 「國家麻煩」是由實施細節引起的。 – 2012-02-23 20:21:58

相關問題