Pluto is the Reference Implementation of the Java Portlet Specfication. The current version of this specification is JSR 168.
Portlets are designed to run in the context of a portal. They are written to the Portlet API which are similar to the Servlet API.
In contrast to servlets, portlets may not do things like sending redirects or errors to browsers directly, forwarding requests or writing arbitrary markup to the output stream to assure that they don?t distract the portal web application which uses them. Another difference compared to servlets is that portlets rely on portal specific infrastructure functions such as access to user profile information, standard interface for storing/retrieving persistent settings, getting client information, etc. Generally, portlets are administrated more dynamically than servlets typically are.