【问题标题】:Disable browser back button in spring mvc application after logout注销后禁用spring mvc应用程序中的浏览器后退按钮
【发布时间】:2017-06-10 11:20:35
【问题描述】:

当我从应用程序中注销时,我正在执行 spring mvc 应用程序>

      <interceptors>
            <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>
          </interceptors>

如果我单击浏览器后退按钮转到上一页再次注销,这仅适用于应用程序。

我尝试了 Javascript 和 Jquery 示例,但无法在我的 spring mvc 应用程序中工作。 任何人都可以在这方面建议我和遵循的方法。

【问题讨论】:

标签: javascript jquery spring spring-mvc


【解决方案1】:

好的,我在这里给你一个想法,告诉你如何做到这一点。 假设您在包com.test.filter 中有一个实现FilterSessionFilter 类。在这里,您覆盖 doFilter() 方法并检查会话是否存在:

public class SessionFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res,
                FilterChain chain) throws IOException,
                ServletException {

            HttpServletRequest request = (HttpServletRequest) req;
            HttpServletResponse response = (HttpServletResponse) res;
            String url = request.getRequestURI();

            response.setHeader("pragma", "no-cache");              
            response.setHeader("Cache-control", "no-cache, no-store, must-revalidate");             
            response.setHeader("Expires", "0"); 
            HttpSession session = request.getSession(false);

            //!url.contains("login.html") check if the requested page is login page or not. you can do it a numerous way.
            // but for simpplicity here i do that
            if(session==null && !url.contains("login.html")) {
                response.sendRedirect(request.getContextPath() + "/login.html"); // here goto http://yourdoamin/login.html
                response.setHeader("message", "Session Timeout."); // you can set your preffered message.
                return; //break filter chain, requested JSP/servlet will not be executed
            }

            chain.doFilter(req, res);
        }
}

现在将类引用添加到web.xml

<filter>
    <description>session filter</description>
    <filter-name>SessionFilter</filter-name>
    <filter-class>com.test.filter.SessionFilter</filter-class>
</filter>

【讨论】:

  • 感谢您的支持,希望能解决我的问题。
  • 如果这有帮助,那么您可以接受我的回答并投票赞成,因为这是 SO 的规范。 :)
猜你喜欢
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 2015-09-27
  • 2013-06-02
相关资源
最近更新 更多