日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 2154 0

http://hdwangyi.iteye.com/blog/107709

?

Tomcat是Java開發(fā)者使用得較多的一個(gè)Web服務(wù)器,因?yàn)樗加觅Y源小,運(yùn)行速度快等特點(diǎn),深受Java Web程序員的喜愛。不過,在使用中,由于Java中的中文問題的存在,如果不經(jīng)過配置,在WEB程序中,不能直接支持具有中文文件名的文件的下載,這為Java Web程序的開發(fā)帶來一定的不便。本文擬介紹一種手段,解決這個(gè)問題。?

?? 解決問題的核心在于修改Tomcat的配置,在Server.xml文件中添加一個(gè)名為URIEncoding的屬性,它用于對(duì)HTTP請(qǐng)求中的get方法傳過來的URL進(jìn)行編碼。如果直接從Apache站點(diǎn)中下載Tomcat,無論是安裝版的exe文件,還是解壓縮的ZIP文件,內(nèi)置的對(duì)于get協(xié)議中的URL編碼都是ISO-8859-1,這個(gè)字符集不能直接支持中文等雙字節(jié)的信息,而中文文件的下載鏈接恰恰是通過get協(xié)議進(jìn)行的。以下說明修改Tomcat安裝目錄中的config文件夾中的server.xml文件的方法。?

?? 打開config/server.xml文件,如果沒有修改過這個(gè)文件,應(yīng)該可以在其中找到如下代碼:?
???
?? <Connector port="8080"? protocol="HTTP/1.1"?
?????????????? connectionTimeout="20000"?
?????????????? redirectPort="8443" />?
???
?? 這段代碼規(guī)定了Tomcat監(jiān)聽HTTP請(qǐng)求的端口號(hào)等信息,可以在這里添加一個(gè)屬性:URIEncoding,將該屬性值設(shè)置為UTF-8,即可讓Tomcat不再以ISO-8859-1的編碼處理get請(qǐng)求。更改后的代碼如下所示(紅色部分為新添加的代碼):?
??
? <Connector port="8080"?
????????????? URIEncoding="utf-8"?
???????????? protocol="HTTP/1.1"?
???????????? connectionTimeout="20000"?
???????????? redirectPort="8443" />?
??
? 下面,我們準(zhǔn)備測(cè)試一下更改后的效果。?

?? 最為簡(jiǎn)單的測(cè)試方法就是讓Tomcat自己列出WEB程序中的目錄和文件,默認(rèn)情況下,Tomcat不會(huì)直接列出WEB程序目錄中的文件和文件夾,但是,我們可以修改位于安裝目錄中的config文件夾中的web.xml,使其能夠支持自動(dòng)列出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>?
???
?? 將上面的代碼中標(biāo)為紅色的部分改為如下內(nèi)容:?
??
?? <init-param>?
????? <param-name>listings</param-name>?
????? <param-value> true </param-value>?
?? </init-param>?
???

?? 即將參數(shù)listings的屬性改為true,就可讓Tomcat自動(dòng)列出某個(gè)WEB程序目錄中的文件和文件夾。?

?? 現(xiàn)在,我們的設(shè)置已經(jīng)完成,將修改的文件保存后,就可以啟動(dòng)Tomcat進(jìn)行測(cè)驗(yàn)了,當(dāng)然,如果Tomcat正在運(yùn)行,則需要重新啟動(dòng),以便配置生效。?

?? 現(xiàn)在,可以在Tomcat安裝目錄中的webapps目錄中建立一個(gè)名為cntest的文件夾,作為測(cè)試的web程序的上下文路徑(注意:對(duì)于WEB程序的上下文路徑,請(qǐng)不要使用中文)。請(qǐng)?jiān)赾ntest中添加一些中文目錄和文件,然后在瀏覽器中打開該WEB程序,如,http://localhost:8080/cntest,測(cè)驗(yàn)一下效果吧。當(dāng)然,也可以在JSP或HTML文件中使用那些包含中文的文件夾或文件名的超級(jí)鏈接。?

?? 說明:以上修改均使用Tomcat5.5做的測(cè)試,在5.5以上都應(yīng)該可以,至于5.0和4.x,我沒有實(shí)驗(yàn)過,不過對(duì)于5.0應(yīng)該也是可以的,但4.x不能保證(4.x在處理HTTP的get和post方法和5.x不大一樣)。

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!?。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 昂仁县| 曲水县| 准格尔旗| 宁明县| 临沭县| 上饶县| 沾化县| 阳春市| 北安市| 玛沁县| 治多县| 富裕县| 宜兰县| 乐至县| 集安市| 剑河县| 巴林左旗| 扬中市| 楚雄市| 赤峰市| 焦作市| 高青县| 罗甸县| 银川市| 措勤县| 宜良县| 苗栗市| 万宁市| 且末县| 甘肃省| 曲水县| 郯城县| 兰溪市| 阜阳市| 凉城县| 阿克苏市| 博乐市| 永修县| 阿荣旗| 上犹县| 蕉岭县|