【问题标题】:What is the document root of a JavaEE Application?JavaEE 应用程序的文档根是什么?
【发布时间】:2013-02-16 14:39:23
【问题描述】:

这是来自Java EE6 Tutorial

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

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

但在here 中,WEB-INF 目录似乎不是文档根目录。此外,当您使用 NetBeans 创建 JSF 项目时,文件夹结构如下:

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

也就是说web目录又不是文档根目录了?

那么哪个是正确的?

因为在Java EE6 Tutorial,正文继续:

文档根目录包含一个名为WEB-INF的子目录,可以 包含以下文件和目录类: 包含 服务器端类:servlet、企业 bean 类文件、实用程序类、 JavaBeans组件

但是根据 Netbeans 和上面的教程,服务器端类在不同的目录中?

请帮忙解决这个困惑?

【问题讨论】:

  • 如果您查看那里的教程,它会告诉您它将使用 maven,这就是文件夹结构不同的原因。请参考mkyong.com/maven/…
  • @LuiggiMendoza 这个问题真的与 Maven 无关。谢谢。
  • @LuiggiMendoza 仍然是错误的。在 NetBeans 和 Maven 项目中都会发生同样的基本“不直观”事情。
  • @KorayTugay 不管怎样,在 Java EE 教程和 JSF 博客文章中,有些东西(库 .jars 和您的项目编译的 .class 文件)被添加到文件中在某个时候在web(或webapp)目录中。 (在部署之前,或者在启动应用服务器之前,或者在创建 .war 存档之前。)因此从某种意义上说,它们都不是一个真正的 Web 模块,但它们包含组成一个模块的一些文件。
  • @KorayTugay 我会说这是因为即使我通常也认为 maven 项目中的 webapp 文件夹是“web 模块,except Java 代码,except 库文件,因为 Maven 会为我添加这些”。这并不是因为您不能将该目录从您的项目复制到应用服务器并让它工作(您需要构建一个 WAR 或组装一个“真正的”Web 模块或对应用服务器的配置做一些丑陋的事情),但它直观地看起来就像它包含一个项目的所有“webby”位,而不是“Java-ey”位。

标签: java jakarta-ee


【解决方案1】:

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

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

【讨论】:

  • 所以我所拥有的 Web-Inf 目录与 Java EE 提到的 Web-Inf 目录无关?因为我的类文件在 src 文件下,而 JavaEE 说类文件在 Web-Inf 目录下?那是最终 war 文件中的 Web-Inf,而不是我的项目设置中的 Web-Inf?
  • 您的 .java 源文件位于 src 目录中。但是在你生成你的war文件之后,编译好的.class文件最终会在WEB-INF/classes目录下。我们项目中的WEB-INF目录是链接到你最终战争中的WEB-INF目录的,但它们并不相同。在开发的编译/打包阶段会发生很多复制/压缩
  • 正如答案指出的那样——有编码步骤,文件按照您、IDE 和构建系统的喜好排列,还有部署步骤,构建系统在其中组装一个 .war然后你部署它。文档根目录是 .war 的根目录,它包含 WEB-INF 目录。在您的编码 IDE 中,文档根目录位于构建系统所说的任何位置,例如web,或 WebContent,或 src/main/webapp。
  • @JerryAndrews 谢谢。现在很清楚了。由于名称完全相同,我对阅读教程感到困惑。 (文件夹的名称。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 1970-01-01
相关资源
最近更新 更多