【发布时间】: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