It provides an abstract class to be subclassed to create portlets. A
subclass of GenericPortlet should override at least
one method, usually one of the following:
Normally there is no need to override the render or the doDispatch
methods. Render handles render requests setting the title of the
portlet in the response and invoking doDispatch. doDispatch dispatches
the request to one of the doView, doEdit or doHelp method depending on
the portlet mode indicated in the request.
Portlets typically run on multithreaded servers, so please note that a
portlet must handle concurrent requests and be careful to synchronize
access to shared resources. Shared resources include in-memory data
such as instance or class variables and external objects such as
files, database connections, and network connections.