Getting data from the Java bean to be displayed on a JSP page
jsp, servlets, usebean
Solution
First of all, your class `RegisterDetails` is not a bean because it does not implement the `java.io.Serializable` interface.
Secondly, you really need to implement some kind of input sanitization for the data coming from the request (to prevent SQL/HTML/Cross-site scripting injections), and if you are going to use beans I guess you should put that inside the bean class.
Third, you could also dispense with the bean concept (meaning you won't need jsp:useBean) and just save the instance of the class RegisterDetails as a regular class object into the session, and then you can pull it from the session on any page as follows:
In the servlet:
session.setAttribute("details", details); //saving your object to the session
In any other page:
RegisterDetails details = (RegisterDetails)session.getAttribute("details");
Problem
I've got a forum where a user can register there details and this gets sent to a Servlet and then a Java bean. What I'm having trouble with is that I can't get the data to be displayed on another JSP page when the Java bean is requested. So `CreateAccount.jsp` allows the user to input into the forum. The forum is posted to a Servlet(`RegisterDetails.java`) and sends it to a Java bean (`Register.java`). Then `error.jsp` shows this data from the bean. Below is my code. The current code shows each value as `null`. `Register.java`: ``` package com.cassandra.MrBlabber.servlets; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/Register") public class Register extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Register() { super(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RegisterDetails details = new RegisterDetails(); details.setName(request.getParameter("FullName")); details.setEmail(request.getParameter("EmailAddress")); details.setPassword(request.getParameter("Password")); details.setUsername(request.getParameter("Username")); request.setAttribute("details", details); getServletContext().getRequestDispatcher("/WEB-INF/Error.jsp").forward(request, response); } } ``` `RegisterDetails.java`: ``` package com.cassandra.MrBlabber.servlets; public class RegisterDetails { private String fullName; private String emailAddress; private String password; private String username; public RegisterDetails() {} public String getName() { return fullName; } public String getEmailAddress() { return emailAddress; } public String getPassword() { return password; } public String getUsername() { return username; } public void setName(String value) { this.fullName = value; } public void setEmail(String value) { this.emailAddress = value; } public void setPassword(String value) { this.password = value; } public void setUsername(String value) { this.username = value; } } ``` `CreateAccount.jsp`: ``` <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link rel="stylesheet" type="text/css" href="/MrBlabber/css/stylesheet.css"/> <title>MrBlabber/Create an Account</title> </head> <body> <!-- Section --> <section> <!-- Sign Up --> <article> <div id="articleWrapper"> <h3>No Account? Sign Up</h3> <form id="createAccount" onsubmit="return validateForm();" action="Register" name="createAccount" method="POST"> <input type="text" id="name" name="FullName" placeholder="Full Name"/> <input type="text" id="email" name="EmailAddress" placeholder="Email Address"/> <input type="password" id="password" name="Password" placeholder="Create a password"/> <input type="text" id="username" name="Username" placeholder="Choose your username"/> <input type="submit" value="Sign up for MrBlabber"/> </form> </div> </article> <article> <div id="errorMessage" class="errorMessage"> <script src="/MrBlabber/javascript/CreateAccountValidation.js" type="text/javascript"></script> </div> </article> </section> </body> </html> ``` `Error.jsp` ``` <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="com.cassandra.MrBlabber.servlets.RegisterDetails" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <h1>shit</h1> <jsp:useBean id="RegisterDetails" class="com.cassandra.MrBlabber.servlets.RegisterDetails" scope="session"/> <jsp:setProperty name="RegisterDetails" property="*"/> <h1> Name: <%=RegisterDetails.getName()%><br> Email: <%=RegisterDetails.getEmailAddress()%><br> Password: <%=RegisterDetails.getPassword()%><br> Username: <%=RegisterDetails.getUsername()%><br> </h1> </body> </html> ```