在youtube上演示之后,我正在练习Servlet / JSP。我已经使用webapp原型使用maven创建了项目。
我在pom.xml文件中的servlet依赖项:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
我的JSP文件:
<%@ page import="model.Alien" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
Alien a1 = (Alien) request.getAttribute("alien");
out.println(a1);
%>
</body>
</html>
我的项目结构:
Alien是一个简单的POJO,GetAlienController拥有我的Servlet,该Servlet调度到showAlien.jsp。我没有使用web.xml,而是使用了注释。
问题是,请求的getAttribute()方法得到了完美解决,而out的println()方法没有得到解决。实际上,没有out方法可以解决。我尝试将servlet jar复制到webapp / lib和web-inf / lib目录。但是这些并不能解决问题。
在另一个项目中,我没有使用任何Maven,而是使用Intellij的Web应用程序原型来创建项目。在这一本书中,我没有遇到这样的问题。
如何解决此问题?我确定我将servlet依赖关系放在错误的文件夹中,但仍然无法解决。
请不要建议我“不要将Java代码写入JSP”。这只是一个演示。我正在尝试学习基础知识。
答案 0 :(得分:1)
我通过在pom.xml中添加另一个依赖项来解决了这个问题:
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>