【问题标题】:Spring filter mapping in Java driven configurationJava驱动配置中的Spring过滤器映射
【发布时间】:2016-03-10 18:52:40
【问题描述】:

我的项目中没有使用 web.xml。因此,我为我的 MVC 配置扩展了 WebMvcConfigurerAdapter,并为初始化应用程序扩展了 AbstractAnnotationConfigDispatcherServletInitializer。我需要将编码设置为 UTF-8。如何添加过滤器映射?

我想在基于 Java 的配置中实现以下代码。

 <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

【问题讨论】:

    标签: java spring utf-8


    【解决方案1】:

    你可以在你的配置类中添加一个 bean

    @Bean
    public FilterRegistrationBean encodingFilter() {
        CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter("UTF-8", true);
        FilterRegistrationBean filterRegBean = new FilterRegistrationBean();
        filterRegBean.setUrlPatterns(getRootPathUrls());
        filterRegBean.setFilter(encodingFilter);
        filterRegBean.setOrder(1);
        return filterRegBean;
    }
    
    private List<String> getRootPathUrls() {
        List<String> urlPatterns = new ArrayList<String>();
        urlPatterns.add("/*");
        return urlPatterns;
    }
    

    文档 Here

    【讨论】:

    • 我没有使用 Spring Boot。
    【解决方案2】:

    我找到了解决方案here

    @Configuration
    @EnableWebMvcSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            CharacterEncodingFilter filter = new CharacterEncodingFilter();
            filter.setEncoding("UTF-8");
            filter.setForceEncoding(true);
            http.addFilterBefore(filter,CsrfFilter.class);
            //rest of your code   
        }
    //rest of your code
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-01
      • 1970-01-01
      • 2015-11-04
      • 2021-12-05
      • 1970-01-01
      • 2018-09-13
      • 2016-01-31
      • 2017-10-03
      • 2019-01-08
      相关资源
      最近更新 更多