2011-05-08 57 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