Spring字符集過濾器CharacterEncodingFilter


參考:http://blog.csdn.net/gdufzxp/article/details/10077665

spring中的字符集過濾器可以很方便的為我們解決項目中出現的中文亂碼問題,而且使用方法也很簡單,只需要在web.xml文件中配置一下該過濾器,設置兩個重要的參數(encodingforceEncoding)即可:

    <!-- 配置請求過濾器,編碼格式設為UTF-8,避免中文亂碼-->  
        <filter>  
           <filter-name>springUtf8Encoding</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>springUtf8Encoding</filter-name>  
           <url-pattern>/*</url-pattern>  
       </filter-mapping>  

  

通過參考文檔,我們可以知道:

第一個方法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");  
......  
} 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM