注销Struts 2.0应用程序后的chrome后退按钮

时间:2018-08-09 18:34:05

标签: java google-chrome jsp struts2 browser-cache

当用户注销应用程序并单击chrome浏览器中的“后退”按钮时,用户将查看“确认表单重新提交”,而不是应用程序的登录页面。在Internet Explorer中看不到相同的行为。
成功注销后,即清除应用程序会话,并在Jsp中添加以下行

enter image description here

<%response.setContentType("text/html; charset=iso-8859-1");
  response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
  response.setHeader("Pragma", "no-cache");
  response.setHeader("Expires","0");
%>

如果用户单击“确认表单重新提交”页面中的刷新,则他将导航到主页。

我尝试实现会话变量用户名并在jsp中检查该变量。由于我们正在清除缓存,因此没有要加载的jsp页面。 enter image description here

任何解决该问题的方法将不胜感激。

1 个答案:

答案 0 :(得分:1)

这是使用“ post”方法提交的每个表单的典型问题。我的建议是在注销成功后使用redirect,请参见示例herehere(Post-Redirect-Get-pattern)。尝试保护软件的行为并通知用户,您不能阻止用户使用此按钮。

如果要强制浏览器在用户使用浏览器的导航按钮时刷新每个页面,则

控制缓存等是一个不错的选择。但是您必须记住,用户要使用后退/前进按钮访问的“上一页”页面必须具有这些缓存选项。您可以尝试通过Tomcat为所有站点实现更通用的缓存选项。