Servlets 如何在WEB-INF下访问index.html文件

Servlets 如何在WEB-INF下访问index.html文件,servlets,web-inf,welcome-file,Servlets,Web Inf,Welcome File,在eclipse上构建的示例web应用程序中,我尝试将index.html文件放在web-INF文件夹下,然后更新部署描述符web.xml文件,如下所示,以便在部署时加载相同的文件: <welcome-file>WEB-INF/index.html</welcome-file> WEB-INF/index.html 但是当我尝试在Tomcat服务器中部署web应用程序时,它不会加载index.html文件。但是,当我将index.html文件直接移动到应用程序的根目录

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

<welcome-file>WEB-INF/index.html</welcome-file>
WEB-INF/index.html
但是当我尝试在Tomcat服务器中部署web应用程序时,它不会加载index.html文件。但是,当我将index.html文件直接移动到应用程序的根目录下(即WebContent文件夹的正下方)时,index.html文件确实会在浏览器中成功加载

我想如果我必须将默认index.html文件放在WEB-INF下,那么我需要编写一个servlet并将其保持为
0

在我的web.xml文件中。 否则,Tomcat容器无法直接访问WEB-INF下的index.html

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

这是不可能的

Servlet 3.1规范

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

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

参考

(第10-105页)


为什么不可能?当我们通过servlet呈现WEB-INF中的JSP时,我们对这些JSP不是也这样做吗?API说它可能不会被提供,而不是不能被提供。如果我遗漏了什么,请纠正我。在本例中(您的回复),使用JSP文件,它正在间接访问。是的。因此,我们仍然可以间接访问它,但这不是一个好的做法。至少有一个文件(默认)应为公共文件。