TOMCAT服務器重啓造成圖片資源自動刪除

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

1)分頁傳參問題 
jsp頁面向controller傳遞參數的時候,實際中很有可能是傳遞多個參數,且各個參數來自不同的標籤位置,如可能來自標籤 也有可能來自 標籤,那麼如何實現這些參數的傳遞呢? 
例如:
標籤中可以放置的產品的總分類、上一頁、下一頁等標籤, 中可以設置每頁你需要顯示分頁的數目。 
那麼如何獲得以上的數據,且要保證用戶在點擊上一頁或下一頁的不能丟失總分類的數據?

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,感謝。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章