Accessing Application Data
The different parts of a Java web application need to be able access the same data objects. For instance, a product catalog object a listener creates at application start must be accessible by a servlet that processes a user query against the catalog, and the result of the query must be available to the JSP page that renders the response showing the result.
The Servlet API includes methods for managing this type of data as
attributes of the objects representing the application, the user
session, and the request, defined by these classes, respectively:
javax.servlet.ServletContext,
javax.servlet.http.HttpSession, and
javax.servlet.ServletRequest.
All three classes contain these methods for managing the attributes:
public void setAttribute(String name, Object value);
|
public Object getAttribute(String name);
|
public void removeAttribute(String name);
|
In the product catalog example, the listener uses the
setAttribute() method on the
ServletContext to make the catalog available to
the servlet, and the servlet uses the getAttribute(
) method to obtain it. To make the query result available
to the JSP page, the servlet calls the setAttribute(
) method of either the HttpSession or
the ServletRequest object (depending on how long
the result must be available).
The JSP specification refers to these three attribute collections as different scopes: the application, session, and request scope. It also adds a collection of attributes available only to objects within ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access