首页 » 生活 » 正文

禁止页面缓存的一个简易filter实现

在b/s结构的程序中,有时我们希望页面的内容不要缓存到客户端。例如目前流行的视频网站,如果视频被缓存到客户端的话,版权就得不到保护了。要实现这一功能,可以用filter来禁止页面缓存,这样就不用再在每个页面里去加那几行代码了。

package beanservlettest;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class servfilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
try {
request.setCharacterEncoding(GB2312);//设置编码
((HttpServletResponse)response).setHeader(Pragma,No-cache);
((HttpServletResponse)response).setHeader(Cache-Control,no-cache);
((HttpServletResponse)response).setHeader(Expires,0);//禁止缓存
//自己添加的代码就这上面四行,其它的都是Jbuilder自动生成的:)
filterChain.doFilter(request, response);
}
catch(ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
}
catch(IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}
//Clean up resources
public void destroy() {
}
}

下面是在web.xml里的配置:
(我的是Jbuilder自动生成的)

servfilter
beanservlettest.servfilter


servfilter

本文内容转载自http://blog.sina.com.cn/s/blog_5ce5700e0100bb6i.html
/* ///这里表示对整个网站都有效

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据