Java 清除scala中的会话值

Java 清除scala中的会话值,java,javascript,scala,playframework,Java,Javascript,Scala,Playframework,我正在为一个项目使用play framework(Java版本),我遇到了一个清除javascript代码中的会话值的情况。我使用了下面的代码,但它没有编译 $('#btnSubmit').click(function(){ $('#errorMsg').text(''); @session.put("errorMsg",null);// It didn't work @session().remove("errorMsg");// It didn't work eith

我正在为一个项目使用play framework(Java版本),我遇到了一个清除javascript代码中的会话值的情况。我使用了下面的代码,但它没有编译

$('#btnSubmit').click(function(){
    $('#errorMsg').text('');
    @session.put("errorMsg",null);// It didn't work
    @session().remove("errorMsg");// It didn't work either
}
我知道它在这里使用scala,所以我仔细阅读了文档,在这里找到了以下方法

但我无法确切理解如何从Javascript实现这一点。是否有一个等效于
session().remove(“errorMsg”)在Javascript中要做什么?
首先,用Javascript而不是在服务器端这样做是否合理


请告知。

从javascript中删除或更改会话不是一个好主意,因为“Play Framework使用无状态会话”。服务器端没有存储任何状态,而是将所有状态存储在会话cookie中。要验证会话,Play使用密钥对会话进行签名,并在带有会话cookie的请求到达时验证签名。如果cookie是从javascirpt修改的,那么签名将不匹配,因此Play将拒绝会话cookie

因此,最好从服务器端对其进行更改

在scala中

Ok("Bye").withNewSession
session().clear();
在java中

Ok("Bye").withNewSession
session().clear();

谢谢这似乎很有意义