中文乱码的解决方案

添加过滤器,过滤器是在web.xml中配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
  5. version="5.0">
  6. <!--中文编码的过滤器配置(放在最前面)-->
  7. <filter>
  8. <filter-name>encode</filter-name>
  9. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  10. <!--
  11. 参数配置:
  12. private String encoding;
  13. private boolean forceRequestEncoding = false;
  14. private boolean forceResponseEncoding = false;
  15. -->
  16. <init-param>
  17. <param-name>encoding</param-name>
  18. <param-value>UTF-8</param-value>
  19. </init-param>
  20. <init-param>
  21. <param-name>forceRequestEncoding</param-name>
  22. <param-value>true</param-value>
  23. </init-param>
  24. <init-param>
  25. <param-name>forceResponseEncoding</param-name>
  26. <param-value>true</param-value>
  27. </init-param>
  28. </filter>
  29. <filter-mapping>
  30. <filter-name>encode</filter-name>
  31. <url-pattern>/*</url-pattern>
  32. </filter-mapping>
  33. <servlet>
  34. <servlet-name>springmvc</servlet-name>
  35. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  36. <init-param>
  37. <param-name>contextConfigLocation</param-name>
  38. <param-value>classpath:springmvc.xml</param-value>
  39. </init-param>
  40. </servlet>
  41. <servlet-mapping>
  42. <servlet-name>springmvc</servlet-name>
  43. <url-pattern>/</url-pattern>
  44. </servlet-mapping>
  45. </web-app>

测试

你可以把之前的get方法改成post请求,但是之前的动态占位符提交的时候输出的结果是请求成功,name=??????,age=115,所以你也可以去看看。

点击超链接后得到的结果:

请求成功,name=李四,age=115

说明过滤器有效