2013-03-01 45 views
2

这是从Java EE6 Tutorial什么是JavaEE应用程序的文档根目录?

Web模块具有特定的结构。 Web模块的顶级目录是应用程序的文档根目录。文档根目录 是存储XHTML页面,客户端类和归档以及静态资源(如图像)的位置。

文档根目录包含一个名为WEB-INF子目录,可以 包含下列文件和目录

但在here,好像在WEB-INF目录不是文档根目录。此外,当您创建使用NetBeans一个JSF项目,文件夹结构将是这样的:

ProjectName 
| 
| 
--src 
| 
| 
--web 
    | 
    | 
    --WEB-INF 

这又意味着网页目录不是文档根目录?

那么哪个是正确的?

因为Java中的EE6教程,文继续说道:

文档根目录包含一个名为WEB-INF子目录,可以 包含下列文件和目录类:包含 服务器的目录端类:小服务程序,企业bean类文件,工具类, JavaBeanscomponents

但根据NetBeans和上面的教程中,服务器端CLAS ses在不同的目录中?

请帮忙解决这个问题吗?

+0

如果您在那里查看教程,它会告诉您它将使用maven,这就是文件夹结构不同的原因。请参阅http://www.mkyong.com/maven/how-to-create-a-web-application-project-with-maven/ – 2013-03-01 23:51:42

+0

Netbeans不使用maven,仍然有不同的结构。 – 2013-03-01 23:52:11

+0

术语* web模块*并不涉及与NetBeans项目结构相关的任何内容。你链接到它的教程解释了! Web模块只是“可以部署到应用服务器的东西”。在你的情况下,'web'目录的内容。本教程所说的是* web模块*是包含“WEB-INF”的目录。 – millimoose 2013-03-01 23:53:41

回答

4

EE规范讨论了最终战争文件的目录结构。您在问题中提到的目录结构是IDE如何在其项目结构中安排不同的文件。他们是两个不同的东西。

要回答你的问题,war中的文档根目录是WEB-INF目录的父目录。不同的IDE对于项目结构有不同的文档根目录,但在大多数情况下,它也是WEB-INF目录的父目录。在netbeans的情况下,它是web文件夹。在标准Eclipse Web项目中,它是WebContent目录。在maven世界中,它是src/main/webapp目录。这些都可以在IDE中配置。

+0

因此,我所拥有的Web-Inf目录与Java EE提及的Web-Inf目录无关?因为我的类文件位于src文件下,而JavaEE认为类文件位于Web-Inf目录下?那是最终战争文件中的Web-Inf,而不是我项目设置中的Web-Inf? – 2013-03-01 23:58:37

+1

您的源代码.java文件位于src目录中。但是在生成war文件后,编译后的.class文件将最终放入WEB-INF/classes目录中。我们项目中的WEB-INF目录与最终战争中的WEB-INF目录链接,但它们并不相同。在开发的编译/软件包阶段会出现很多复制/压缩文件 – Lan 2013-03-02 00:02:01

+1

正如答案所指出的那样 - 编码步骤中的文件排列顺序不同,但是您,IDE和构建系统更喜欢,并且部署一步,构建系统组装一个.war,然后部署它。文档根是.war的根,它包含WEB-INF目录。在您的编码IDE中,文档根目录是构建系统所说的位置,例如web或WebContent或src/main/webapp。 – 2013-03-02 00:13:59

相关问题