Java Web專案表單資料存入資料庫中文亂碼解決

2021-06-29 00:25:12 字數 951 閱讀 2206

題記:第一篇部落格,編輯器的很多功能還不熟悉,粗略寫寫,可能的看官們請見諒。

背景:用struts、spring、hibernate整合乙個小專案,有關編碼的設定如下:

1、jsp頁面的pageencoding設定沒問題,charset設定成utf-8,form表單為get方式

2、struts配置時沒有顯性設定常量struts.i18n.encoding,不設定則預設為utf-8

3、mysql資料庫建庫時設定了utf-8編碼方式

其他關於編碼的設定應該是沒有了。

問題:表單提交中文資料並儲存到資料庫後顯示亂碼。

分析:自從tomcat5.x開始,get和post方法提交的資訊,tomcat採用了不同的方式來處理編碼,對於post請求,tomcat會仍然使用request.setcharacterencoding方法所設定的編碼(也即struts的struts.i18n.encoding的值)來處理,如果未設定,則使用iso-8859-1編碼。而get請求則不同,tomcat對於get請求並不會考慮使用request.setcharacterencoding方法設定的編碼,而會永遠使用iso-8859-1編碼。

解決:

第一種方式:把表單由get方式改為post方式。

第二種方式:在servlet中獲取請求資料時用類似string s = new string(request.getparameter("s").getbytes("iso-8859-1"), "utf-8") 的方式,如果是ssh專案,可寫乙個***進行類似處理。

第三種方式:(試了似乎不行,也可能是我趕時間沒弄仔細)在tomacat的server.xml檔案中對uriencoding進行設定。

end

Vue專案表單項很多 沒有繫結prop 表單重置

element ui的表單元件在使用時需要繫結prop屬性才能使用自帶的resetfield重置表單,如果遇到表單項很多,而且大部分不需要校驗,為了重置去乙個乙個設定prop的話很麻煩。所以可以使用object.assign來解決表單重置問題。我們可以通過this.data獲取當前狀態下的data,...

servlet表單資料

servlet表單資料 很多情況下,我們需要從瀏覽器傳遞一些資訊到web伺服器,最終到後台程式。瀏覽器使用get和post兩種方法將資訊傳遞到web伺服器。一 get方法 get方法向頁面請求傳送已近編碼的使用者資訊。頁面和已經編碼的資訊中間用問號 隔開。如下所示 get方法是預設的從瀏覽器向web...

java web中表單資料傳輸亂碼的解決方案記錄

jsp中表單的提交方式有兩種post和get。post提交表單資料,可以通過在servlet一端設定請求資訊的編碼方式,即request.setcharacterencoding utf 8 前提是jsp頁面的編碼也為utf 8 則這樣在servlet中接收的 表單的內容則不會出現亂碼現象。通過ge...