1. 程式人生 > >TOMCAT伺服器重啟造成圖片資源自動刪除

TOMCAT伺服器重啟造成圖片資源自動刪除

最近在做了一個簡單的Spring+springMVC+Mybatis 的案例,在該過程中遇到幾個問題,現在佔時以之記錄。有些問題還沒得到解決。

2)向jsp頁面傳遞List集合問題 
在實際情況中,有可能對LIst集合進行了多重封裝:例如,可能在訂單orders中封裝一個訂單項orderitem,在訂單項orderitem中又封裝一個書book項,等等。那麼如何使用el表示式在jsp頁面取值的時候才能不出錯呢?它傳遞值的時候又遵循哪些規則呢?

3)圖片上傳的問題 
圖片上傳程式寫完之後,發現上傳到 Tomcat 伺服器中的圖片,在每次Tomcat重啟的情況下都會被自動刪除。上網查詢之後,解決方法如下: 

a.修改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> <!-- 圖片要想上傳成功,需要新增readonly選項,它的值設定成為:false --> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name
>
listings</param-name> <!-- param-value原來的值是:false 這裡將它改為:true--> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>

b.修改service.xml檔案,內容如下:

 <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
             <!-- 修改部分:將以下一行程式碼註釋掉 -->
       <!--  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/> -->
  • 1

其實就是給工程配置虛擬路徑,這樣tomcat在啟動的時候直接找到你的工程了,你上傳的圖片就不會跑到/tomcat/webapps/目錄,而是直接到了你的工程裡,不管你怎樣重啟專案,或者清理快取,上傳的檔案依然存在!

4)資料庫的級聯操作問題 
雖然就是簡單的幾個表,但是都是有外來鍵約束的,而且當初在建表的時候並沒有對外來鍵使用:on delete cascade/on update cascade 。所以在mybatis對錶進行刪除和更新的時候總是無法成功!雖然有mapper.xml 配置檔案,可是一個方法中卻只能寫一個SQL語句呀!這就比較鬱悶了。在網上看了帖子都沒找到符合要求的SQL,於是索性將外來鍵刪除,再重新將on delete cascade/on update cascade 直接加上去,果然級聯刪除與跟新就沒那麼麻煩了。所以,以後在建表的時候,最好仔細考慮一下是否有需要新增on delete cascade/on update cascade !

文章轉載於:https://blog.csdn.net/qq_33396392/article/details/53609274,感謝。