WEB-INF 在 Java EE Web 应用程序中代表啥? [关闭]
Posted
技术标签:
【中文标题】WEB-INF 在 Java EE Web 应用程序中代表啥? [关闭]【英文标题】:What does WEB-INF stand for in a Java EE web application? [closed]WEB-INF 在 Java EE Web 应用程序中代表什么? [关闭] 【发布时间】:2010-10-16 03:10:47 【问题描述】:互联网上的大多数地方都说它代表WEB INFormation。
我比较怀疑。该文件夹包含可执行文件。 Information 不是一个合适的名称。
【问题讨论】:
META-INF/services/ 基本上包含代码,如果使用的是一种相当简约的专业语言。 以更好的方式提出的重复问题:***.com/questions/19786142/… 【参考方案1】:据我所知,正如您所说,“INF”代表“信息”。它可能被命名为WEB-INF
,因为它与JAR 文件中的META-INF
目录相似。有时,目录的含义会随着时间的推移发生很大变化,以至于它不再有意义。例如,Unix/Linux 中的bin
目录通常包含非二进制“可执行”文件,例如 shell 脚本。
【讨论】:
那么坚持META-INF
有什么问题呢?当META-INF
已经服务于所需的目的时,为什么还要发明WEB-INF
?
@Pacerier:关注点分离。 WEB-INF
可作为网络资源访问。 IE。 ServletContext#getResource()/getResourceAsStream()
和 ServletRequest#getRequestDispatcher()
可以访问它。 META-INF
不能作为网络资源访问,也不应该如此。 IE。你不应该把 JSP 文件之类的网络资源放在那里。【参考方案2】:
我相信真正命名为WEB-INF是为了将META-INF目录镜像到一个jar文件中,里面包含元信息。我确实明白您所说的关于可执行文件和“信息”的意思,但重点是它不包含应用程序的文档。
【讨论】:
@jon skeet :如果您愿意,可以更改标签 看起来已经完成 - 现在将编辑答案,所以它仍然有意义:) (现在有这个答案以及安迪怀特的答案有什么意义吗?我很想删除。)【参考方案3】:这是一个存放私有应用内容的目录。您的应用程序需要但您的客户端不需要的任何东西都可以存储在那里。该目录中的任何内容对网络都是不可见的。
来源:
http://tomcat.apache.org/tomcat-7.0-doc/appdev/source.html#Directory_Structure http://docs.oracle.com/cd/E13222_01/wls/docs70/webapp/basics.html#136976
【讨论】:
这并不能真正回答WEB-INF
实际代表什么的问题。【参考方案4】:
我认为,唯一合乎逻辑的定义是 WEB-INF 是 META-INF 的镜像。命名对于初学者来说真的很重要,如果它令人困惑,那么这个主题就会变得越来越难以理解。
【讨论】:
【参考方案5】:WEB_INF
文件夹包含web.xml
(部署描述符)文件、类、外部库等,web.xml
文件包含有关容器 url、文件等的信息,该文件夹称为 WEB-INF
.
【讨论】:
这并不能真正回答WEB-INF
实际代表什么的问题。
添加并接受了更好的答案 :) 引用 @andy-white As far as I know, "INF" stands for "Information", as you said. It probably was named WEB-INF for similarity with the META-INF directory in JAR files.
以上是关于WEB-INF 在 Java EE Web 应用程序中代表啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
MyEclipse j2ee工程 WEB-INF 目录内容显示
J2EE:为啥getServletContext().getResourceAsStream("/WEB-INF/web.xml");读取不到呢?