1、post方式提交中文亂碼處理
1、jsp頁面編碼設爲"UTF-8"
<%@ page language="java" import="java.util.*" pageEncodint="UTF-8"%>
2、form表單提交方式必須爲post,get方式提交spring編碼過濾器不起效
<form action="./quryPro.do" name="proForm" method="post">
3、修改web.xml,增加編碼過濾器
-
<filter>
-
<filter-name>encodingFilter</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>encodingFilter</filter-name>
-
<url-pattern>/*</url-pattern>
-
</filter-mapping>
兩個參數的作用
1>、encoding
用來指定一個具體的字符集
2>、forceEncoding
Spring裏的字符過濾器CharacterEncodingFilter是針對請求的,forceEncoding=true意思是指無論客戶端請求是否包含了編碼,都用過濾器裏面的編碼來解析請求
2、get方式提交中文亂碼處理
上面的過濾器,過濾了所有請求。但還是有問題,最後發現是表單的問題,在表單中method默認是get,而以上過濾器只對post有效果,如果是get,需要修改 Tomcat根式目錄的 conf/server.xml文件中,找<Connector port="8080" />,在裏面加<Connector port="8080" uRIEncoding="utf-8" />
3、連接數據庫時的中文設置
url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";