为什么浏览器显示JSP页面的无效版本而另一个浏览器不显示

时间:2016-09-21 09:13:58

标签: jsp web browser

上下文

我正在处理的java应用程序的主页显示一个按钮面板。每个应用程序的特定单元。

这些按钮是禁用的服务器,是否是它的单位(布尔存储在数据库中)。

JSP页面创建一个bean并从服务中调用静态方法来检索布尔值并禁用或禁用按钮:

<jsp:useBean id="modules" class="appli.dto.ModulesDto" scope="session" />
   ${ AppliService:getModulesDto(sessionScope.modules) }

其中一个单位禁用/启用其他单位(在数据库中设置布尔值)

JSP根据请求生成并发送HTML主页(调用/刷新页面),一切正常。

问题

在切换其他人的单位中,为了验证更改触发同步保存新值调用,显示警报()然后重定向到主页。

作品:
重定向后,主页根据更新的数据库切换按钮。

然后行为取决于webbrowser NB :需要IE和FireFox版本。无法通过更新来解决问题

IE 11 :在重定向时,每个单位,除了行政一个 FF ESR 38.5.1 :显示上一页:

  • 首次更改:显示首页

  • 连续更改:显示上一次更改后应显示的页面(好像FF总是滞后一步)

Google Chrome 53.0.2785.116 :显示预期内容

在刷新时,每个浏览器都会显示预期的内容。

问题
浏览器显然彼此特别相似。 为什么他们这样做以及如何防止IE和FF的意外行为?

我尝试了什么

添加“无缓存”元标记。 我添加了以下标签作为推荐here

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

但我没有发现任何变化。

2 个答案:

答案 0 :(得分:0)

作为解决方法,请尝试更改IE上的Internet选项设置。 常规=&gt;设置=&gt;临时Internet文件 选择,每次我访问网页单选按钮。 单击“确定”关闭“设置”对话框。 单击“确定”关闭“Internet选项”对话框。

答案 1 :(得分:0)

首先在控制器(servlet或portlet)级别中尝试此操作

它通过向响应

添加缓存控制来在浏览器后退和转发时删除bfcache
response.setProperty("cache-control", "max-age=0,no-cache, no-store, must-revalidate"); 
response.setProperty("Pragma", "no-cache"); // HTTP 1.0
response.setProperty("Expires", "0"); // Proxies.

html标签

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

参考:

How to control web page caching, across all browsers?