MoD*_*MoD 6 html forms jsp tomcat tomcat7
这是我的第一个问题(所以要温柔:)).我到处寻找,无法找到问题的答案(在此过程中也有点疯狂).
我正在为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
Run Code Online (Sandbox Code Playgroud)
当我运行"http:// localhost/myTest"时,index.jsp总是正常运行.然后我用
"<jsp:forward page="WEB-INF/html/GetName.html"></jsp:forward>"
Run Code Online (Sandbox Code Playgroud)
在我的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>
Run Code Online (Sandbox Code Playgroud)
当我按下表单中的提交按钮时,浏览器会重定向到:http://127.0.0.1: 8080/myTest/WEB-INF/jsp/suname.jsp并弹出错误.
所以我真的不明白为什么会发生这种情况......默认的Tomcat应用程序运行良好......
PS我也试过manualy导航到文件:
http://127.0.0.1:8080/myTest/WEB-INF/html/GetName.html
http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp
Run Code Online (Sandbox Code Playgroud)
但我也得到错误(即使当idex.jsp也导航到GetName.html没有任何问题)..
任何帮助都是非常有用的!谢谢!!
您无法直接导航到 WEB-INF 目录下的任何文件/工件(对 META-INF 也有效)。这是 servlet 引擎的一项安全功能:WEB-INF 下的内容受到保护,无法通过 URL 从“外部”访问。否则,任何人都可以通过组合适当的 URL 来读取应用程序/数据库配置等敏感详细信息。
\n\n“jsp:forward”标签仍然能够访问WEB-INF目录下的文件的原因是转发是在服务器内部执行的,即请求已经到达servlet引擎并执行index.jsp,因此servlet 引擎已经履行了它的安全职责,现在index.jsp 的作者负责决定必须访问哪些文件。
\n\nPS
除了使用“jsp:forward”标签之外,您还可以使用 include 指令(静态包含),例如
<%@ include file=\xe2\x80\x9d/WEB-INF/dir/file.extension\xe2\x80\x9d %>\nRun Code Online (Sandbox Code Playgroud)\n\n或包含 JSP 标签(动态包含),例如
\n\n<jsp:include page=\xe2\x80\x9d/WEB-INF/dir/file.extension\xe2\x80\x9d />\nRun Code Online (Sandbox Code Playgroud)\n\n这两种包含类型之间的差异可以通过谷歌搜索,好的结果是例如\n http://java.sun.com/products/jsp/tags/11/syntaxref117.html
\n http://java.sun.com /products/jsp/tags/11/syntaxref1112.html
\n http://www.coderanch.com/how-to/java/InincludesActionDirective
\n http://docs.oracle.com/cd/B14099_17/web.1012 /b14014/keydev.htm#i1005631