听说没有顺序,但是我自定义一个Filter加入了却不能拦截,调整了位置才行,难道是被其他的框架Filter先filter了?
别说是顺序,就是Filter都没执行。(能够初始化init).

解决方案 »

  1.   

    Filter当然有顺序了。Filter的init方法是在程序启动的时候执行的
      

  2.   

    web.xml里面不仅要定义,配置顺序
    还要配具体的filter-name
    url-pattern后才能起作用
    跟servlet的配置是一个道理
      

  3.   

    一、程序发布的时候将会执行filter中的init()方法。
    二、当匹配的url出现的时候,按照web.xml中的配置决定chain的执行顺序。示例代码:
    <filter>
            <filter-name>B Filter</filter-name>
            <filter-class>cmn.RequestFilter</filter-class>        
    </filter>
    <filter>
            <filter-name>A Filter</filter-name>
            <filter-class>cmn.AuthorizeFilter</filter-class> 
    </filter>
    <filter-mapping>
            <filter-name>A Filter</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping><filter-mapping>
            <filter-name>B Filter</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>执行顺序:A Filter开始->B Filter开始->A Filter结束->B Filter结束
      

  4.   

    <servlet-name>Faces Servlet</servlet-name>
    这个不应该是url-pattern么?这个不是应该放映射路径么?