| 
  /** 
  * CacheFilter.java 
  * 
  * Created on 9 Dec 2008,11:06:17 
  */ 
 package com.uk.spree4.utils; 
  
  
 import java.io.IOException; 
 import java.util.Date; 
  
  
 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; 
  
  
 /** 
  * Adds an expires header to paths defined in the web.xml 
  * @author 
  */ 
 public class CacheFilter implements Filter{ 
  FilterConfig filterC; 
  
  
  /* (non-Javadoc) 
  * @see javax.servlet.Filter#destroy() 
  */ 
  public void destroy() { 
  this.fc = null; 
   
  } 
  
  
  /* (non-Javadoc) 
  * @see
 javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
 javax.servlet.ServletResponse, javax.servlet.FilterChain) 
  */ 
  public void doFilter(ServletRequest request, ServletResponse
 response, 
  FilterChain chain) throws IOException, ServletException { 
  String path = 
  
  
 filterC.getInitParameter(((HttpServletRequest)request).getRequestURI()); 
  if (path!= null && path.equals("nocache"))
 { 
  chain.doFilter(request, response); 
  return; 
  } 
  
  
  long today = new Date().getTime(); 
  HttpServletResponse httpResponse =
 (HttpServletResponse)response; 
  httpResponse.setDateHeader("Expires",
 today+61536000000L); 
   
  chain.doFilter(request, response); 
  } 
  
  
  /* (non-Javadoc) 
  * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) 
  */ 
  public void init(FilterConfig arg0) throws ServletException { 
  this.fc = arg0; 
   
  } 
  
  
   
 } 
  |