You mismatched the name and property attributes. name
is the id (yes) of the bean, and property
is the property of the bean you want to get:
<jsp:getProperty property="firstName" name="user" />
But, more importantly, you're coding your JSPs as if we were still in 1999. Since then, the JSP EL and the JSTL have been introduced, and scriptlets and jsp:xxx tags shouldn't be used anymore in JSPs. Your JSP should simply be:
<%@ page
language="java"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
%>
<!DOCTYPE html>
<html>
<head>
<title>Result</title>
</head>
<body>
${user.firstName}
</body>
</html>
Or, even better, you should be using the JSTL and make sure special characters in the firstName are properly escaped:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
...
<c:out value="${user.firstName}"/>