package tv.dyndns.kishibe.qmaclone.server;
import java.io.IOException;
import java.util.Calendar;
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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.impl.cookie.DateUtils;
@WebFilter(urlPatterns = { "/*" })
public class PageExpiryFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) arg0;
HttpServletResponse resp = (HttpServletResponse) arg1;
String path = req.getServletPath();
if (path.endsWith(".nocache.js")) {
resp.setHeader("Pragma", "no-cache");
resp.setHeader("Cache-Control", "no-cache");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, -1);
resp.setHeader("Expires", DateUtils.formatDate(calendar.getTime()));
} else if (path.endsWith(".gif") || path.endsWith(".png") || path.endsWith(".css")
|| path.endsWith(".js")) {
resp.setHeader("Cache-Control", "public, max-age=" + 30 * 24 * 60 * 60);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 30);
resp.setHeader("Expires", DateUtils.formatDate(calendar.getTime()));
}
arg2.doFilter(arg0, arg1);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}