JSP in /WEB-INF returns "HTTP Status 404 The requested resource is not available"
Asked Answered
E

4

9

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.

Eradicate answered 5/3, 2010 at 10:35 Comment(2)
sorry,I resolve my mistake today omwardsEradicate
7 days passed and you haven't accepted nothing since...Cocks
P
8

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:

Pah answered 5/3, 2010 at 11:16 Comment(4)
ya i checked but it shows the above error ,Is there any error in the programEradicate
Yes, either the URL is wrong, or the resource is actually not there. The error message does not lie.Pah
ok,i accept the error message not lie,Ya error occurred in URL i understood that also,I selected the the jsp file and copied the URL from Properties,Then why it shows the error,How to solve this?Eradicate
Hint: the URL should be an URL, not a disk file system path. If sample.html is at http://localhost:8080/samplejsp/sample.html then the sample.jsp is obviously at http://localhost:8080/samplejsp/sample.jsp. Thus the <form action> should be http://localhost:8080/samplejsp/sample.jsp or better just sample.jsp. In your case, this should do: <form action="sample.jsp">.Pah
V
1

It's mostly related to your directory structure or packaging.
Can you please add your directory structure?

Similar to below -

src 
|-html\
|-jsp\

Perhaps this should do it

<form action="sample.jsp" method=get>
      <input type =submit value="submit">
</form>

Edit - WEB-INF does not allow direct access to JSP.

Vyner answered 5/3, 2010 at 11:17 Comment(2)
Quick fix - Move the HTML and JSP file from WEB-INF folder and run.Vyner
I mean move both the files from WEB-INF to some other folder.Vyner
C
0

In my spring boot web application with JSP it didn't worked until I have added this dependency

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

even after configuring view resolver

spring.mvc.view.prefix: /WEB-INF/views/ 
spring.mvc.view.suffix: .jsp

If you find why this worked please comment.

Coracle answered 21/8, 2019 at 17:50 Comment(1)
tomcat-embed-jasper: provides support for .jsp file rendering.Deen
B
0

I had got this error- JSP file [/WEB-INF/viewshello.jsp] not found.

I have created the Jsp file hello in the view folder inside WEB-INF folder insted it can't able to find the resource.

Then I have deleted the previous "hello.jsp" file and created the new one at the same location.

And it works finally!! May be it will work in your case also..so try it.

Bertrando answered 4/6, 2023 at 9:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.