2012-02-23 52 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

相关问题