package cn.lnu.web.filter.example;
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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//������������������
public class CacheFilter implements Filter {
private FilterConfig config;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request=(HttpServletRequest) req;
HttpServletResponse response=(HttpServletResponse) resp;
String css=config.getInitParameter("css");
String js=config.getInitParameter("js");
//1.��ȡ���û�����ʵ���Դ
String uri=request.getRequestURI();//�û�����ʵ���Դ������request���л��
//2����ȡ����Դ�������ļ����õĻ���ʱ�䣬�����ļ������õ�ֵ���Ƿ���Ϊ��λ��
int expires=0;
if(uri.endsWith(".bmp")){
expires=Integer.parseInt(config.getInitParameter("bmp"));
}else if(uri.endsWith(".css")){
expires=Integer.parseInt(config.getInitParameter("css"));
}else{
expires=Integer.parseInt(config.getInitParameter("js"));
}
//3,ʹ��response���û���ͷ���ڶ�������ֵ��long�͵ĺ���ֵ,���ʱ��ֵ��Ҫ����1970�꿪ʼ��ʱ�䣬������Ҫ��һ����ǰ��ʱ��ֵ
response.setDateHeader("Expires", System.currentTimeMillis()+expires*60*1000);
//4������,��ôһ��Ŀ����Դ�õ��Ķ������ú�responseͷ��response��ʹ�����respose���ʱ�����ݶ��ᰴָ�������ļ�ʱ��ֵ����
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
//��סweb.xml��Ϊ�ù��������õIJ���
this.config=filterConfig;
}
}