Đây là câu hỏi đầu tiên của tôi ở đây (vì vậy hãy nhẹ nhàng :)). Tôi đã nhìn khắp mọi nơi và không thể tìm thấy câu trả lời cho vấn đề của tôi (cũng đã đi một chút điên rồ trong quá trình này).Apache Tomcat: Tài nguyên được yêu cầu() không khả dụng (trong khi nhập tài nguyên cần sẵn có)
Tôi đang sử dụng Tomcat 7 và IDE Eclipse mới nhất cho các nhà phát triển Java EE (nền tảng Eclipse 3.7.2 và Java EE IDE 1.4.2). Vì vậy, tôi nhận được lỗi này: "Tài nguyên được yêu cầu() không khả dụng" khi truy cập http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp. Tôi đã kiểm tra nhiều lần rằng tệp này nằm trên đĩa trong thư mục chính xác. Tôi đã thử chạy Tomcat bên trong Eclipse và triển khai chiến dịch xuất khẩu trong Tomcat. Mỗi lần cùng một lỗi xuất hiện.
My files:
myTest/index.jsp
myTest/WEB-INF/html/GetName.html
myTest/WEB-INF/jsp/savename.jsp
Khi tôi chạy "http: // localhost/MyTest" index.jsp luôn chạy đúng. Sau đó, tôi sử dụng
"<jsp:forward page="WEB-INF/html/GetName.html"></jsp:forward>"
bên trong index.jsp để điều hướng đến GetName.html và điều đó cũng hoạt động. Vấn đề bật lên trong 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>
Khi tôi bấm nút gửi theo hình thức, trình duyệt chuyển hướng đến: http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp và lỗi bật lên.
Vì vậy, tôi thực sự không hiểu tại sao điều này xảy ra ... Ứng dụng Tomcat mặc định hoạt động hoàn hảo ...
P.S. Tôi đã cố gắng cũng manualy điều hướng đến file:
http://127.0.0.1:8080/myTest/WEB-INF/html/GetName.html
http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp
nhưng tôi cũng nhận được lỗi (ngay cả khi idex.jsp cũng điều hướng tới GetName.html mà không cần bất kỳ vấn đề) ..
Bất kỳ giúp đỡ được nhiều apreciated! Cảm ơn !!
Cảm ơn người đàn ông! Nhưng vấn đề vẫn còn ... Làm thế nào tôi có thể liên kết các tệp khác nhau trong các thư mục khác nhau? Tại sao biểu mẫu trong GetName.html không thể truy cập WEB-INF/jsp/savename.jsp? Điều gì sẽ là giải pháp? (ngoại trừ việc đặt tất cả các tập tin trong thư mục gốc ...) – MoD
Xin lỗi để nói, nhưng với các JSP đơn giản thì không có giải pháp nào khác. Dữ liệu biểu mẫu được gửi bởi trình duyệt, do đó trình duyệt lắp ráp URL và gửi dữ liệu đến máy chủ bằng URL đó và máy chủ nói "KHÔNG, bạn không thể truy cập vào WEB-INF". Vì vậy, bạn phải đặt * savename.jsp * vào thư mục gốc hoặc một thư mục khác trong thư mục gốc và sử dụng các thẻ hoặc chỉ thị để tải nội dung thực từ các tệp trong WEB-INF. – t0r0X
Tôi nghĩ rằng tôi biết những gì bạn đang cố gắng đạt được: bảo vệ/ẩn tất cả các JSP và mã liên quan. Như tôi đã nói, điều đó không thể thực hiện được với các JSP đơn giản. Bạn cần xây dựng một servlet hoặc một bộ lọc phục vụ như là "gateway" và được ánh xạ tới một URI không có trong/bên dưới WEB-INF, và chuyển tiếp các yêu cầu tới các JSP của bạn bên trong WEB-INF. Tôi muốn khuyên bạn nên sử dụng một khung công tác cung cấp cho bạn các khả năng như vậy, ví dụ: Spring MVC framework. Hãy để tôi cung cấp cho bạn một số gợi ý: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-features – t0r0X