0

当我第一次通过浏览器输入 url 时,我的 servlet 过滤器被命中。例如,appPages/Nav.xhtml?id=1第一次在浏览器中粘贴确实会刷新页面。现在,当我将查询字符串更改为appPages/Nav.xhtml?id=2也刷新页面时。

但是我第三次进入appPages/Nav.xhtml?id=1它仍然记得旧阶段并且我的过滤器从未被调用过。在我的 web.xml 中,我将过滤器配置为

<filter>
    <display-name>SearchParamsFilter</display-name>
    <filter-name>SearchParams</filter-name>
    <filter-class>com.acme.filter.SearchParams</filter-class>
</filter>
<filter-mapping>
     <filter-name>SearchParams</filter-name>
     <url-pattern>/appPages/Nav.xhtml</url-pattern>
 </filter-mapping>

为什么要记住旧的状态?仅当我再次在同一选项卡同一窗口中输入 url 时才会发生这种情况。但是重新加载工作正常。

更新:它在 Chrome 上运行良好,但在 IE 上不行!

4

1 回答 1

0

它可能是由客户端缓存引起的。确保通过在 servlet 和/或过滤器中设置适当的响应标头来禁用缓存。有关详细说明,请参阅以下答案:

如何防止 Servlet 的结果被缓存?

Java servlet如何禁用页面缓存

于 2013-04-02T20:19:18.397 回答