7

我创建了一个 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

我在以下 URL 上打开它。

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

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

404 错误

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

4

3 回答 3

8

404 仅表示“未找到”

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

只需验证 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。

也可以看看:

于 2010-03-05T11:16:17.757 回答
1

它主要与您的目录结构或包装有关。
你能添加你的目录结构吗?

类似于下面 -

src 
|-html\
|-jsp\

也许这应该这样做

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

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

于 2010-03-05T11:17:08.563 回答
1

在我的带有 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

如果您发现为什么这有效,请发表评论。

于 2019-08-21T17:50:11.093 回答