Filter 执行原理和执行顺序

执行原理

底层中存在一个map和一个数组。
一个map:Map的key为的值,value为Filter实例对象的引用。
一个数组:存在着和请求相匹配的Filter引用。
执行过程:当对某资源的请求到web容器时,会先对请求解析,使用解析出来的URI作为一个比较对象,从Map中查找是否存在相匹配的key。若存在,那么读取其中的value,即filter对象的引用,将该引用存入到数组中,然后继续查找,直到该Map查找完毕。这样在数组中就会存在按照查找顺序排好序的filter引用。
数组初始化完毕后,开始按照数组元素顺序进行执行,所有数组中的filter全部执行完毕以后,再跳转到请求的目标资源。

执行顺序

可以看出filter的执行顺序时按照数组中的顺序查找,而map中的顺序是按照注册的filter顺序。所以说请求目标资源一致时先注册的filter先执行。

发布了114 篇原创文章 · 获赞 8 · 访问量 5474

猜你喜欢

转载自blog.csdn.net/OVO_LQ_Start/article/details/104995445
今日推荐