由網絡教程資料以及自己的測試整理
問題
最近在SSM項目中發現上傳文件在項目重新部署後會被刪除的問題。從網上查找了一些相關的資料,發現可以通過設置虛擬路徑來解決,通過這種方法也方便了數據的備份。
環境
IDEA 2019.1.2
Tomcat 8.5.38
方法
本教程使用了官方推薦的方法。
配置Tomcat
在conf\Catalina\localhost目錄下新建一個XML文件,如下圖
我的目的是將D:\resources映射到/resources,這個XML文件名可以直接是要映射的目錄名字,如我所命名的,也可以是任意的名字。
接下來修改這個XML文件,如下
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:\resources" reloadable="true" crossContext="true"></Context>
這裏省略了path的配置,這是根據文件名自動識別的,如果沒有命名爲要映射的目錄名,就需要配置path,如下
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:\resources" path="/resources" reloadable="true" crossContext="true"></Context>
然後需要修改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>true</param-value> <!--這裏默認爲false,修改爲true-->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
配置被映射目錄
被映射的目錄下必須有一個WEB-INF文件,並且WEB-INF文件下需要有個web.xml文件,內容如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>Tomcat</display-name>
<welcome-file-list>
<welcome-file>/</welcome-file>
</welcome-file-list>
</web-app>
這裏我複製了項目裏的web.xml,只需要留下這些基本配置信息。
配置IDEA
爲圖中框出的地方打上勾。
最後重啓Tomcat即可。