9
使用Play 1.0,我們使用session.getId()方法來檢索唯一的會話標識。Play 2.0中的session.id在哪裏?
這個id很方便在全局緩存中爲密鑰添加前綴。
Play 2.0 session.id等值於何處?
使用Play 1.0,我們使用session.getId()方法來檢索唯一的會話標識。Play 2.0中的session.id在哪裏?
這個id很方便在全局緩存中爲密鑰添加前綴。
Play 2.0 session.id等值於何處?
由於會話數據存儲爲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 ......
如何控制全局緩存中對象的生命週期?您配置TTL和其他到期參數? – 2012-02-23 19:43:55
生命週期取決於緩存實現。我不知道細節,如果我記得EHCache使用WeakReferences,當JVM需要內存時它會被清除。 EHCache是緩存最好的API之一,我相信他們支持到期設置。 – 2012-02-23 19:53:07
好的,但Play 2.0中有什麼根本不同/更好?會話(一般來說)只是一個具有特定生命週期的商店。 「國家麻煩」是由實施細節引起的。 – 2012-02-23 20:21:58