LINUX 下讓Tomcat支援中文路徑名和中文檔名
-
為題產生:剛架設的伺服器,TOMCAT無法支援中文訪問。
Tomcat是Java開發者使用得較多的一個Web伺服器,因為它佔用資源小,執行速度快等特點,深受Java Web程式設計師的喜愛。不過,在使用中,由於Java中的中文問題的存在,如果不經過配置,在WEB程式中,不能直接支援具有中文檔名的檔案的下載,這為Java Web程式的開發帶來一定的不便。本文擬介紹一種手段,解決這個問題。
解決問題的核心在於修改Tomcat的配置,在Server.xml檔案中新增一個名為URIEncoding的屬性,它用於對HTTP請求中的get方法傳過來的URL進行編碼。如果直接從Apache站點中下載Tomcat,無論是安裝版的exe檔案,還是解壓縮的ZIP檔案,內建的對於get協議中的URL編碼都是ISO-8859-1,這個字符集不能直接支援中文等雙位元組的資訊,而中文檔案的下載連結恰恰是透過get協議進行的。以下說明修改Tomcat安裝目錄中的config資料夾中的server.xml檔案的方法。
開啟config/server.xml檔案,如果沒有修改過這個檔案,應該可以在其中找到如下程式碼:
connectionTimeout="20000"
redirectPort="8443" />
這段程式碼規定了Tomcat監聽HTTP請求的埠號等資訊,可以在這裡新增一個屬性:URIEncoding,將該屬性值設定為UTF-8,即可讓Tomcat不再以ISO-8859-1的編碼處理get請求。更改後的程式碼如下所示(紅色部分為新新增的程式碼):
URIEncoding="utf-8"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
下面,我們準備測試一下更改後的效果。最為簡單的測試方法就是讓Tomcat自己列出WEB程式中的目錄和檔案,預設情況下,Tomcat不會直接列出WEB程式目錄中的檔案和資料夾,但是,我們可以修改位於安裝目錄中的config資料夾中的web.xml,使其能夠支援自動列出WEB程式中的目錄和檔案。
在config/web.xml檔案中找到如下程式碼:
default
org.apache.catalina.servlets.DefaultServlet
debug
0
listings
false
1
將上面的程式碼中標為紅色的部分改為如下內容:
listings
true
即將引數listings的屬性改為true,就可讓Tomcat自動列出某個WEB程式目錄中的檔案和資料夾。
現在,我們的設定已經完成,將修改的檔案儲存後,就可以啟動Tomcat進行測驗了,當然,如果Tomcat正在執行,則需要重新啟動,以便配置生效。
現在,可以在Tomcat安裝目錄中的webapps目錄中建立一個名為cntest的資料夾,作為測試的web程式的上下文路徑(注意:對於WEB程式的上下文路徑,請不要使用中文)。請在cntest中新增一些中文目錄和檔案,然後在瀏覽器中開啟該WEB程式,如,,測驗一下效果吧。當然,也可以在JSP或HTML檔案中使用那些包含中文的資料夾或檔名的超級連結。
說明:以上修改均使用Tomcat5.5做的測試,在5.5以上都應該可以,至於5.0和4.x,我沒有實驗過,不過對於5.0應該也是可以的,但4.x不能保證(4.x在處理HTTP的get和post方法和5.x不大一樣)。
本文引用地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1208281/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在linux下顯示中文目錄和檔名Linux
- LINUX所有配置檔案的路徑和檔名稱(收藏)Linux
- Go基礎:路徑、檔名和包名的關係Go
- 上傳檔名為中文的檔案
- 獲取絕對路徑下的檔名和檔案字尾方法
- linux 列目錄時顯示中文檔名 (轉)Linux
- 更改archive log 歸檔路徑和歸檔檔名稱Hive
- 中文檔名在JSP中如何連結???JS
- rac中文名檔名新增到本地路徑解決辦法(ORA-01157)-非歸檔
- 讓預設安裝的Linux支援中文Linux
- Linux漢化之讓MandrakeLinux支援中文(轉)Linux
- 關於asp.net中文檔名超長的下載問題ASP.NET
- linux下檔名的操作Linux
- 大量檔名如何批次翻譯成中文的呢?
- 讓VC++支援中文 (轉)C++
- 中文檔名編碼和G_BROKEN_FILENAMES環境變數(轉)變數
- c#匯出檔案,檔名中文亂碼解決方法C#
- Zuul上傳檔案,中文檔名亂碼解決辦法Zuul
- rhel 6.5讓KVM支援中文介面
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- C# Winform中如何獲取檔名與檔案路徑C#ORM
- IP_別名、路徑_別名、路徑_wwid及開機啟動設定
- java實現瀏覽器下載附件時檔名中文亂碼解決方案Java瀏覽器
- R語言中提取檔名和檔名R語言
- Linux特殊檔名Linux
- ngnix的windows路徑不能有中文Windows
- Tomcat下中文問題解決Tomcat
- Linux 下如何處理包含空格和特殊字元的檔名Linux字元
- Linux下的檔案及檔案字尾名Linux
- linux 中文不支援解決Linux
- Linux上配置Apache,支援中文名稱檔案下載的方法(轉)LinuxApache
- Linux檔案的路徑定位-相對路徑和絕對路徑Linux
- TOMCAT+JIVE的安裝配置(支援中文) (轉)Tomcat
- Practical Common Lisp中文版徵集書名Lisp
- [轉貼]越獄所有中文譯名~~~噴飯!
- Linux 批量修改檔名Linux
- 檔案路徑類 字串的各種擷取方式,包括擷取到檔名字串
- 關於 maatwebsite/excel 匯出不能識別中文檔名稱的問題WebExcel