Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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 如何使用Struts2禁用后退按钮_Java_Struts2 - Fatal编程技术网

Java 如何使用Struts2禁用后退按钮

Java 如何使用Struts2禁用后退按钮,java,struts2,Java,Struts2,我使用的是struts.service.static=true和struts.service.static.browserCache=false,但即使在注销后,“后退”按钮仍然有效。当我点击后退按钮时,它将进入上一个屏幕。如何解决此问题?S2将使用上述常量告知浏览器是否需要缓存静态内容 struts.serve.static=true 上述属性由FilterDispatcher 如果为true,那么Struts从jar内部提供静态内容 如果为false,则静态内容必须在/struts上可用

我使用的是
struts.service.static=true
struts.service.static.browserCache=false
,但即使在注销后,“后退”按钮仍然有效。当我点击后退按钮时,它将进入上一个屏幕。如何解决此问题?

S2将使用上述常量告知浏览器是否需要缓存静态内容

struts.serve.static=true
上述属性由
FilterDispatcher

  • 如果为true,那么Struts从jar内部提供静态内容
  • 如果为false,则静态内容必须在/struts上可用
另外,
struts.service.static.browserCache=true
FilterDispatcher
使用,并且仅当
struts.service.static=true
时才起作用

  • 如果为true->Struts将写出静态内容的标题,以便 由web浏览器缓存(使用日期、缓存内容、Pragma和Expires) 标题)
  • 如果为false->Struts将写出静态内容的标题,以便 不被web浏览器缓存(使用缓存内容,Pragma,过期 标题) 简而言之,这两个常量都是告诉浏览器是否需要缓存S2提供的静态内容的一种方法
关于浏览器后退按钮,我们不能禁用浏览器后退按钮,因为它是浏览器API的一部分,当您点击后退按钮时,浏览器将从其缓存中提供内容而不点击服务器

您可以通过使用“缓存控制头”命令浏览器不要缓存内容,但它会根据浏览器是否尊重这些内容来决定。在JSP中使用以下代码

response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
或者,您可以创建一个拦截器,并使用所需的操作对其进行配置,以便可以设置标头。 有关如何在S2中控制缓存的更多详细信息,请浏览以下线程


创建一个自定义拦截器,将头添加到每个
响应中,这比将
响应.setHeader
添加到每个jsp(如果使用Struts2)更简单。

请检查一个漂亮的例子,它工作良好