怎么得到一个filterConfig对象呀

解决方案 »

  1.   

    init(FilterConfig filterConfig)方法没有运行?不可能吧,web.xml里面配置正确吗?
    你怎么知道没有运行的?
    init(FilterConfig filterConfig)里面的filterConfig是由中间件实现传进来的,你在init方法里面把它保存下来就可以了
      

  2.   

    to: zhaoxichao(小西)
    我在doFilter()中用
    if (this.filterConfig==null){
     System.out.println("null ");
    }做判断为NULL另在init(FilterConfig filterConfig)方法中加了一条
    System.out.println("init");
    控制台没有输出。
      

  3.   

    web.xml
    -----------  <filter>
        <filter-name>sessionfilter</filter-name>
        <filter-class>myweb.Filer.SessionFilter</filter-class>
        <init-param>
          <param-name>ERROR_PAGE</param-name>
          <param-value>systemerror.jsp</param-value>
        </init-param>
        <init-param>
          <param-name>LOGIN_NAME</param-name>
          <param-value>userVO</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>sessionfilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      <servlet>
        <servlet-name>loginservlet</servlet-name>
        <servlet-class>myweb.Servlet.LoginServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>registerservlet</servlet-name>
        <servlet-class>myweb.Servlet.RegisterServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>loginservlet</servlet-name>
        <url-pattern>/loginservlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>registerservlet</servlet-name>
        <url-pattern>/registerservlet</url-pattern>
      </servlet-mapping>
    </web-app>
    ---------
    配置文件应该没有问题
    我现在想取出初始化参数,可是filterConfig为NULL,取不出来。
      

  4.   

    你那个this.filterConfig是自己定义的变量吧?在init()方法中赋值一下。
      

  5.   

    to:  treeClimber(我以我血荐轩辕)
    我的
    public void init(FilterConfig filterConfig) {
          this.filterConfig = filterConfig;
    }
    已经赋了呀!
      

  6.   

    全部代码:
    public class SessionFilter extends HttpServlet implements Filter {
      private FilterConfig filterConfig=null;
      //Handle the passed-in FilterConfig  public void init(FilterConfig filterConfig) {      System.out.println("init");
          this.filterConfig = filterConfig;
      }
      //Process the request/response pair
       public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
        try {
              .....
              .....
              filterChain.doFilter(request,response);
            
        }
        catch(ServletException sx) {
          filterConfig.getServletContext().log(sx.getMessage());
        }
        catch(IOException iox) {
          filterConfig.getServletContext().log(iox.getMessage());
        }  }
      //Clean up resources
      public void destroy() {
      }  public FilterConfig getFilterConfig() {
        return this.filterConfig;
      }  public void setFilterConfig(FilterConfig filterConfig) {  }
    }
      

  7.   

    哈哈,我解决了.
    原来它是由setFilterConfig(FilterConfig filterConfig)传参数进来。我说用jbuidler建filter的时候怎么老提要我建个setFilterConfig()方法了,现在明白了。
    不过还是谢谢个位了。