JavaEE 应用程序中的 app-inf 和 web-inf 文件夹有啥区别?

Posted

技术标签:

【中文标题】JavaEE 应用程序中的 app-inf 和 web-inf 文件夹有啥区别?【英文标题】:What difference between app-inf and web-inf folders in JavaEE applications?JavaEE 应用程序中的 app-inf 和 web-inf 文件夹有什么区别? 【发布时间】:2012-08-24 21:09:17 【问题描述】:

你能告诉我javaEE应用程序中APP-INF和WEB-INF文件夹的主要区别吗?

谢谢

【问题讨论】:

docs.oracle.com/cd/E13222_01/wls/docs90/webapp/… 【参考方案1】:

您能否让我了解 Java EE 应用程序中 APP-INF 和 WEB-INF 文件夹之间的主要区别。

APP-INF 特定于 WebLogic。在 Java EE 标准中它不存在,因此对于 Java EE 应用程序没有什么可比较的。 Java EE 确实有一个 [EAR]/lib 目录来代替非标准的 APP-INF/lib。可以选择在 [EAR]/META-INF/application.xml 中配置另一个目录"

<application>
   <library-directory>APP-INF/lib</library-directory>
</application>

在标准 Java EE 中没有直接替代 APP-INF/类的方法。您还必须将它们打包并放入 [EAR]/lib 中。

【讨论】:

【参考方案2】:

APP-INF

在包含许多war和jar(例如WebApp1.war、WebApp2.war、EJB1.jar和EJB2.jar)的企业应用程序(EAR应用程序)中,假设所有这些模块都想使用一些可用的类作为 Jar (common.jar) 的一部分。所以在这种情况下最好将此jar文件放在“APP-INF”目录下,这就是为什么我们不需要在每个Modules中放置4次相同的Jar。

WEB-INF

WEB-INF是Web应用程序的私有目录,WEB-INF目录下的任何文件都不能通过指定URL直接从浏览器访问。

查看 EAR 应用程序结构;

【讨论】:

谢谢,还有一个问题,APP-INF 和 WEB-INF 中的 lib 和 classes 有什么区别吗?我的意思是这只是逻辑上的区别还是没有区别? @IshikawaYoshi WEB-INF 代表一场战争,APP-INF 代表不止一场战争或罐子。所以 lib 和 classes 的形式都是不同的。APP-INF 是针对常见用法的。 换句话说,如果应用程序放置在 APP-INF 中,则应用程序可以看到所有 jar,而 WEB-INF 中的 jars 只能在这个 WAR 中看到,我是对的吗? 请注意,此答案仅适用于 WebLogic。 APP-INF 是 WebLogic 的专有功能。 OP 提到了“JavaEE”应用程序。 -1,因为这是特定于 WebLogic 的功能,而不是 JavaEE。

以上是关于JavaEE 应用程序中的 app-inf 和 web-inf 文件夹有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse没有Web插件和JavaEE插件咋整

JBoss 中的基本 ear-package 部署

javaEE和javaweb的区别?

JavaEE Tutorials - 运行持久化示例

JavaEE详解

JavaEE的13种核心技术