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

use*_*160 7 jsp web-inf http-status-code-404

我创建了一个JSP文件.

sample.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
  <head>
    <title>Insert title here</title>
  </head>
  <body>
    This is jsp program
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我把它放在samplejsp项目中.

samplejsp
 `-- WebContent
      `-- WEB-INF
           `-- sample.jsp
Run Code Online (Sandbox Code Playgroud)

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

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

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

404错误

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

Bal*_*usC 8

404仅表示"未找到".

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

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

把它放在外面/WEB-INF.

samplejsp
 `-- WebContent
      |-- WEB-INF
      `-- sample.jsp
Run Code Online (Sandbox Code Playgroud)

如果你想保留它/WEB-INF,那么你需要创建一个前端控制器servlet,它doGet()可以通过以下方法转发给它.

request.getRequestDispatcher("/WEB-INF/sample.jsp").forward(request, response);
Run Code Online (Sandbox Code Playgroud)

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

也可以看看: