Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在没有web.xml的情况下编写Encodingfilter配置_Java_Spring_Spring Mvc_Jakarta Ee - Fatal编程技术网

Java 如何在没有web.xml的情况下编写Encodingfilter配置

Java 如何在没有web.xml的情况下编写Encodingfilter配置,java,spring,spring-mvc,jakarta-ee,Java,Spring,Spring Mvc,Jakarta Ee,在我的项目中,Encodingfilter是在WEB.XML中编写的。但是我想在没有WEB.XML的情况下编写它,我只想在java类中编写 在my WEB.XML中编码过滤器 没有WEB.xml,如何在JAVA类中编写它 <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEn

在我的项目中,Encodingfilter是在WEB.XML中编写的。但是我想在没有WEB.XML的情况下编写它,我只想在java类中编写

在my WEB.XML中编码过滤器
没有WEB.xml,如何在JAVA类中编写它

<filter>
    <filter-name>encodingFilter</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>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
编码滤波器
/*
我写得对吗

public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Value("${spring.servlet.multipart.max-file-size}")

    private int maxFileSize;

    @Value("${spring.servlet.multipart.max-request-size}")

    private int maxRequestSize;

    @Autowired

    private Environment environment;

    @Override
    protected Class<?>[] getRootConfigClasses() {

        return new Class[]{HibernateConfig.class/*, SecurityConfig.class*/};

    }

    @Override
    protected Class<?>[] getServletConfigClasses() {

        return new Class[]{WebMvcConfig.class};

    }

    @Override
    protected String[] getServletMappings() {

        return new String[]{"/"};

    }

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        filter.setForceEncoding(true);
        return new Filter[]{filter};
    }
}
公共类ServletInitializer扩展了AbstractAnnotationConfigDispatchersServletInitializer{
@值(${spring.servlet.multipart.max file size})
私有int-maxFileSize;
@值(${spring.servlet.multipart.max request size})
私有int-maxRequestSize;
@自动连线
私人环境;
@凌驾
受保护类[]getRootConfigClasses(){
返回新类[]{HibernateConfig.Class/*,SecurityConfig.Class*/};
}
@凌驾
受保护类[]getServletConfigClasses(){
返回新类[]{WebMvcConfig.Class};
}
@凌驾
受保护的字符串[]getServletMappings(){
返回新字符串[]{”/“};
}
@凌驾
受保护的筛选器[]getServletFilters(){
CharacterEncodingFilter=新的CharacterEncodingFilter();
设置编码(“UTF-8”);
filter.setForceEncoding(true);
返回新筛选器[]{Filter};
}
}

您可以使用
org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer

public class MyWebInitializer extends
        AbstractAnnotationConfigDispatcherServletInitializer {

    //...

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        filter.setForceEncoding(true);
        return new Filter[]{filter};
    }
}

@anna9999为什么不直接测试它呢?您在
servletializer
中导入了错误的
过滤器。这也是错误告诉你的。