为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

犯罪嫌疑人X 2021-09-03 16:35:33
我是一个完全的新手,我正在使用 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 文件夹中时它不起作用。
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

应用程序层次结构中存在一个名为 WEB-INF 的特殊目录。此目录包含与应用程序相关但不在应用程序文档根目录中的所有内容。WEB-INF 节点不是应用程序公共文档树的一部分。WEB-INF 目录中包含的任何文件都不能由容器直接提供给客户端。但是,WEB-INF 目录的内容对于使用 getResource 和getResourceAsStream 方法调用的servlet 代码是可见的ServletContext,并且可以使用RequestDispatcher调用公开 。

如果您想将文件保存在 WEB-INF 中 - 您需要一个 Servlet 来管理它。

只是如何使用 servlet 获取 HTML 文件的一般示例:

RequestDispatcher view = request.getRequestDispatcher("mypage.html");
view.forward(request, response);

否则,将您的文件移到 WEB-INF 之外并尝试使用 http://localhost:8081/MiniPro/first.html


查看完整回答
反对 回复 2021-09-03
?
绝地无双

TA贡献1946条经验 获得超4个赞

你可以试试 ~/<path here >/<file>

这将帮助您从本地主机指向主路径

您正在使用类似的路径

MiniPro/WebContent/WEB-INF/NewFile.html 在该路径上方已定位

http://localhost:8081/MiniPro/WebContent/WEB-INF/first.html

所以你可以使用而不是 http://localhost:8081使用~

~/MiniPro/WebContent/WEB-INF/NewFile.html


查看完整回答
反对 回复 2021-09-03
?
aluckdog

TA贡献1847条经验 获得超7个赞

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


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 558 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信