乱发分为:getpost乱码。

    • get 乱码有 Tomcat 造成的,在Tomcatconf下的 server.xml 文件中设置。

    image.png
    Tomcat 初始化顺序: LisTenerife监听 -> Filter过滤 -> servlet.

    postl 乱码解决 filter 过滤。下面8 - 28行

    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. <!--解决乱码-->
    8. <filter>
    9. <filter-name>CharacterEncodingFilter</filter-name>
    10. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    11. <!--设置字符编码-->
    12. <init-param>
    13. <param-name>encoding</param-name>
    14. <param-value>UTF-8</param-value>
    15. </init-param>
    16. <init-param>
    17. <!--响应编码-->
    18. <param-name>forceResponseEncoding</param-name>
    19. <param-value>true</param-value>
    20. </init-param>
    21. </filter>
    22. <!--过滤所有请求-->
    23. <filter-mapping>
    24. <filter-name>CharacterEncodingFilter</filter-name>
    25. <url-pattern>/*</url-pattern>
    26. </filter-mapping>
    27. <!-- 配置SpringMVC的前端控制器,对浏览器发送的请求统一进行处理 -->
    28. <servlet>
    29. <servlet-name>springMVC</servlet-name>
    30. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    31. <!-- 通过初始化参数指定SpringMVC配置文件的位置和名称 -->
    32. <init-param>
    33. <!-- contextConfigLocation为固定值 -->
    34. <param-name>contextConfigLocation></param-name>
    35. <!-- 使用classpath:表示从类路径查找配置文件,例如maven工程中的 src/main/resources -->
    36. <param-value>>classpath:springMVC-servlet.xml</param-value>
    37. </init-param>
    38. <!--作为框架的核心组件,在启动过程中有大量的初始化操作要做
    39. 而这些操作放在第一次请求时才执行会严重影响访问速度
    40. 因此需要通过此标签将启动控制DispatcherServlet的初始化时间提前到服务器启动时 -->
    41. <load-on-startup>1</load-on-startup>
    42. </servlet>
    43. <servlet-mapping>
    44. <servlet-name>springMVC</servlet-name>
    45. <!--
    46. 1、设置springMVC的核心控制器所能处理的请求的请求路径,
    47. / 所匹配的请求可以是/login或.html或.js或.css方式的请求路径,
    48. 但是/不能匹配.jsp请求路径的请求。
    49. 2、/* 能够匹配所有请求,例如在使用过滤器时,若需要对所有请求进行过滤,就需要使用/*的写法。
    50. 3、 *.do 匹配 .do 后缀的请求
    51. -->
    52. <url-pattern>/</url-pattern>
    53. </servlet-mapping>
    54. </web-app>