很简单很实用的一个过滤器,当前台JSP页面和Java代码中使用了不同的字符集进行编码的时候就会出现表单提交的数据或者上传/下载中文名称文件出现乱码的问题,那这个类就可以出场了。
web.xml中配置如下:
- <filter>
- <filter-name>Set UTF-8</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>
- </filter>
- <filter-mapping>
- <filter-name>Set UTF-8</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
CharacterEncodingFilter中的过滤方法如下:
- @Override
- protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
- throws ServletException, IOException {<span style="white-space:pre">
- </span><pre name="code" class="java" style="color: rgb(51, 51, 51); font-size: 14px; line-height: 28px;"> //当指定了encoding,且forceEncoding为false ,同时request中没有制定编码方式事,设置request和response的编码方式为encoding所指定的编码方式