簡體   English   中英

如何參考正確的目錄?

[英]How do I refer to the right Directory?

如果我的Java類位於:

包org.gamehost.flyingame.BookManagementServlet.ModelClass

又名:

BookManagementSoftwareServlet / org / gamehost / flyingame / BookManagementServlet / ModelClass

在該類中,如果我想從目錄中返回文件,請在執行此操作后說一個html文件:

File newFile = new File(“ HTMLFile.html”);

假設上面的代碼將創建一個新文件,它將在

圖書管理軟件Servlet

目錄,或者它將在此目錄中創建它:

BookManagementSoftwareServlet / org / gamehost / flyingame / BookManagementServlet / ModelClass

如果沒有,我是否應該這樣做呢?

C:// Workspace / BookManagementSoftwareServlet / org / gamehost / flyingame / BookManagementServlet / ModelClass

大概都不行。 除非容器已修改此行為,否則它將轉到當前用戶目錄。 java.io.File javadoc說:

相反,相對路徑名必須根據從其他路徑名獲取的信息來解釋。 默認情況下,java.io包中的類始終針對當前用戶目錄解析相對路徑名。 該目錄由系統屬性user.dir命名,通常是在其中調用Java虛擬機的目錄。

容器通常會鎖定文件創建,因此您可能會遇到安全錯誤。 您沒有提到您的容器,但這是有關Tomcat 6和安全管理器的一些信息。

如果這些文件是臨時文件並已重新生成,則可以在從2.5 servlet規范的SRV.4.7.1臨時工作目錄中定義的javax.servlet.context.tempdir servlet上下文屬性返回的絕對路徑中創建它們。

每個Servlet上下文都需要一個臨時存儲目錄。 Servlet容器必須為每個Servlet上下文提供一個專用的臨時目錄,並通過javax.servlet.context.tempdir上下文屬性使其可用。 與該屬性關聯的對象必須是java.io.File類型。

一個無用的樣式注釋:我總是發現最好將包名都保留為小寫,並使用駝峰式作為類名。 我發現這樣做可以減少閱讀代碼,查看堆棧跟蹤等時的混亂。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM