(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"即可。