更改会话变量而不重新加载页面

时间:2015-02-16 11:33:49

标签: java html http playframework playframework-2.0

因此,我的网页上有一个链接remove Advertisment,该链接应该从我的网站中删除广告,并且不要在会话的其余部分显示任何广告。

我的方法首先是控制器中的私有静态变量,可以通过方法设置。

private static boolean Ads = true;

public static void closeAds() {
    Logger.debug("Ads removed");
    Ads = false;
}

我做了一些研究,发现play框架提供的session()方法可能更合适。

无论如何我的问题是,我不知道如何在我的html页面中调用这些控制器方法,因为每个HTTP请求都必须有响应,而我不想重新加载我的页面,我只是想要设置变量或会话变量。

我认为Ajax可能就是答案?我还没想出任何东西

1 个答案:

答案 0 :(得分:2)

Play会在已签名的Cookie中保留客户端的会话信息。

所以你有两个选择(我会选择第二个):

1)Ajax调用更新play的会话数据(因为你不想在客户端用javascript修改它,因为它是一个签名的cookie并且破坏了东西)

2)创建另一个用于保持广告开/关标志的cookie并在客户端通过javascript修改它,然后您可以在服务器端检查此cookie的值以实现广告开/关。这将阻止您进行额外的ajax调用。