springboot中javax.servlet.Filter原生接口的實現;而Spring的OncePerRequestFilter類實際上是一個實現了Filter接口的抽象類。spring對Filter進行了一些封裝處理。
OncePerRequestFilter,顧名思義,它能夠確保在一次請求中只通過一次filter,而不需要重複的執行。大家常識上都認爲,一次請求本來就只filter一次,爲什麼還要由此特別限定呢,往往我們的常識和實際的實現並不真的一樣,經過一番資料的查閱,此方法是爲了兼容不同的web container,也就是說並不是所有的container都入我們期望的只過濾一次,servlet版本不同,執行過程也不同,因此,爲了兼容各種不同運行環境和版本,默認filter繼承OncePerRequestFilter是一個比較穩妥的選擇。
SpringBoot讓重複執行的filter實現一次執行過程的解決方案,官網地址:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-disable-registration-of-a-servlet-or-filter。
原文鏈接:https://blog.csdn.net/u013089490/article/details/84878319