您的位置:首页 > 其它

禁用浏览器缓存的过滤器

2016-11-22 11:42 211 查看
代码如下:

过滤器代码

package filter;
public class NoCacheFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletResponse.setDateHeader("Expires", -1);
httpServletResponse.setHeader("Cache-Control", "no-cache");
httpServletResponse.setHeader("Pragma", "no-cache");
chain.doFilter(httpServletRequest, httpServletResponse);

}

@Override
public void destroy() {}

}

在web.xml中配置

<filter>
<filter-name>noCacheFilter</filter-name>
<filter-class>filter.NoCacheFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>noCacheFilter</filter-name>
<url-pattern>要过滤的页面</url-pattern>
</filter-mapping>


  下面三行代码都可以禁止浏览器缓存当前页面,但是并不是所有的浏览器都能完全支持其中的三个响应头, 因此最好是同时使用这三行代码。

httpServletResponse.setDateHeader("Expires", -1);
httpServletResponse.setHeader("Cache-Control", "no-cache");
httpServletResponse.setHeader("Pragma", "no-cache");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  浏览器 缓存 filter
相关文章推荐