關於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虛擬路徑,訪問伺服器其他資源
專案開發中,涉及到檔案上傳功能時,為了減少tomcat壓力,通常不將檔案放在tomcat中而是放在伺服器的其他路徑中,此時訪問上傳檔案時需要在tomcat中配置虛擬路徑 1.配置虛擬路徑 開啟tomcat下conf資料夾中的server.xml在host標籤下新增如下 reloadable 是否啟用...
ubuntu下tft伺服器和nfs伺服器的搭建
ubuntu安裝tftp伺服器 1.安裝包 sudo apt get install tftp hpa tftpd hpa 前者客戶程式,後者服務程式 sudo apt get install openbsd inetd sudo apt get install xinetd 2.建tftp共享目錄...
Ubuntu下建立tftp伺服器
1 安裝程式 sudo apt get install tftp tftpd sudo apt get install openbsd inetd 2 新建資料夾 cd sudo mkdir tftpboot sudo chmod 777 tftpboot 3 修改存放目錄 sudo vi etc ...