Portlets are similar to servlets, in that:
1. Portlets are managed by a specialized container.
2. Portlets generate dynamic content.
3. A portlet’s life cycle is managed by the container.
4. Portlets interact with web client via a request/response paradigm.
Portlets are different from servlets, in that:
Portlets only generate markup fragments, not complete documents.
Portlets are not directly URL addressable. You cant send somebody URL of a portlet. You can send him the URL of the page containing a portlet.
Portlets cannot generate arbitrary content, since the content generated by a portlet is going to be part of portal page. If a portal server is asking for html/text, then all portlets should generate text/html content. On the other hand, if the portal server is asking for WML, then each portlet should generate WML content.