Filter 是 java 的一个重要组件,通常对 filter 是通过 xml 配置文件来配置的。web服务器根据Filter在web.xml中的注册顺序,决定先调用哪个Filter,当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法,在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第二个filter,如果没有,则调用目标资源。
当使用注释来配置过滤器的时候,对执行的现后顺序是先按照包名的字母顺序来决定谁先执行
例如这种情况
首先会对比包名,filterA在filterB的前面所以会先执行filterA包中的过滤器文件,然后在执行filterB包中的文件。
若是同一个包下的 filter 文件,则比较 filter 文件的首字母,若首字母相同则比较下一个字母。
这就是过滤器注释方式的执行顺序选择。