码迷,mamicode.com
首页 > 编程语言 > 详细

Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)

时间:2019-03-02 10:46:08      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:...   url   响应   ring   编码格式   cee   plain   pattern   strong   

Spring MVC中的字符集过滤器可以很方便的为我们解决项目中出现的中文乱码问题,而且使用方法也很简单,只需要在web.xml文件中配置一下该过滤器,设置两个重要的参数(encodingforceEncoding)即可:

  <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> 
<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>false</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

通过参考文档,我们可以知道:

l  第一个方法setEncoding()相当于:ServletRequest.setCharacterEncoding(java.lang.String)

2. 第二个方法setForceEncoding()的作用是:

强制ServletResponse的编码格式和ServletRequest的编码格式一样。

        也就是说,无论是request还是responseencoding设置了两者的编码格式,只不过forceEncoding默认值为false,此时就只是设置了request的编码格式,即在Servlet中:

        request.setCharacterEncoding("XXXX"); 

       如果设置forceEncoding的值为true时,相当于Servlet中:

       request.setCharacterEncoding("XXXX");

       response.setCharacterEncoding(“XXXX”);  

      现在我们回过头来看看最初给大家看的web.xml中那部分过滤器的配置,相信大家都明白了,配置的作用相当于Servlet中的:

@RequestMapping(value="XXXXX") 
public void XXXXX(User user,HttpServletRequest  req,HttpServletResponse         resp) throws UnsupportedEncodingException 
{ 
       //对服务器响应进行重新编码
       resp.setCharacterEncoding("UTF-8"); 
      //对请求进行重新编码
       req.setCharacterEncoding("UTF-8"); 
...... 
}

 

Spring MVC过滤器-字符集过滤器(CharacterEncodingFilter)

标签:...   url   响应   ring   编码格式   cee   plain   pattern   strong   

原文地址:https://www.cnblogs.com/gaomanito/p/10459889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!