(SpringMVC)請求參數亂碼問題

(1)問題
在這裏插入圖片描述
發現對於中文字符的輸入,輸出會亂碼:
在這裏插入圖片描述
(2)針對POST的請求方式:在 web.xml 中配置一個過濾器

 <!--配置解決中文亂碼的過濾器-->
    <!-- 配置 springMVC 編碼過濾器 -->
    <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>

在這裏插入圖片描述
(3)還可以在 springmvc 的配置文件中可以配置,靜態資源不過濾:

<!-- location 表示路徑, mapping 表示文件, **表示該目錄下的文件以及子目錄的文件 -->
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/scripts/" mapping="/javascript/**"/>

(4)get 請求方式

tomacat 對 GET 和 POST 請求處理方式是不同的, GET 請求的編碼問題, 要改 tomcat 的 server.xml配置文件,如下:
<Connector connectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443"/>
改爲:
<Connector connectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443" 
useBodyEncodingForURI="true"/>

如果遇到 ajax 請求仍然亂碼,請把:useBodyEncodingForURI="true"改爲 URIEncoding="UTF-8"即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章