/ WEB-INF中的JSP返回“HTTP状态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> 

我把它放在samplejsp项目中。

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

我打开它在下面的URL。

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

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

404错误

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

404只是表示“未找到” 。

这个URL是错误的(注意:区分大小写!),或者资源不在你认为的地方。

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

把它放在/WEB-INF

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

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

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

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

也可以看看:

  • 什么是在Java EE Web应用程序中使用的WEB-INF?
  • 从JSP调用servlet
  • doGet和doPost在Servlets中

这主要与您的目录结构或打包有关。
你可以请添加你的目录结构?

类似于下面 –

 src |-html\ |-jsp\ 

也许这应该做到这一点

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

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