View Javadoc

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  }