2010-02-12 54 views
4

如何使用spring处理浏览器按钮问题?如何使用spring处理浏览器按钮问题?

在我的应用程序用户登录的情况下正确的后退按钮页面状态的用户点击也不会保持。所以,我做维护页面状态甚至后退按钮/前进按钮,用户点击

感谢

+1

什么后退按钮的问题? –

+0

问题详细信息已更新 – Vicky

+0

您可以轻松地使用截取功能: http://stackoverflow.com/questions/26420941/how-handle-browser-back-button-in-spring-mvc/31217043#31217043 –

回答

5

显然是从浏览器缓存请求的页面。您需要禁用有问题页面的客户端缓存。您可以通过创建一个Filter监听你想禁用缓存的页面,如*.jspurl-pattern做到这一点。在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请求。

哦,别忘了先实施后和测试前清除浏览器缓存;)

0

配置Servlet上下文,因为这里面的拦截器:

<mvc:interceptors> 
    <mvc:interceptor> 
     <mvc:mapping path="/**/*"/> 
     <beans:bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor"> 
      <beans:property name="cacheSeconds" value="0"/> 
      <beans:property name="useExpiresHeader" value="true"/> 
      <beans:property name="useCacheControlHeader" value="true"/> 
      <beans:property name="useCacheControlNoStore" value="true"/> 
     </beans:bean> 
    </mvc:interceptor> 
</mvc:interceptors> 

注意:不要忘记删除你的额头在测试您的应用程序时使用ser cache