View Javadoc

1   /*
2    * joey-sample1 and its relative products are published under the terms
3    * of the Apache Software License.
4    * 
5    * Created on 2004/12/08 6:02:25
6    */
7   package org.asyrinx.joey.hibernate.seasar.filter;
8   
9   import java.io.IOException;
10  
11  import javax.servlet.Filter;
12  import javax.servlet.FilterChain;
13  import javax.servlet.FilterConfig;
14  import javax.servlet.ServletContext;
15  import javax.servlet.ServletException;
16  import javax.servlet.ServletRequest;
17  import javax.servlet.ServletResponse;
18  import javax.servlet.http.HttpServletRequest;
19  
20  import org.apache.commons.logging.Log;
21  import org.apache.commons.logging.LogFactory;
22  import org.asyrinx.brownie.seasar.servlet.S2ContainerLoader;
23  import org.seasar.framework.container.S2Container;
24  
25  /***
26   * @author takeshi
27   */
28  public class OpenSessionInViewFilter implements Filter {
29  
30      final Log log = LogFactory.getLog(this.getClass());
31  
32      /***
33       *  
34       */
35      public OpenSessionInViewFilter() {
36          super();
37      }
38  
39      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
40              ServletException {
41          //S2Container container = SingletonS2ContainerFactory.getContainer();
42          final ServletContext context;
43          if (request instanceof HttpServletRequest) {
44              context = ((HttpServletRequest) request).getSession().getServletContext();
45          } else {
46              throw new ServletException("Couldn't get S2Container because request isn't HttpSession but "
47                      + request.getClass().getName());
48          }
49          final S2Container container = S2ContainerLoader.getContainer(context);
50          final RequestFilterChainTx chainProxy = (RequestFilterChainTx) container
51                  .getComponent(RequestFilterChainTx.class);
52          chainProxy.doFilter(request, response, chain);
53      }
54  
55      public void init(FilterConfig filterConfig) throws ServletException {
56          //do nothing
57      }
58  
59      public void destroy() {
60          //do nothing
61      }
62  
63  }