java - 更改 session 变量而不重新加载页面

标签 java html http playframework playframework-2.0

所以我的网页有一个链接删除广告,它应该从我的网站中删除广告,并记住在 session 的其余部分中不要显示任何广告。

我的方法首先是 Controller 中的私有(private)静态变量,可以通过方法设置。

private static boolean Ads = true;

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

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

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

我认为 Ajax 可能是答案?我还想不出任何办法

最佳答案

Play 将客户端的 session 信息保存在签名的 cookie 中。

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

1) Ajax 调用来更新游戏的 session 数据(因为您不希望使用 javascript 在客户端修改此数据,因为它是签名的 cookie 并会破坏内容)

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

关于java - 更改 session 变量而不重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28540522/

相关文章:

java - JavaFX 中触摸时滚动网格 Pane

java - 使用 Eclipse 的 Oracle NLS_DATE_FORMAT

html - 如何使用 Bootstrap 在 Twig 中对齐按钮和输入

html - 从 flex 子项中删除下划线

json - HTTP 请求、JSON、重用连接

Node.js HTTPParser 不调用一些回调

java - 如何将属性添加到 spring Controller 的 http 请求?

java - Jackson ObjectMapper & JsonGenerator - 它是线程安全的吗?

java - 当我运行 "SELECT 0 AS COL .."时,MySQL 列类型返回 decimal 或 bigint

jquery - IE 8 问题选择标签宽度 : option text gets truncated