I'm trying to pass the attribute from a servlet to JSP. I want to show Hello World in the JSP. It always returns null. It never gets the attribute x which says how many times hello world should be shown. I don't know what I'm doing wrong. This is my code in the servlet.
public class HelloIbaServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int x = 1;
if (req.getParameter("x") != null) {
try {
x = Integer.parseInt(req.getParameter("x"));
} catch (NumberFormatException ex) {
x = 1;
}
}
req.setAttribute("x", x);
req.getRequestDispatcher("/index.jsp").forward(req, resp);
}
}
This is my JSP.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page import="com.mycompany.servlets.HelloIbaServlet"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<c:forEach begin="1" end="${x}">
<h1>Hello world!</h1>
</c:forEach>
</body>
</html>
My dependencies are
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
My web.xml
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>HelloIbaServlet</servlet-name>
<servlet-class>com.mycompany.servlets.HelloIbaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloIbaServlet</servlet-name>
<url-pattern>/sayhello</url-pattern>
</servlet-mapping>
</web-app>