輸入中文查詢關鍵字,如“農”,點查詢,URL地址欄里的URL如下:
http://localhost:8080/crm/customer/list.action?custType=&custFileYear=&custAddress=%E5%86%9C&custSource=
可見custAddress是UTF-8編碼
查詢出來的結果無誤。
但是,這時候再點分頁按鈕’下一頁’,URL地址欄里的URL如下:
http://localhost:8080/crm/customer/list.action?custType=&custFileYear=&custAddress=農&custSource=&page=2&rows=10
custAddress變成中文了,導致出錯,
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
別建議我降低TOMCAT版本了,因為降TOMCAT又要相應降低JAVA版本,涉及代碼改動太大。
求教!謝謝。
uj5u.com熱心網友回復:
可以自己進行編碼后加到url后面uj5u.com熱心網友回復:
還有更好一點的辦法嗎?請幫忙uj5u.com熱心網友回復:
你點擊下一頁的時候,你的程式作了什么呢?uj5u.com熱心網友回復:
// 顯示“下一頁”按鈕if (page.getPage() < pageCount) {
String nextUrl = append(url, "page", page.getPage() + 1);
nextUrl = append(nextUrl, "rows", page.getSize());
writer.print("<li><a href=https://bbs.csdn.net/"" + nextUrl + "\">" + "下一頁</a></li>");
writer.print("<li><a href=https://bbs.csdn.net/"" + backUrl + "\">" + "尾頁</a></li>");
} else {
writer.print("<li class=\"disabled\"><a href=https://bbs.csdn.net/"#\">" + "下一頁</a></li>");
writer.print("<li class=\"disabled\"><a href=https://bbs.csdn.net/"#\">" + "尾頁</a></li>");
}
是拼裝的URL
uj5u.com熱心網友回復:
在后臺接收引數的時候加上轉碼,轉成utf-8格式的,直接在資料庫中就能查詢了,記得在前端ajax時候設定下contentType為utf8格式,這樣前后一致就不會有問題了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107328.html
標籤:Web 開發
