程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 關於tomcat文件下載配置,tomcat文件下載配置

關於tomcat文件下載配置,tomcat文件下載配置

編輯:JAVA綜合教程

關於tomcat文件下載配置,tomcat文件下載配置


前言

  • tomcat文件下載
  • 關閉tomcat目錄列表浏覽功能
  • Tomcat 不能下載帶中文文件名的附件的方法

在Java Web項目中文件下載是一個很常見的功能,最近在做項目中發現可以通過tomcat本身自帶的特性完成文件下載功能。


tomcat文件下載

  1. 在eclipse中的WebContent下新建文件夾download_file,這個文件夾是專門用來放下載文件的,然後啟動tomcat服務器,
    在浏覽器中就可以URL:http://localhost:8080/項目名/download_file/文件名,這樣的請求來下載文件(注意文件名要包含後綴)如圖1


圖1

關閉tomcat目錄列表浏覽功能

  1. 其實上面已經完成了一個簡單的文件下載功能,但是有個問題所在,假如url中再download_file後面不加任何文件名的話,tomcat會默認地將download_file的文件目錄遍歷出來(如圖2),


圖2
這樣的話別人可以隨意下載其他文件,顯然不夠安全。這裡就涉及到tomcat的配置,打開tomcat目錄下的/conf/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>

 

 

將listings的value值改為false,禁止tomcat直接訪問文件目錄。

Tomcat 不能下載帶中文文件名的附件的方法

  1. 上面的文件下載還有一點瑕疵,當文件名包含中文時找不到目錄中的文件,這是又要在tomcat目錄下的/conf/server.xml中加上下面的代碼, 在原來的 <Connector>\標簽內加入disableUploadTimeout=”true” URIEncoding=”UTF-8”就可以識別中文文件名
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" disableUploadTimeout="true" URIEncoding="UTF-8"/>

 

 

最後,如果修改配置文件後重啟eclipse的tomcat服務無效,只要將tomcat服務先刪除掉,再重新新建即可。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved