1. 程式人生 > >Eclipse+Tomcat URL傳中文字元報錯400

Eclipse+Tomcat URL傳中文字元報錯400

今天在jsp中用href傳值(中文字元),在Eclipse內建瀏覽器出錯,但在火狐可以正常執行,搞了一天終於解決了,記錄一下。

先看下程式碼:

<a href = "Practice_Choose?name=<%=name%>&idCollege=<%=idCollege%>&idStudent=<%=idStudent%>">線上練習</a><br>

其中name是中文字元,如果不傳name可以正常執行。控制檯資訊:

Error parsing HTTP request header

Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

看到說有無效字元,跟著百度在Servers/server.xml下找Connector(不太清楚是否能自定義一個,我找的是埠=8080的,新增屬性maxHttpHeaderSize=81920(80K),修改protocol="org.apache.coyote.http11.Http11Protocol"(有人說協議要寫全))

在D:\Apache Tomcat 7.0\webapps\docs\config\http.html文件中看到了connector的屬性:


問題依舊存在。改完了之後個人感覺上面那些並沒有什麼用。

下面用js的encodeURI函式完美解決了:

<a href = "javascript:location.href=encodeURI('Practice_Choose?name=<%=name%>&idCollege=<%=idCollege%>&idStudent=<%=idStudent%>')">線上練習走一走</a>

javascript:呼叫js函式,location.href=跳轉,encodeURI對字串編碼,Practice_Choose是Servlet名,後面是我的三個引數。

介面可以成功跳轉,把encodeURI括號裡面的字串編碼成了這樣:

Practice_Choose?name=%E5%BC%A0%E5%AD%90%E5%81%A5&idCollege=53&idStudent=1

就這麼一個非常簡單的用法,因為不瞭解困擾了一天,路漫漫其修遠。

P.S.

1.Connector


2.另外百度了一番,看到了我這個的下一步,也就是如何正確接收中文字元(避免亂碼):

String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
對於2.我在Server.xml中的Connector(port=8080)新增URIEncoding="UTF-8",就不再需要了,直接用request.getParameter("name")就可以了。

相關推薦

Eclipse+Tomcat URL中文字元400

今天在jsp中用href傳值(中文字元),在Eclipse內建瀏覽器出錯,但在火狐可以正常執行,搞了一天終於解決了,記錄一下。先看下程式碼:<a href = "Practice_Choose?name=<%=name%>&idCollege=<

Tomcat文件:returned a response status of 403 Forbidden

XML ons value web resp 文件 配置 pan param 出現這樣的錯誤是沒有權限對服務器進行寫操作。需要在這個項目所在的tomcat中配置可寫操作即可: 在tomcat的web.xml添加下面代碼: <init-param>

centOS7 下mysql插入中文字元

在剛裝完mysql,就建立了資料庫abc,然後新建一個abc表,插入英文沒有問題,但是插入中文就有問題,會報錯: ERROR 1366 (HY000): Incorrect string value: '\xE4\xBD\x99\xE9\x93\xB6...'  應該是資料

Struts2的web.xml中的url-pattern路徑配置為/*.action時,Tomcat一啟動執行就(嚴重: A child container failed during star)

Struts2中web.xml中的url-pattern路徑配置錯誤導致Tomcat一起動就報錯。   如上圖url-pattern配置為/*.action  (錯誤)      修改成:      

兩個頁面跳轉 url中文 非法字元及亂碼

弄了兩個小時終於解決了!!! 問題:在一頁面的url傳中文,從一頁面跳轉到二頁面,在二頁面中得到url中的中文亂碼! 解決辦法:在一頁面的url用encodeURIComponent轉兩次碼(解決非法字元和中文亂碼),                          

Web專案中前端頁面通過URL中文或 # 特殊字元到後臺出現亂碼解決方案

      對於剛入行新手來說碰到URL傳遞中文資料到後臺出現亂碼或是傳遞包含特使符號‘#’後端獲取不到的情況是比較頭疼的事,這裡我就告訴你這兩個的解決的方式;        1.URL傳遞中文     前端頁面:中文字串用 encodeURI(encodeURI(

eclipse運行maven項目java.lang.ClassNotFoundException: xxxxxx

java maven tomcat classnotfoundexception 在eclipse中運行maven項目,出現異常——java.lang.ClassNotFoundException: org.apache.shiro.web.env.EnvironmentLoaderLi

已經設置utf8的mysql cmd中插入中文執行解決方法

客戶 res img 說明 設置 -1 bsp 插入 gbk 說明cmd客戶端的字符集是gbk,結果集也要設置為gbk。 使用語句 set character_set_client=gbk; set character_set_results=gbk; 就

解決上到githubSuccessfully created project 'autotest' on GitHub, but initial commit failed:

.com auto efault oba core ted config use body 通過IDEA上傳代碼到GitHub上可是有時候會碰到這樣的問題。 當我們選擇VCS->Import into Version Control->Share Project

Tomcat JAR包沖突

blog 技術分享 tom jar csdn 沖突 參考 div image 查看Tomcat下有兩個PDF加密的jar包如圖: 刪除這個bcprov-jdk14-138.jar包,然後重啟Tomcat就好了。 註:問題不是我解決的,我只是記錄一下 參考: http:/

Eclipse 無輸出,但不

bug sof app 標簽 clip when ogr pan 解決方法 解決方法: 若界面中都沒有console選項,則 工具欄 Window - Show View - Console Window - Preferences - Run/Debug - Conso

FastDFS重啟後上文件的解決方案

fastdfs報錯:ERROR - file: tracker_proto.c, line: 48, server: 109.24.249.40:22122, response status 2 != 0tracker_query_storage fail, error no: 2, error info:

url中文參數亂碼問題

div query fun return index window encodeuri name 發出 //發出請求頁面(編碼 encodeURI) window.location.href="index.html?name="+encodeURI(encodeURI

【RestTemplete】使用RestTempleteJson或者 {} --解決

ane DC AC system 使用 RF ack param ng- https://jira.spring.io/browse/SPR-9220?focusedCommentId=76760&page=com.atlassian.jira.plugin.sys

【監控】Jprofiler監控tomcat的配置方法及解決過程

could CA 監聽端口 arch https img .net http 沒有 準備工作: 1.Jprofiler for Linux安裝包一個(服務端) 2.Jprofiler for windows安裝包一個(客戶端) 3.各自安裝、解壓 Linux:/opt/jp

App Store ERROR ITMS-90171,90209

port inf res 刪除 store program erro 上傳 tab ERROR ITMS-90171: "Invalid Bundle Structure - The binary file ERROR ITMS-90209: "Invalid Segme

SpringBoot項目上文件

msg igel boot exceptio pri color The sts 文件添加 SpringBoot項目上傳圖片報錯 FileSizeLimitExceededException: The field upload exceeds its maximum per

eclipse專案中jsp檔案全部、String

eclipse專案中jsp檔案全部報錯、String報錯 搜了好多,主要是新匯入的專案中沒有本地路徑的系統包,這就要構建包路徑。 主要用buildpath,但是我的出問題的工程右擊沒有buildpath(其他工程中有),綜合一下解決方法。 1、找到buildpath Window

文件:Warning: POST Content-Length of 9443117 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

The lin clas php 但是 exce 小文件 情況 lan 只需在php.ini中設置: upload_max_filesize = 1000M; post_max_size = 1000M;還有一種情況就是小文件可以上傳成功,但是大文件上傳,$_FILES

request.getRequestDispatcher(url)使用後天一直,進入死迴圈

request.getRequestDispatcher(url)使用後天一直報錯,進入死迴圈 後來百度了下: request.getRequestDispatcher(“/資源URI”).forward(request,response) response.sendRedir