java post請求 json,Spring MVC —— form表單post提交出現亂碼

 2023-11-05 阅读 26 评论 0

摘要:主要原因是:頁面提交時,使用<contentType:utf-8/>格式,而服務端HttpMessageConverter解碼時使用其它格式解碼(如:ISO-8859-1)導致 解決方案:在Servlet中設置CharacterEncoding為UTF-8格式。 方法一:在Web.xml中

主要原因是:頁面提交時,使用<contentType:utf-8/>格式,而服務端HttpMessageConverter解碼時使用其它格式解碼(如:ISO-8859-1)導致

解決方案:在Servlet中設置CharacterEncoding為UTF-8格式。

方法一:在Web.xml中加入Spring的字符集過濾器(已測)

<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>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

java post請求 json,encoding

字符集,將request字符集設置成encoding指定格式(相當于request.setCharacterEncoding)

forceEncoding

強制字符集設置,主要用來設置response字符集是否也是encoding指定格式

json.tojavaobject、當設置為true時,相當于request.setCharacterEncoding + response.setCharacterEncoding

當設置為false時(默認),相當于request.setCharacterEncoding

加入后相當于在servlet中加入下面代碼

request.setCharacterEncoding("UTF-8");    
response.setCharacterEncoding("UTF-8"); 

方法二:手動寫Filter(未測)

java解析json報文。對每個訪問進行攔截,并執行下列代碼

request.setCharacterEncoding("UTF-8");    
response.setCharacterEncoding("UTF-8"); 

方法三:設置HttpMessageConverter實現類的解碼方式(未測試)

<mvc:annotation-driven>    <mvc:message-converters>    <bean class="org.springframework.http.converter.StringHttpMessageConverter">    <property name="supportedMediaTypes">    <list>    <value>text/plain;charset=UTF-8</value>    <value>text/html;charset=UTF-8</value>    </list>    </property>    </bean>    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">    <property name="supportedMediaTypes">    <list>    <value>application/json; charset=UTF-8</value>    <value>application/x-www-form-urlencoded; charset=UTF-8</value>    </list>    </property>    </bean>    </mvc:message-converters>    
</mvc:annotation-driven>

?

轉載于:https://www.cnblogs.com/yifanSJ/p/9226801.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/166541.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息