Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在具有前端控制器模式的java web应用程序中有效地保留复选框选择?_Java_Javascript_Ajax_Session_Cookies - Fatal编程技术网

如何在具有前端控制器模式的java web应用程序中有效地保留复选框选择?

如何在具有前端控制器模式的java web应用程序中有效地保留复选框选择?,java,javascript,ajax,session,cookies,Java,Javascript,Ajax,Session,Cookies,关于在离开或更新网页时保留复选框选择,有几个问题和答案,但考虑到我的web应用程序的代码结构,大多数问题和答案执行起来要复杂得多 我得到的: 遵循前端控制器模式的Java web应用程序。所有URL都被前端控制器截取,前端控制器根据策略模式查找相关操作,并在重定向到新页面或旧页面之前执行更新 少数几个页面中有一个有三类复选框,用于切换页面元素的可见性。每个类别都有大约4-6个单个复选框 我需要什么: 一种有效的方法,可以在离开站点时保留用户选择的复选框。无论是cookies还是会话都是任意

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

我得到的:

  • 遵循前端控制器模式的Java web应用程序。所有URL都被前端控制器截取,前端控制器根据策略模式查找相关操作,并在重定向到新页面或旧页面之前执行更新
  • 少数几个页面中有一个有三类复选框,用于切换页面元素的可见性。每个类别都有大约4-6个单个复选框
我需要什么:

  • 一种有效的方法,可以在离开站点时保留用户选择的复选框。无论是cookies还是会话都是任意的。数据是短时间保存还是长时间保存并不重要,但至少在每个会话中都是如此
我所尝试的:

  • 使用Ajax的基本教程,用于发送复选框每次更改的更新。但是,它们基于与自己的servlet通信,这与拦截所有URL的前端控制器模式思想不一致

  • 饼干。然而,我不知道cookie的范围,或者我应该如何使用它们。例如,如果我应该为整个选择使用一个cookie,或者为每个复选框类别使用一个cookie

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

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


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

您可以编写一个javascript函数,只需单击三个复选框中的一个即可切换?然后,此javascript函数可以依次向控制器发出GET或POST请求。

是的,我可以。:)。但这真的有效吗?正如我在问题中所说,这将导致大量服务器请求。我明白了,很抱歉我误读了。我认为使用Ajax,您将获得尽可能多的服务器请求,因为它仍然需要与您的服务器通信。是的,看来cookie解决方案可能是最好的。我现在正在做。