gpt4 book ai didi

html - Apache Tomcat :The requested resource () is not available (while acessing the resource that should be avaliable)

转载 作者:太空狗 更新时间:2023-10-29 15:09:06 26 4
gpt4 key购买 nike

这是我在这里的第一个问题(所以要温和 :))。我到处都找遍了,但找不到我的问题的答案(在这个过程中也变得有点疯狂)。

我正在为 Java EE 开发人员使用 Tomcat 7 和最新的 Eclipse IDE(Eclipse 平台 3.7.2 和 Java EE IDE 1.4.2)。因此,我在访问 http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp 时收到此错误:“请求的资源 () 不可用” .我已经多次检查过这个文件在磁盘上的确切文件夹中。我试过在 Eclipse 中运行 Tomcat 并在 Tomcat 中部署导出的 .war。每次弹出相同的错误。

我的文件:

myTest/index.jsp
myTest/WEB-INF/html/GetName.html
myTest/WEB-INF/jsp/savename.jsp

当我运行“http://localhost/myTest”时,index.jsp 总是正常运行。然后我用

"<jsp:forward page="WEB-INF/html/GetName.html"></jsp:forward>"

在我的 index.jsp 中导航到 GetName.html,这也有效。在 GetName.html 中弹出问题:

<form  action='WEB-INF/jsp/savename.jsp' method="post" >
What's your name? <INPUT TYPE=TEXT NAME=username SIZE=20>
<P><INPUT TYPE=SUBMIT>
</form>

当我按下表单中的提交按钮时,浏览器重定向到: http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp并弹出错误。

所以我真的不明白为什么会这样...默认的 Tomcat 应用程序运行完美...

附言我也尝试过手动导航到文件:

http://127.0.0.1:8080/myTest/WEB-INF/html/GetName.html
http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp

但我也收到错误(即使 idex.jsp 也毫无问题地导航到 GetName.html)。

非常感谢任何帮助!谢谢!!

最佳答案

您不能直接导航到放置在 WEB-INF 目录下的任何文件/工件(对 META-INF 也有效)。这是 servlet 引擎的一项安全功能:WEB-INF 下的内容受到保护,无法通过 URL 从“外部” 访问。否则,任何人都可以通过组装适当的 URL 来读取敏感的详细信息,例如应用程序/数据库配置等。

之所以“jsp:forward”标签还能访问WEB-INF目录下的文件,是因为forward是在服务器内部执行的,即请求已经到达servlet 引擎和 index.jsp 被执行,因此 servlet 引擎已经完成了它的安全职责,现在是例如的作者。 index.jsp 负责决定必须访问哪些文件。

PS
除了使用“jsp:forward”标签,你还可以使用include指令(静态include),例如

<%@ include file=”/WEB-INF/dir/file.extension” %>

或包含 JSP 标记(动态包含),例如

<jsp:include page=”/WEB-INF/dir/file.extension” />

这两种包含类型之间的区别可以用谷歌搜索,好的结果是例如 http://java.sun.com/products/jsp/tags/11/syntaxref117.html
http://java.sun.com/products/jsp/tags/11/syntaxref1112.html
http://www.coderanch.com/how-to/java/IncludesActionDirective
http://docs.oracle.com/cd/B14099_17/web.1012/b14014/keydev.htm#i1005631

关于html - Apache Tomcat :The requested resource () is not available (while acessing the resource that should be avaliable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9516835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com