java - 如何在没有 web.xml 的情况下编写 Encodingfilter 配置
问题描述
在我的项目中,Encodingfilter 是用 WEB.XML 编写的。但我想在没有 WEB.XML 的情况下编写它,我只想在 java 类中编写。
我的 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>
我正确编写的编码过滤器?
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};
}
}
解决方案
您可以使用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};
}
}
推荐阅读
- c - 计算和打印矩阵的对角线之和
- javascript - 如何在 Angular 中使用 addEventListener 和 postMessage?
- php - 如何将日期、时间和值从单选按钮放入数据库
- c# - 逐个像素地动态绘制和显示,有一些延迟
- npm - 如何从 Nexus oss 代理获取依赖于 github 项目的 npm 包
- django - Django 测试 - 发送包含整数的数组数组
- android - 在 android 中使用改造登录
- json - 我如何在 nunjuncks 中乘以数据?
- swift - 为什么不能在swift中将可变参数标记为inout?
- vue.js - Vue Js 2 / Vue-CLI 3 / 托管时显示空白页