2011-09-13 28 views
0

我正在開發一個帶有jsf的java web軟件。我們不想使用數據庫,但希望通過文件系統上的簡單文件完成持久性。請不要問爲什麼,並說這是愚蠢的,因爲它在大多數情況下。沒有數據庫web思路的持久性

我們不能說像D:/data/home/user/data這樣的東西是放置數據的地方,因爲也許有人使用windows,mac或linux。

是否有通過應用服務器保存文件的一些標準的方式,將生存重新啓動,甚至應用程序的重新部署,服務器等的更新 - 真正的持續性?如果沒有,是否有tomcat解決方案?

+1

你有沒有考慮像JavaDB,H2等嵌入式數據庫?它只允許使用JDBC,JPA等進行數據庫交互。 – BalusC

+0

@Franz,你不能讓你的用戶提供文件系統路徑。如果您已經達到了要求用戶下載和部署應用程序的程度(我的假設),那麼您肯定也可以讓他們配置應用程序。 –

+0

爲什麼不直接在類路徑中進行序列化和反序列化?或者,您可以在任何使用該系統的系統中訪問環境變量。 – Shahzeb

回答

4

該標準不提供訪問的位置在一個Web應用程序可以讀取任意文件/寫訪問的文件系統。

你可以,但是,指定的位置,並通過系統屬性或屬性文件中的位置通過。

如果你只是想有可用的會話範圍的用戶信息,然後考慮把序列化對象的會話,讓容器來管理它。

0

您正在嘗試將文件保存在服務器端還是客戶端?

如果是服務器端,那麼你可以控制操作系統(除非你正在爲每個用戶部署應用服務器,他們會在本地運行它......),但我採取的方式問題我認爲你打算在客戶端存儲數據。在這種情況下,只要您不存儲敏感數據,您可能需要使用Cookie。

0

幾點建議:

  1. 如果你需要存儲的數據是足夠小,這樣做在一個cookie。

  2. 提示用戶輸入一個文件。如果您不想每次都要求提供新的/現有的文件,請將路徑存儲在Cookie中。

  3. 嘗試訪問在Unix,Mac,Windows系統格式的主目錄,並看看哪一個。

我會說,如果1不工作,你應該使用2,因爲你真的不應該不知情的情況寫入用戶的驅動器(尤其是從applet)。