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.controller.ThreadContext;
16 import org.seasar.framework.container.SingletonS2Container;
17 import org.seasar.framework.log.Logger;
18
19
20
21
22
23
24
25
26 public class CubbyFilter implements Filter {
27
28
29
30
31 private static final Logger logger = Logger.getLogger(CubbyFilter.class);
32
33
34
35
36
37 public void init(final FilterConfig config) throws ServletException {
38 }
39
40
41
42
43
44 public void destroy() {
45 }
46
47
48
49
50
51 public void doFilter(final ServletRequest req, final ServletResponse res,
52 final FilterChain chain) throws IOException, ServletException {
53 try {
54 final HttpServletRequest request = (HttpServletRequest) req;
55 final HttpServletResponse response = (HttpServletResponse) res;
56 ThreadContext.setRequest(request);
57
58 final ActionProcessor processor = SingletonS2Container
59 .getComponent(ActionProcessor.class);
60 processor.process(request, response, chain);
61 } catch (final Throwable e) {
62 logger.log(e);
63 throw new ServletException(e);
64 } finally {
65 ThreadContext.remove();
66 }
67 }
68
69 }