使用Filter防止浏览器缓存页面或请求结果

只需要两步:

1、定义一个Filter:

public class NoCacheFilter implements Filter{

	@Override
	public void destroy(){

	}

	@Override
	public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException{
        HttpServletResponse response = (HttpServletResponse)resp;

        response.setDateHeader("Expires", -1);	//设置页面失效时间
        response.setHeader("Cache_Control", "no-cache");	//支持HTTP1.1
        response.setHeader("Pragma", "no-cache");	//支持HTTP1.0
        chain.doFilter(req, resp);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException	{

	}

}

2、在Web.xml中定义/注册这个Filter

	<!-- 防止浏览器缓存页面或请求结果 -->
	<filter>
        <filter-name>NoCacheFilter</filter-name>
        <filter-class>com.xyt.cgqm.mvc.filter.NoCacheFilter</filter-class>
    </filter>

(原创文章,转载请注明转自Clement-Xu的csdn博客。)

版权声明:本文为原创文章,转载请注明转自Clement-Xu的csdn博客。

时间: 2024-08-05 11:35:21

使用Filter防止浏览器缓存页面或请求结果的相关文章

【禁止缓存】如何禁止浏览器缓存页面内容

浏览器为了避免频繁地与服务器交互,提供了缓存功能.当频繁地访问同义jsp页面时,浏览器会将缓存中的结果取出为用户响应,并不向服务器发送请求,因此经常出现不能反映服务器最新处理结果的情况. 如果某个 jsp 或 servlet程序不需要客户浏览器缓存其相应内容,可以添加如下代码: response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-

Filter 禁止浏览器缓存动态资源,例如JSP资源 -学习笔记

当访问一个web资源时,没有得到对应的结果,有可能是Filter没有放行资源静态资源和动态资源进行不同的缓存处理,代码如下:====NO2判段是否以jsp结尾 处 import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; imp

前端开发JavaScript清除浏览器缓存的方法

查看和删除浏览器缓存的方法=====>打开 最近在开发项目中发现有时候总要频繁地清除浏览器缓存,不然总是显示的过时的信息 浏览器缓存有利有弊,有些数据需要缓存下来使得页面打开更快提高网站性能,但有些缓存内容又必须清除,缓存可能会导致一些错误数据被展示. 介绍一些清除浏览器缓存的方法: 方法一:利用meta标签 <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV=&quo

[原创]java WEB学习笔记45:自定义HttpFilter类,理解多个Filter 代码的执行顺序,Filterdemo:禁用浏览器缓存的Filter,字符编码的Filter,检查用户是否登陆过的Filter

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[开源]jquery-ajax-cache:快速优化页面ajax请求,使用localStorage缓存请求

项目:jquery-ajax-cache 地址:https://github.com/WQTeam/jquery-ajax-cache     最近在项目中用到了本地缓存localStorage做数据的缓存. 1.简单说下localStorage localStorage和cookies相比,在浏览器中存储的容量更大.另外最大的特点是不会附带在http请求中传给后台,不会像cookies一样导致http头部变大影响传输性能.基于这个原因,localStorage适合缓存一些常用的数据,无需平凡的

HTTP请求中浏览器缓存

本文导读:浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制.客户端缓存是否需要是可以在服务端代码上控制的.那就是响应头.响应头告诉缓存器不要保留缓存,缓存器就不会缓存相应内容:如果请求信息是需要认证或者安全加密的,相应内容也不会被缓存.那么,HTTP请求中浏览器是如何缓存数据呢? 一.HTTP请求中浏览器缓存流程图 1.浏览器第一次请求 2.浏览器再次请求时 二.HTTP请求中浏览器缓存流程的文字描述 1.当资源第一次被访问的时候,HTTP头部如下 (Request-Line) GET /

服务端控制各种浏览器禁止缓存页面资源 学习笔记

import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Demo2 extends HttpServlet { public voi

html__页面不让浏览器缓存

1. 在html头中加入以下3句话,可以防止大部分浏览器缓存: <meta http-equiv="pragma" content="no-cache"><meta http-equiv="Cache-Control" content="no-cache, must-revalidate"><meta http-equiv="expires" content="Wed

[开源] jQuery 插件,利用‘localStorage’ 对 jQuery AJAX进行缓存,优化页面ajax请求

jquery-ajax-cache 源码地址:https://github.com/WQTeam/jquery-ajax-cache jQuery插件——利用‘localStorage’ 和 ‘sessionStorage’ 对 jQuery AJAX 请求进行缓存. 首先说明下在什么场景下需要用到缓存ajax请求到localstorage中.都知道浏览器本身对http请求就是有缓存策略的,但是这种缓存方式两个缺陷:1.只能缓存get请求 2.同时缓存的设置都在后端响应的报文头部指定.(PS:现