猿问

HTTP 状态 404 打开 HTML 页面时请求的资源不可用

我是一个完全的新手,我正在使用 Eclipse Oxygen 平台来运行我的应用程序和 Apache Tomcat 8.0.36 服务器。


首先,我在项目内的 WEB-INF 文件夹中创建了一个简单的 HTML 页面 first.html。


<!DOCTYPE html>

<html>

<head>

<meta charset="ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<h1>First Page</h1>

<a href="MiniPro/WebContent/WEB-INF/NewFile.html" >Press Here</a>

</body>

</html>

当我运行此代码时,它会指向此链接http://localhost:8081/MiniPro/WEB-INF/first.html 并显示 HTTP 状态 404 错误。即使我尝试过,http://localhost:8081/MiniPro/WebContent/WEB-INF/first.html 它也会 显示相同的错误。


当我将 first.html 页面的位置更改为 WebContent 文件夹并运行时,它显示了结果。


有人可以告诉为什么它放在 WEB-INF 文件夹中时它不起作用。


犯罪嫌疑人X
浏览 559回答 3
3回答

沧海一幻觉

应用程序层次结构中存在一个名为 WEB-INF 的特殊目录。此目录包含与应用程序相关但不在应用程序文档根目录中的所有内容。WEB-INF 节点不是应用程序公共文档树的一部分。WEB-INF 目录中包含的任何文件都不能由容器直接提供给客户端。但是,WEB-INF 目录的内容对于使用 getResource 和getResourceAsStream&nbsp;方法调用的servlet 代码是可见的ServletContext,并且可以使用RequestDispatcher调用公开&nbsp;。如果您想将文件保存在 WEB-INF 中 - 您需要一个 Servlet 来管理它。只是如何使用 servlet 获取 HTML 文件的一般示例:RequestDispatcher&nbsp;view&nbsp;=&nbsp;request.getRequestDispatcher("mypage.html"); view.forward(request,&nbsp;response);否则,将您的文件移到 WEB-INF 之外并尝试使用&nbsp;http://localhost:8081/MiniPro/first.html

绝地无双

你可以试试&nbsp;~/<path here >/<file>〜这将帮助您从本地主机指向主路径您正在使用类似的路径MiniPro/WebContent/WEB-INF/NewFile.html&nbsp;在该路径上方已定位http://localhost:8081/MiniPro/WebContent/WEB-INF/first.html所以你可以使用而不是&nbsp;http://localhost:8081使用~~/MiniPro/WebContent/WEB-INF/NewFile.html

aluckdog

WEB-INF 目录在 web 项目中比较特殊。它被设计为不允许外部直接访问,但您可以使用您的servlet或jsp代码访问它。
随时随地看视频慕课网APP

相关分类

Java
我要回答