设置不使用缓存的过滤器(ClearCacheFilter)

功能描述

        将HTTP响应头信息中的缓存参数设置为不进行缓存。

使用方法

        在 java web 项目的 web.xml 文件中添加如下代码。

<!--设置不使用缓存的过滤器配置  开始 -->
< filter >
  < filter-name >ClearCacheFilter</ filter-name >
  < filter-class >com.hmw.filter.ClearCacheFilter</ filter-class >
</ filter >
 
< filter-mapping >
  < filter-name >ClearCacheFilter</ filter-name >
  < url-pattern >*.do</ url-pattern >
</ filter-mapping >
< filter-mapping >
  < filter-name >ClearCacheFilter</ filter-name >
  < url-pattern >*.jsp</ url-pattern >
</ filter-mapping >
<!--设置不使用缓存的过滤器配置  结束 -->

过滤器源码

package   com.hmw.filter;
 
import   java.io.IOException;
 
import   javax.servlet.Filter;
import   javax.servlet.FilterChain;
import   javax.servlet.FilterConfig;
import   javax.servlet.ServletException;
import   javax.servlet.ServletRequest;
import   javax.servlet.ServletResponse;
import   javax.servlet.http.HttpServletResponse;
 
/**
  * 使浏览器不缓存页面信息的过滤器<br>
  */
public   class   ClearCacheFilter implements   Filter {
 
     @Override
     public   void   init(FilterConfig filterConfig) throws   ServletException {
     }
 
     @Override
     public   void   doFilter(ServletRequest request, ServletResponse response,
             FilterChain filterChain) throws   IOException, ServletException {
         HttpServletResponse httpResponse = (HttpServletResponse) response;
         httpResponse.setHeader( "Cache-Control" , "no-cache" );
         httpResponse.setHeader( "Pragma" , "no-cache" );
         httpResponse.setDateHeader( "Expires" , - 1 );
         filterChain.doFilter(request, response);
     }
 
     @Override
     public   void   destroy() {
     }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Web中,可以通过使用过滤器设置静态资源的缓存。具体步骤如下: 1. 创建一个过滤器类,实现javax.servlet.Filter接口。在该类中,可以重写Filter接口的init()、doFilter()和destroy()方法。 2. 在doFilter()方法中,判断请求的资源是否为静态资源,如果是,则设置缓存。 3. 设置缓存的方法是通过设置响应头信息来实现的。在响应头中,可以设置Cache-Control、Expires和Last-Modified等属性,具体含义如下: - Cache-Control:设置缓存的控制策略,可以设置为max-age=n(缓存时间)或no-cache(不缓存)等。 - Expires:设置缓存的过期时间,可以设置为一个具体的日期时间,如“Sat, 01 Jan 2022 00:00:00 GMT”。 - Last-Modified:设置资源的最后修改时间,可以设置为一个具体的日期时间,如“Thu, 01 Jan 1970 00:00:00 GMT”。 例如,设置缓存时间为1小时,可以使用如下代码: ``` response.setHeader("Cache-Control", "max-age=" + 60 * 60); response.setDateHeader("Expires", System.currentTimeMillis() + 60 * 60 * 1000); ``` 4. 在web.xml文件中配置过滤器,并指定需要拦截的资源。 ``` <filter> <filter-name>CacheFilter</filter-name> <filter-class>com.example.CacheFilter</filter-class> </filter> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>*.css</url-pattern> <url-pattern>*.js</url-pattern> <url-pattern>*.jpg</url-pattern> <url-pattern>*.png</url-pattern> </filter-mapping> ``` 通过以上步骤,就可以使用过滤器设置静态资源的缓存了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值