【问题标题】:Back button filter not working后退按钮过滤器不起作用
【发布时间】:2009-12-08 09:59:36
【问题描述】:

我已经配置了一个过滤器来禁用我的浏览器后退按钮并将用户显示为会话已过期。当我在我的应用程序原型中配置它时,它可以按预期工作,但是当我将它合并到我的(spring MVC)应用程序中时它不起作用。

我已经像这样配置了我的过滤器

<filter>
    <filter-name>backButtonFilter</filter-name>
    <filter-class>
        com.filters.BackButtonFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>backButtonFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

我的过滤器内容是这样的

response.setHeader("cache-control", "no-cache, no-store, must-revalidate");
response.setHeader("pragma", "no-cache");
response.setDateHeader("expires", 0);
response.setHeader("Cache-Type", "private");

我已经引入了日志语句来查看我的过滤器是否正在执行。我可以看到它正在执行。

为什么会这样?

【问题讨论】:

    标签: javascript java spring spring-mvc back-button


    【解决方案1】:

    我可以建议使用Firebug 来检查浏览器端的HTTP 标头吗?这应该可以更容易地了解它们为什么没有按预期工作。

    编辑需要注意的一件事是,确保所有 HTTP 标头都在 HTTP 正文之前写出。

    【讨论】:

    • 我不知道有火虫。我会尝试跟踪这个
    【解决方案2】:

    尝试在 Servlet 上下文中配置一个拦截器,如下所示:

    <!--  configuration for handling browser back button  -->
    <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>
    

    但是无论会话是否实时,都应该在您的视图(HTML 或 JSP)中进行验证或处理。您可以在视图中使用以下元标记来表示 no-cache 和 no-store

    <meta http-equiv="Cache-control" content="no-cache">
    

    <META HTTP-EQUIV="Cache-Control" CONTENT="No-Cache,Must-Revalidate,No-Store">
    

    如果您使用 GET 提交表单,用户始终可以通过点击后退按钮进入结果屏幕。

    如果你使用 POST,浏览器会说这可能是不可能的。

    【讨论】:

      猜你喜欢
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 2014-12-27
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多