如何使用Spring处理后退浏览器按钮问题?


问题内容

如何使用Spring处理后退浏览器按钮问题?

在我的应用程序中,用户正确登录并且当用户单击“后退”按钮时,页面状态无法保持。所以即使用户单击后退按钮/前进按钮,我也要保持页面状态

谢谢


问题答案:

显然,页面是从浏览器缓存中请求的。您需要禁用相关页面的客户端缓存。您可以通过创建一个Filter来侦听url- pattern您要为其禁用缓存的页面中的一个,例如*.jsp。在doFilter()方法中执行以下操作:

HttpServletResponse httpres = (HttpServletResponse) response;
httpres.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
httpres.setHeader("Pragma", "no-cache"); // HTTP 1.0.
httpres.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);

这样,将指示客户端应用程序 缓存与url-pattern该过滤器匹配的请求。然后,按下“后退”按钮将强制服务器发出带有所建议的新数据的
真实 请求。要在请求之间保留某些服务器端数据,您需要获取会话范围或仅使用GET请求。

哦,不要忘记在实施之后和测试之前先清除浏览器缓存;)