關於tomcat作為伺服器 url訪問的一些問題
由於tomcat對中文支援不是很好,所以在某些情況下導致url無法訪問或者找不到路徑的問題,一般主要存在兩個問題:
1.含有中文的url無法訪問
上傳乙個資源到伺服器後,通過連線無法進行訪問,進行幾次嘗試之後,發現如果url包含中文字元則無法訪問,而純英文本元的url則可以訪問。網上查資料發現是tomcat預設的配置不支援中文路徑訪問,因為通過鏈結進行訪問時採用的是get協議,而預設的get協議是採用iso-8859-1對url進行編碼的,而這個字符集不支援中文雙位元組資訊。
在server.xml檔案中新增乙個名為uriencoding的屬性,它定義了對http請求中的get方法傳過來的url進行編碼的採用的方案。
在tomcat安裝目錄下找到server.xml檔案,找到
在裡面加入uriencoding="utf-8" 這個屬性,儲存,然後重啟tomcat即可。
2.含有空格的url無法訪問
例如:
string urlstring="http:10.0.0.2:8080/musicserver/resource/今天 - 劉德華.***";string name="今天 - 劉德華.***";
string temp1=urlencoder.encode(name, "utf-8");
system.out.println(temp1);
輸出結果為:%e4%bb%8a%e5%a4%a9+-+%e5%88%98%e5%be%b7%e5%8d%8e.***
發現空格被轉碼成'+'了,而在tomcat伺服器中,空格是'%20',所以會導致無法訪問到該路徑,可以採用下面的辦法解決問題:
首先將中文部分轉碼成utf-8格式的字串,然後將轉換後得到的字串中的所有'+'替換成'%20'。
string urlstring="http:10.0.0.2:8080/musicserver/resource/今天 - 劉德華.***";string name="今天 - 劉德華.***";
string temp1=urlencoder.encode(name, "utf-8");
string temp2=temp1.replaceall("\\+", "%20"); //
因為'+'是關鍵字,所以要進行轉義
system.out.println(temp1);
system.out.println(temp2);
輸出結果就為:
%e4%bb%8a%e5%a4%a9+-+%e5%88%98%e5%be%b7%e5%8d%8e.***
%e4%bb%8a%e5%a4%a9%20-%20%e5%88%98%e5%be%b7%e5%8d%8e.***
是正確的結果了。
關於tomcat作為伺服器 URL訪問的一些問題
由於tomcat對中文支援不是很好,所以在某些情況下導致url無法訪問或者找不到路徑的問題,一般主要存在兩個問題 1.含有中文的url無法訪問 上傳乙個資源到伺服器後,通過連線無法進行訪問,進行幾次嘗試之後,發現如果url包含中文字元則無法訪問,而純英文本元的url則可以訪問。網上查資料發現是tom...
tomcat作為伺服器出現的中文亂碼問題(治標)
當jsp通過form表單提交中文引數時後台發現亂碼。預設情況下,tomcat使用的的編碼方式 iso8859 1 修改tomcat下的conf server.xml檔案 找到如下 這段 規定了tomcat監聽http請求的埠號等資訊。可以在這裡新增乙個屬性 uriencoding,將該屬性值設定為u...
伺服器搭建多個tomcat伺服器
以三個tomcat為例 先配置環境變數 編輯 etc profile 檔案 新增三個tomcat環境變數 value為tomcat目錄 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 第乙個tomcat catalina base usr local tomcat to...