我创建了一个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)不可用。
答案 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
如果您知道这样做的原因,请发表评论。