01: package org.nanocontainer.webcontainer;
02:
03: import java.io.IOException;
04:
05: import javax.servlet.Filter;
06: import javax.servlet.FilterChain;
07: import javax.servlet.FilterConfig;
08: import javax.servlet.ServletException;
09: import javax.servlet.ServletRequest;
10: import javax.servlet.ServletResponse;
11: import javax.servlet.http.HttpServletRequest;
12:
13: public class DependencyInjectionTestFilter implements Filter {
14:
15: private final Integer integer;
16: private String foo;
17:
18: public DependencyInjectionTestFilter(Integer integer) {
19: this .integer = integer;
20: }
21:
22: public void doFilter(ServletRequest request,
23: ServletResponse response, FilterChain chain)
24: throws IOException, ServletException {
25: HttpServletRequest req = (HttpServletRequest) request;
26: String servletPath = req.getServletPath();
27: if (servletPath.equals("/foo2")) {
28: request.setAttribute("foo2", " Filtered!(int= "
29: + integer.intValue()
30: + (foo != null ? " " + foo : "") + ")");
31:
32: }
33: chain.doFilter(request, response);
34: }
35:
36: public void init(FilterConfig filterConfig) throws ServletException {
37: String initParameter = filterConfig.getInitParameter("foo");
38: if (initParameter != null) {
39: foo = initParameter;
40: }
41: }
42:
43: public void destroy() {
44: }
45:
46: // used when handling this filter directly rather than letting Jetty instantiate it.
47: public void setFoo(String foo) {
48: this.foo = foo;
49: }
50: }
|