這是我的第一個問題(所以請溫和:))。我到處尋找,找不到我問題的答案(在這個過程中也有點瘋狂)。Apache Tomcat:請求的資源()不可用(同時訪問應該可用的資源)
我爲Java EE開發人員(Eclipse平臺3.7.2和Java EE IDE 1.4.2)使用Tomcat 7和最新的Eclipse IDE。 所以,我得到這個錯誤:「請求的資源()不可用」,同時訪問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://本地主機/ 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應用程序很好地工作......
附:我曾嘗試也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
但我也得到了錯誤(即使idex.jsp導航也沒有任何問題,前面教程的GetName.html)..
任何幫助很大apreciated! 謝謝!
感謝的人!但問題仍然存在......我如何鏈接不同文件夾內的不同文件?爲什麼GetName.html中的表單無法訪問WEB-INF/jsp/savename.jsp?解決方案是什麼? (除了將所有文件放在根目錄中......) – MoD 2012-03-01 18:11:49
很抱歉地說,但是對於普通的JSP,沒有其他解決方案。表單數據由瀏覽器發送,因此瀏覽器會組裝URL並使用該URL將數據發送到服務器,並且服務器說「不,您無法進入WEB-INF」。因此,必須將* savename.jsp *放在根目錄或根目錄下的另一個目錄中,並使用包含標記或指令從WEB-INF下的文件加載實際內容。 – t0r0X 2012-03-01 18:36:00
我想我知道你在努力實現什麼:保護/隱藏所有的JSP和相關的代碼。正如我所說的,不能用簡單的JSP來完成。您需要構建一個作爲「網關」的servlet或過濾器,並將其映射到不在/位於WEB-INF下的URI,並將請求轉發到WEB-INF中的JSP。我寧願推薦使用爲您提供這種功能的框架,例如Spring MVC框架。讓我給你一些指示:http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-features – t0r0X 2012-03-01 18:50:55