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
42
43
44 public class CubbyFilter implements Filter {
45
46
47
48
49 private static final Logger logger = Logger.getLogger(CubbyFilter.class);
50
51
52
53
54 public void init(final FilterConfig config) throws ServletException {
55 }
56
57
58
59
60 public void destroy() {
61 }
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 public void doFilter(final ServletRequest req, final ServletResponse res,
81 final FilterChain chain) throws IOException, ServletException {
82 try {
83 final HttpServletRequest request = (HttpServletRequest) req;
84 final HttpServletResponse response = (HttpServletResponse) res;
85 ThreadContext.setRequest(request);
86
87 final ActionProcessor processor = SingletonS2Container
88 .getComponent(ActionProcessor.class);
89 processor.process(request, response, chain);
90 } catch (final Throwable e) {
91 logger.log(e);
92 throw new ServletException(e);
93 } finally {
94 ThreadContext.remove();
95 }
96 }
97
98 }