Portlet is actually an xml file which refer to some content.
You can create just html portlet. This will be a static portlet. Or you can create portlets from jsp called jsp portlet or jpf portlet called java page flows portlet.
Portlets are container just like Desktop, book, pages etc.
In your portal application, desktop is top level container. It contain books which can contain pages. Further a page can contain booklet or a portlet. Its the portlet which actually surfaces your web component (html, jsp or jpf).