0

在基于 Eclipse 构建的示例 Web 应用程序中,我尝试将 index.html 文件放在 WEB-INF 文件夹下,然后更新部署描述符 web.xml 文件,如下所示以在部署时加载相同的文件:

<welcome-file>WEB-INF/index.html</welcome-file>

但是当我尝试在 Tomcat 服务器中部署 Web 应用程序时,它不会加载 index.html 文件。但是,当我将 index.html 文件直接移动到应用程序的根目录时,即直接在 WebContent 文件夹下,index.html 文件确实在浏览器中成功加载。

我想如果我必须将默认 index.html 文件放在 WEB-INF 下,那么我需要编写一个 servlet 并将其保存<load-on-startup>0</load-on-startup>
在我的 web.xml 文件中。否则Tomcat容器无法直接访问WEB-INF下的index.html。

如果我遗漏了什么,请随时添加。

4

1 回答 1

0

是不可能的。

Servlet 3.1 规范

大多数 WEB-INF 节点不是应用程序的公共文档树的一部分。除了静态资源和打包在 目录METAINF/resources中的 JAR 文件中的JSP 之外WEB-INF/lib ,WEB-INF 目录中包含的其他文件不能由容器直接提供给客户端。

最佳做法是将文件index.html放入src/main/webapp.

参考

http://download.oracle.com/otn-pub/jcp/servlet-3_1-fr-eval-spec/servlet-3_1-final.pdf(第 10-105 页)

https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

于 2017-06-05T08:26:38.827 回答