讓Tomcat支持中文路徑名和中文文件名


讓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文件,若是沒有修改過這個文件,應該能夠在其中找到以下代碼:         <Connector port="8080" protocol="HTTP/1.1"                 connectionTimeout="20000"                 redirectPort="8443" />         這段代碼規定了Tomcat監聽HTTP請求的端口號等信息,能夠在這裏添加一個屬性:URIEncoding,將該屬性值設置爲UTF-8,便可讓Tomcat再也不以ISO-8859-1的編碼處理get請求。更改後的代碼以下所示(紅色部分爲新添加的代碼):  <Connector port="8080"               URIEncoding="utf-8"               protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />  下面,咱們準備測試一下更改後的效果。     最爲簡單的測試方法就是讓Tomcat本身列出WEB程序中的目錄和文件,默認狀況下,Tomcat不會直接列出WEB程序目錄中的文件和文件夾,可是, 咱們能夠修改位於安裝目錄中的config文件夾中的web.xml,使其可以支持自動列出WEB程序中的目錄和文件。     在config/web.xml文件中找到以下代碼:          <servlet>      <servlet-name>default</servlet-name>      <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>      <init-param>        <param-name>debug</param-name>        <param-value>0</param-value>      </init-param>      <init-param>        <param-name>listings</param-name>        <param-value>false</param-value>      </init-param>      <load-on-startup>1</load-on-startup>  </servlet>         將上面的代碼中標爲紅色的部分改成以下內容:     <init-param>        <param-name>listings</param-name>        <param-value>true</param-value>     </init-param>         即將參數listings的屬性改成true,就可以讓Tomcat自動列出某個WEB程序目錄中的文件和文件夾。     如今,咱們的設置已經完成,將修改的文件保存後,就能夠啓動Tomcat進行測驗了,固然,若是Tomcat正在運行,則須要從新啓動,以便配置生效。     如今,能夠在Tomcat安裝目錄中的webapps目錄中創建一個名爲cntest的文件夾,做爲測試的web程序的上下文路徑(注意:對於WEB程序 的上下文路徑,請不要使用中文)。請在cntest中添加一些中文目錄和文件,而後在瀏覽器中打開該WEB程序, 如,http://localhost:8080/cntest,測驗一下效果吧。固然,也能夠在JSP或HTML文件中使用那些包含中文的文件夾或文件 名的超級連接。
相關文章
相關標籤/搜索