/ WEB-INF中的JSP返回“HTTP状态404请求的资源不可用”

时间:2010-03-05 10:35:22

标签: jsp http-status-code-404 web-inf

我创建了一个JSP文件。

sample.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
  <head>
    <title>Insert title here</title>
  </head>
  <body>
    This is jsp program
  </body>
</html>

我把它放在samplejsp项目中。

samplejsp
 `-- WebContent
      `-- WEB-INF
           `-- sample.jsp

我在以下网址上打开了它。

http://localhost:8080/samplejsp/sample.jsp

但它在浏览器中显示以下错误。

  

404 ERROR

     

请求的资源(/sample.jsp)不可用。

3 个答案:

答案 0 :(得分:8)

404只是意味着"Not Found"

URL是错误的(注意:区分大小写!),或者资源不在您认为的位置。

只需验证网址和/或验证资源是否在您预期的位置。您将sample.jsp放在/WEB-INF文件夹中。这样,如果不通过前端控制器servlet调用它就不能公开访问。

将其放在/WEB-INF之外。

samplejsp
 `-- WebContent
      |-- WEB-INF
      `-- sample.jsp

如果你想把它保存在/WEB-INF中,那么你需要创建一个前控制器servlet,用doGet()方法转发它,如下所示。

request.getRequestDispatcher("/WEB-INF/sample.jsp").forward(request, response);

最后通过调用servlet的实际URL而不是JSP的虚构URL来“打开”JSP。

另见:

答案 1 :(得分:1)

这主要与您的目录结构或包装有关 您能否添加目录结构?

类似于下面 -

src 
|-html\
|-jsp\

也许这应该这样做

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

编辑 - WEB-INF不允许直接访问JSP。

答案 2 :(得分:0)

在我的带有JSP的Spring Boot Web应用程序中,直到我添加了此依赖项,它才起作用

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

即使在配置了视图解析器之后

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

如果您知道这样做的原因,请发表评论。