如何在具有前端控制器模式的Java Web应用程序中有效地持久保存复选框选择?

时间:2014-05-20 14:00:41

标签: java javascript ajax session cookies

关于在离开或更新网页时保留复选框选项有几个问题和答案,但考虑到我的网络应用程序的代码结构,其中大部分都执行起来要复杂得多。

我得到了什么:

  • 遵循前端控制器模式的Java Web应用程序。前控制器拦截所有URL,然后根据策略模式查找相关操作,并在重定向到新页面或旧页面之前执行更新。
  • 其中一个页面有三类复选框,可以切换页面元素的可见性。每个类别都有大约4-6个单一复选框。

我需要的是什么:

  • 在离开网站时,保留用户所选复选框的有效方法。它是饼干或会话是任意的。如果数据保存很短或很长一段时间并不重要,但至少对于每个会话都是如此。

我尝试了什么:

  • 使用Ajax的基本教程,用于发送复选框每次更改的更新。但是,它们的基础是与自己的servlet进行通信,而servlet不符合拦截所有URL的Front Controller模式的意识形态。

  • 缓存数据。但是,我不知道cookie的范围,或者我应该如何使用它们。如果我应该为整个选择使用一个cookie,或者为每个类别的复选框使用一个cookie。

  • 在Javascript中直接设置会话变量,由于服务器端/客户端冲突,这是不可能的。

  • 每次复选框更改时,都会向前端控制器servlet发送一个单独的调用,但这可能会导致大量服务器调用,我认为这是不必要的。

我有一种感觉,Ajax是这里的方式,但是所有比我目前工作的解决方案更有效的解决方案都是非常受欢迎的。很抱歉,我无法发布任何示例代码,因为webapp是在我的localhost上开发的,无法从外部访问。

1 个答案:

答案 0 :(得分:0)

您可以编写一个javascript函数,该函数会在“点击”按下时切换。三个复选框之一?然后,此javascript函数可以向您的控制器执行GET或POST请求。