1 package org.displaytag.filter; 2 3 import java.io.IOException ; 4 5 import javax.servlet.Filter ; 6 import javax.servlet.FilterChain ; 7 import javax.servlet.RequestDispatcher ; 8 import javax.servlet.ServletException ; 9 import javax.servlet.ServletRequest ; 10 import javax.servlet.ServletResponse ; 11 import javax.servlet.http.HttpServlet ; 12 import javax.servlet.http.HttpServletRequest ; 13 import javax.servlet.http.HttpServletResponse ; 14 15 import org.apache.commons.lang.StringUtils; 16 import org.apache.commons.logging.Log; 17 import org.apache.commons.logging.LogFactory; 18 19 20 28 public class MockFilterSupport extends HttpServlet 29 { 30 31 34 public static final String FILTERED_EXTENSION = ".filtered"; 35 36 39 protected static Log log = LogFactory.getLog(MockFilterSupport.class); 40 41 44 private static final long serialVersionUID = 899149338534L; 45 46 49 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException , IOException 50 { 51 log.debug("Mock servlet called, simulating filter"); 52 Filter filter = new ResponseOverrideFilter(); 53 filter.init(null); 54 filter.doFilter(request, response, new MockFilterChain()); 55 } 56 57 60 public static class MockFilterChain implements FilterChain 61 { 62 63 66 public void doFilter(ServletRequest request, ServletResponse response) throws IOException , ServletException 67 { 68 String uri = ((HttpServletRequest ) request).getRequestURI(); 69 String requestContext = ((HttpServletRequest ) request).getContextPath(); 70 71 if (StringUtils.isNotEmpty(requestContext) && uri.startsWith(requestContext)) 72 { 73 uri = uri.substring(requestContext.length()); 74 } 75 76 uri = StringUtils.replace(uri, FILTERED_EXTENSION, ""); 77 78 if (log.isDebugEnabled()) 79 { 80 log.debug("Redirecting to [" + uri + "]"); 81 } 82 RequestDispatcher dispatcher = request.getRequestDispatcher(uri); 83 dispatcher.forward(request, response); 84 } 85 86 } 87 88 } | Popular Tags |