ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
使用servlet过滤器时,显然需要`在web.xml`中声明它们,否则servlet容器将忽略它们。 在Spring Security中,过滤器类也是在应用程序上下文中定义的Spring bean,因此能够利用Spring丰富的依赖注入工具和生命周期接口。 Spring的`DelegatingFilterProxy`提供了`web.xml`和应用程序上下文之间的链接。 ~~~ <filter> <filter-name>myFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ~~~ 请注意,过滤器实际上是`DelegatingFilterProxy`,而不是实际实现过滤器逻辑的类。 `DelegatingFilterProxy`所做的是将`Filter`的方法委托给从Spring应用程序上下文中获取的bean。 这使bean能够受益于Spring Web应用程序上下文生命周期支持和配置灵活性。 bean必须实现`javax.servlet.Filter`,它必须与`filter-name元`素中的名称相同。 有关更多信息,请阅读Javadoc for `DelegatingFilterProxy`