在Java Web項目中文件下載是一個很常見的功能,最近在做項目中發現可以通過tomcat本身自帶的特性完成文件下載功能。
圖1
圖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直接訪問文件目錄。
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" disableUploadTimeout="true" URIEncoding="UTF-8"/>
最後,如果修改配置文件後重啟eclipse的tomcat服務無效,只要將tomcat服務先刪除掉,再重新新建即可。