- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我在这里的第一个问题(所以要温和 :))。我到处都找遍了,但找不到我的问题的答案(在这个过程中也变得有点疯狂)。
我正在为 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/
typedef struct mensagem { int sender ; int receiver ; char *text ; } *Item ; typedef str
通读一篇关于自定义对象的文章: http://technet.microsoft.com/en-us/library/ff730946.aspx 我想知道为什么我会得到单个条目的结果:例如 $objA
我写了这个简单的程序: public class WriteExcel { private WritableCellFormat timesBoldUnderline; private
我想更改 Apache tomcat 访问 URL 的名称 例如:- localhost:8080 我想将 localhost:8080 更改为 myserver.com:8080 怎么办? 最佳答案
我检查了所有相关问题,答案都已过时(C API)或不相关/没有真正的答案。 Opencv 3.0 版(通过自制软件)。 操作系统:OSX 塞拉利昂 Opencv 运行平稳,除了 VideoCaptur
我在 java 应用程序中有以下代码 Thread.currentThread().sleep(10000); 但是 eclipse 向我显示以下警告: The static method sleep
我已经在 ubuntu 上安装了 rabbitmq-server ,安装后我检查了它是否在端口上正常运行或者没有使用 netstat -lntu。它正在运行,插件已启用,并且也已经过验证。甚至端口 1
我正在处理 Power BI 报告,并使用 Microsoft 在 Github 中提供的示例代码将其集成到应用程序中。在 Azure Active Directory 中注册应用程序后,应将客户端
我正在处理 Power BI 报告,并使用 Microsoft 在 Github 中提供的示例代码将其集成到应用程序中。在 Azure Active Directory 中注册应用程序后,应将客户端
我正在尝试使用以下代码连接到使用 HtmlUnit 的页面: WebClient webClient = new WebClient(); webClient.getOptions().setThro
我正在尝试使用 更新网站博客 .但是,渲染失败。网站仓库在 this link 当我跑 blogdown:::serve_site() ,我收到以下错误: Start building sites â
我在几张纸上使用一个脚本。为了避免每次更改时都更改每张工作表中的脚本,我创建了一个库(顺便说一下,是否有更好的库替代品?)。所以我在其他工作表中这样调用我的函数: myFunction(){ retu
一个mysql一对多问题:各种产品以及我在哪里销售它们。我有多种可以销售的产品,以及多个销售地点。我有一个带有主键的产品表:product_id。我有一个位置表,其中包含 PK location_id
这是我在这里的第一个问题(所以要温和 :))。我到处都找遍了,但找不到我的问题的答案(在这个过程中也变得有点疯狂)。 我正在为 Java EE 开发人员使用 Tomcat 7 和最新的 Eclipse
我已经把网上能读到的或者官方文档都看了,但是这个错误太尴尬了。我想将以下策略添加到我的存储桶中: { "Version":"2012-10-17", "Statement":[ {
我有一些访问 window.localStorage 的 javascript 代码,它在大多数机器上工作正常,但在其中一台机器(IE8 兼容 View ,Windows 7 64)中,我收到错误“系
我正在从基本上读取 JSON 文件并返回一些值的脚本访问一个函数。 main/randomgenerator/generatorran.py def getName(): with open(
我目前正在参加谷歌IT认证,并参加了成为PowerShell和Linux高级用户的部分。我被困在这一点上,我试图弄清楚为什么我不能理解她在视频中的所作所为。她试图将文件从文档复制到桌面,但每次我尝试使
我目前正在参加谷歌IT认证,并参加了成为PowerShell和Linux高级用户的部分。我被困在这一点上,我试图弄清楚为什么我不能理解她在视频中的所作所为。她试图将文件从文档复制到桌面,但每次我尝试使
我有一个 AWS Lambda 使用 Sequelize ORM 与 AWS Aurora 对话。第一次访问时它工作正常,但在未知的几分钟后,Lambda 出错并显示 Sequelize 错误,提示
我是一名优秀的程序员,十分优秀!