2011-05-08 58 views
2

我在Java EE相對較新,剛剛熟悉傳統的應用程序目錄結構(包括BUILD,DIST,NBPROJECT,SRC和WEB文件夾)。我想知道:如果我的應用程序需要在服務器上使用某些資源/資產(如圖像或pdf),上面列出的5個文件夾中的哪一個應該放置這些資源?我想我可以在技術上將它們放置在任何地方,只要我正確引用文件,但不確定常見的最佳做法是什麼。Java EE應用程序目錄最佳實踐問題

回答

2

您通常會包含靜態內容,例如圖像或PDF,需要通過WebContent中的http請求讀取如果我的Web是您的WAR項目:

my-web/WebContent/images 
my-web/WebContent/scripts 
my-web/WebContent/misc 

這意味着您可以訪問使用例如:

/my-web/images/bob.jpg 
/my-web/scripts/bob.js 
/my-web/misc/bob.pdf 

存放文件在這裏允許公共訪問。我將從Eclipse help pages引用這樣的:

的Web內容文件夾表示WAR文件,這將是 部署到服務器的 內容。 Web內容文件夾下的所有文件不 被 認爲是開發時資源 (例如,.java文件,.sql文件, 和的.mif文件),而不是部署 當項目單元測試或 公佈。

+0

我正在使用Netbeans並沒有看到WebContent文件夾。我需要創建一個嗎?我在WEB目錄內看到的所有內容都是META-INF,WEB-INF和index.jsp – DecafJava 2011-05-08 08:42:02

+0

我不是NetBeans用戶。但我相信你可以在網頁文件夾中添加文件夾和靜態內容。所以你可能有MyWebProject/WEB-INF。將你的文件添加到MyWebProject/images,MyWebProject/scripts,MyWebProject/misc。 NetBeans可能會顯示一個名爲「網頁」的文件夾,因此請將文件夾和內容放入該文件夾中。 – planetjones 2011-05-08 08:51:07

+0

Gotchya!謝謝..出於好奇,剛剛意識到在DIST和WEB目錄內,目前存在的內容是相同的。這是什麼原因? – DecafJava 2011-05-08 08:58:06

0

您需要考慮資產在決定放置位置之前如何交付給客戶。資源(如ccs和靜態html頁面)由客戶端使用單獨的HTTP調用來檢索,因此它們需要位於可訪問的位置。在你的情況下,我會說他們必須在index.jsp的級別,或在該級別的子目錄。如果你把它們放在WEB-INF中,它們將無法從外部世界獲得。你可以將它們放在META-INF中,但它可能是該目錄的一種不尋常的用法。

+0

謝謝你清理! – DecafJava 2011-05-08 08:55:34