有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在不重新加载页面的情况下更改会话变量

因此,我的网页有一个链接remove Advertisment,它应该从我的网站上删除广告,并记住不要在剩余的会话中显示任何广告

我的方法最初是在控制器中使用一个私有静态变量,可以通过方法进行设置

private static boolean Ads = true;

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

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

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

我想Ajax可能是答案?我还没想到什么


共 (1) 个答案

  1. # 1 楼答案

    Play将客户端上的会话信息保存在签名cookie中

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

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

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