2013-07-09 59 views
0

假設我想寫入一個在我的webapp空間內創建的新文件。在不使用ServletContext的情況下創建一個新文件

一種方法是使用getServletContext().getRealPath("/")並使用該字符串在服務器上創建一個新文件。但是,我經常遇到不使用getServletContext().getRealPath("/")的建議。

有人可以讓我知道在我的webapp中寫入新文件的另一種方式嗎?

非常感謝。

回答

1

擁有一些配置屬性,其中包含webapp和web服務器路徑之外的目錄的絕對路徑,從配置屬性中讀取此路徑並寫入此目錄。

要從此目錄提供文件,請編寫一個servlet,它將此文件的名稱或ID作爲參數,從目錄中讀取文件並將其內容發送到響應。

這將

  • 工作,即使應用程序部署爲war文件,從不解壓到文件系統
  • 讓您重新部署應用程序或服務器的下一個版本,而不刪除所有上傳/創建的文件
  • 允許你添加任何你想要控制的上傳/創建的文件,而不是使他們提供給大家

總之,對待這些文件作爲數據存儲在恰好是文件系統而不是SQL數據庫的數據庫中。

+0

謝謝JB爲您解答。但是,如果我正在部署到服務器,我無法確定目錄的絕對路徑,那麼我該如何編寫該文件。 – userjoe

相關問題