1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.filter;
17
18 import java.io.IOException;
19
20 import javax.servlet.Filter;
21 import javax.servlet.FilterChain;
22 import javax.servlet.FilterConfig;
23 import javax.servlet.ServletException;
24 import javax.servlet.ServletRequest;
25 import javax.servlet.ServletResponse;
26 import javax.servlet.http.HttpServletRequest;
27 import javax.servlet.http.HttpServletResponse;
28
29 import org.seasar.cubby.controller.ActionProcessor;
30 import org.seasar.cubby.controller.ThreadContext;
31 import org.seasar.framework.container.SingletonS2Container;
32 import org.seasar.framework.log.Logger;
33
34
35
36
37
38
39
40
41 public class CubbyFilter implements Filter {
42
43
44
45
46 private static final Logger logger = Logger.getLogger(CubbyFilter.class);
47
48
49
50
51
52 public void init(final FilterConfig config) throws ServletException {
53 }
54
55
56
57
58
59 public void destroy() {
60 }
61
62
63
64
65
66 public void doFilter(final ServletRequest req, final ServletResponse res,
67 final FilterChain chain) throws IOException, ServletException {
68 try {
69 final HttpServletRequest request = (HttpServletRequest) req;
70 final HttpServletResponse response = (HttpServletResponse) res;
71 ThreadContext.setRequest(request);
72
73 final ActionProcessor processor = SingletonS2Container
74 .getComponent(ActionProcessor.class);
75 processor.process(request, response, chain);
76 } catch (final Throwable e) {
77 logger.log(e);
78 throw new ServletException(e);
79 } finally {
80 ThreadContext.remove();
81 }
82 }
83
84 }