Spring-mvc框架关于POST服务收到中文乱码的处理

1. controller

@RequestMapping(value = “/xxx”, method = RequestMethod.POST,consumes=“application/json”)

若指定consumes为application/json,那么服务器仅处理request Content-Type为“application/json”类型的请求

@Controller
@RequestMapping(value = “/msgId”, method = RequestMethod.POST, consumes=“application/json”)
public void addPet(@RequestBody Msg, Model model) {
// TODO
}

如下是,指定响应类型为application/json的数据
@Controller @RequestMapping(value = “/user/{userId}”, method = RequestMethod.GET, produces=“application/json”) @ResponseBody public User getUser(@PathVariable String UserId, Model model) { // implementation omitted }

参考:https://blog.csdn.net/hong2511/article/details/80866249

2. tomcat/conf/servers.xml配置修改

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

3. 代码中的webapp/lib/web.xml添加

<!-- 解决POST提交中文乱码问题的过滤器,注意只能解决POST提交中文乱码的问题 -->
 <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>
 </filter>
 <filter-mapping>
   <filter-name>CharacterEncodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>
 ``

猜你喜欢

转载自blog.csdn.net/lakehubo/article/details/112343919