【问题标题】:chrome back button after logout Struts 2.0 application注销 Struts 2.0 应用程序后的 chrome 后退按钮
【发布时间】:2019-01-17 07:34:42
【问题描述】:

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

<%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");
%>

如果用户在确认表单重新提交页面中单击刷新,那么他将导航到主页。

我试图实现一个会话变量 username 并检查 jsp 中的变量。因为我们正在清除缓存,所以没有要加载的 jsp 页面。

我们将不胜感激。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-12
      • 2017-06-10
      • 2019-04-19
      • 2011-08-05
      • 2023-03-29
      • 2015-07-11
      • 2013-09-21
      • 1970-01-01
      • 2013-06-10
      相关资源
      最近更新 更多