JSP in /WEB-INF returns "HTTP Status 404 The requested resource is not available"
http-status-code-404, jsp, web-inf
Solution
404 simply means "Not Found".
Either the URL is wrong (note: case sensitive!), or the resource is not there where you think it is.
Just verify the URL and/or verify if the resource is there where you'd expect it to be. You placed `sample.jsp` in `/WEB-INF` folder. This way it is not publicly accessible without calling through a front controller servlet.
Put it outside `/WEB-INF`.
samplejsp
`-- WebContent
|-- WEB-INF
`-- sample.jsp
If you want to keep it in `/WEB-INF`, then you need to create a front controller servlet which forwards to it in `doGet()` method as below.
request.getRequestDispatcher("/WEB-INF/sample.jsp").forward(request, response);
Finally "open" the JSP by just calling servlet's actual URL instead of JSP's fictive URL.
See also:
- What is WEB-INF used for in a Java EE web application?
- Calling servlet from JSP
- doGet and doPost in Servlets
Problem
I created a JSP file. `sample.jsp` ``` <%@ page pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <title>Insert title here</title> </head> <body> This is jsp program </body> </html> ``` I placed it here in the `samplejsp` project. ``` samplejsp `-- WebContent `-- WEB-INF `-- sample.jsp ``` I opened it on the following URL. `http://localhost:8080/samplejsp/sample.jsp` But it shows the following error in browser. 404 ERROR The requested resource (/sample.jsp) is not available.