1 package org.seasar.cubby.filter; 2 3 import java.io.IOException; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest; 10 import javax.servlet.ServletResponse; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 14 import org.seasar.cubby.controller.ActionProcessor; 15 import org.seasar.cubby.util.RequestHolder; 16 import org.seasar.framework.container.S2Container; 17 import org.seasar.framework.container.factory.SingletonS2ContainerFactory; 18 import org.seasar.framework.log.Logger; 19 20 public class CubbyFilter implements Filter { 21 22 private final Logger logger = Logger.getLogger(this.getClass()); 23 24 public void init(final FilterConfig config) throws ServletException { 25 } 26 27 public void destroy() { 28 } 29 30 public void doFilter(final ServletRequest req, final ServletResponse res, 31 final FilterChain chain) throws IOException, ServletException { 32 try { 33 final HttpServletRequest request = (HttpServletRequest) req; 34 final HttpServletResponse response = (HttpServletResponse) res; 35 RequestHolder.setRequest(request); 36 37 final S2Container container = SingletonS2ContainerFactory 38 .getContainer(); 39 final ActionProcessor processor = (ActionProcessor) container 40 .getComponent(ActionProcessor.class); 41 processor.process(request, response, chain); 42 } catch (final Throwable e) { 43 logger.log(e); 44 throw new ServletException(e); 45 } finally { 46 RequestHolder.remove(); 47 } 48 } 49 50 }