Java Web中Filter的调用顺序

       在有些场景中需要指定过滤器的调用顺序,以达到对应的需求,比如编码过滤器和安全认证过滤器,一般情况下编码过滤器先被调用,然后是安全认证过滤器,这样的顺序保证可以使用正确的编码。那么过滤器的调用顺序和什么有关呢?

       Java Web中的过滤器有两种配置方式,在web.xml配置和注解的形式配置。

       一、在web.xml中配置Filter的调用顺序

       看下面的例子:



    
        characterEncodingFilter
        com.gyb.javaee.web.filter.CharacterEncodingFilter
    
    
        authenFilter
        com.gyb.javaee.web.filter.AuthenticationFilter
    
    
        characterEncodingFilter
        /*
    
    
        authenFilter
        /*
    

在这个web.xml中配置了两个过滤器 authenFilter和characterEncodingFilter,servlet容器首先会调用characterEncodingFilter,然后再调用authenFilter方法。这个调用顺序是和Filter的filter-mapping的配置有关,调用顺序从上到下,也就是说上面的配置先于下面的先调用,和filter配置的顺序无关

二、使用@WebFilter注解配置的Filter的调用顺序

      暂时不能确定顺序(没找到规律!查看Servlet规范也没找到相关的文档说明。若有大佬知道,请留言,谢谢!)。。。

三、使用web.xml和@WebFilter注解混合配置Filter

      暂时不能确定顺序(没找到规律!查看Servlet规范也没找到相关的文档说明。若有大佬知道,请留言,谢谢!)。。。

    

 

你可能感兴趣的:(Java,web)