gpt4 book ai didi

java - 基于 spring java - 添加过滤器

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:09 26 4
gpt4 key购买 nike

在 xml 中为了添加 cors 过滤器,我们会在 web.xml 中执行类似的操作:

  <filter>
<filter-name>cors</filter-name>
<filter-class>MyCorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cors</filter-name>
<url-pattern>/secured/*</url-pattern>
</filter-mapping>

但是我们现在使用的是基于java的配置,我们如何以编程方式实现它?

最佳答案

如果我理解正确的话,你正在谈论基于java的spring配置。我们还使用基于 Java 的配置,但仍然使用 web.xml。您必须将 Java 配置文件添加为 web.xml 中的上下文参数,如下所示:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.spring.AppConfig</param-value>
</context-param>

因此,您仍然可以像上面那样添加过滤器。

或者,如果您使用 WebApplicationInitializer 来配置 ServletContext,则可以执行以下操作:

public class WebAppInitializer implements WebApplicationInitializer {  

@Override
public void onStartup(ServletContext container) throws ServletException {
container.addFilter("fooFilter", FooFilter.class);
}
}

编辑:回答评论中的问题 - 请记住我以前从未这样做过,但是通过查看 ServletContext 的文档和 FilterRegistration ,我建议尝试此方法将过滤器映射到特定 URL:

container.getFilterRegistration("fooFilter")
.addMappingForUrlPatterns(DispatcherType.REQUEST, true, "/secured/");

关于java - 基于 spring java - 添加过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25994424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com