Java 如何在没有web.xml的情况下编写Encodingfilter配置
在我的项目中,Encodingfilter是在WEB.XML中编写的。但是我想在没有WEB.XML的情况下编写它,我只想在java类中编写 在my WEB.XML中编码过滤器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
没有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
中导入了错误的过滤器。这也是错误告诉你的。