Send Data from servlet to jsp using request dispatcher. Passing values from servlet to jsp with forward
The request object in the servlet must be used to set the object as attribute. The attribute name is used to in JSP to access the object.
request.setAttribute("foo", bar);
In the above example, foo
is the attribute name and bar
is the object being sent to JSP.
Now, we need to forward the request from servlet to JSP.
request.getRequestDispatcher("display.jsp").forward(request, response);
Forward does not change the url in the browser. It is a server side operation where the servlet is transferring the control to JSP. The user sees the same url as servlet in the browser. If the servlet was hosted at /webapp/customerInformation
, it will NOT change to /webapp/display.jsp
.
The complete request will be served by single url.
Below code helps us transfer bar
object to display.jsp
request.setAttribute("foo", bar);
request.getRequestDispatcher("display.jsp").forward(request, response);
We can access all the properties of the object using expression language.
<ul>
<li>${foo.name}</li>
<li>${foo.title}</li>
<li>${foo.desc}</li>
</ul>
Notice that we are not using bar.name
, but foo.name
as the attribute name is foo
. We can transfer complex objects using this mechanism.