Portlet

Java portlet je webový komponent, umožňujúci integráciu webových aplikácií a portálov.
Portlety sú používané ako vymeniteľné komponenty používateľského rozhrania poskytujúce prezentačnú vrstvu pre informačný systém.
Jeden webový portál pozostáva vo všeobecnosti z niekoľkých portletov, napr. jeden pre e-maily, ďalší obsahuje nové správy, tretí prezentuje počasie a pod. V minulosti
webové portály (ešte bez portletov) obsluhovali všetky používateľské funkcie. Použitie portletov v r. 2003 zaviedlo štruktúru do webových portálov, ktorá prináša rad výhod, najmä vývoj jednotlivých portletov rôznymi tímami, s tým súvisiacu časovú nezávislosť vývoja jednotlivých portletov a opakované použitie portletov v rôznych portáloch.
Súčinnosť portálov a portletov je zabezpečená pomocou rozhrania pre programovanie aplikácií (API), ktoré je definované v celom rade noriem .
Špeciálne pre portlety sú relevantné 2 normy, už spomenuté Webové služby pre vzdialené portlety (WSRP), pozri aj . Táto norma všeobecne (t. j. nezávisle od platformy) popisuje rozhrania a narábanie s portletmi. 
Verzia 2.0 tejto normy platí od 1. apríla 2008.
Nakoľko najrozšírenejšou platformou pre tvorbu webových portálov je Java, aktuálny vývoj sa koncentruje na Java Portlet Specification, pozri Verzie Java Portlet Specification nižšie.
Použitím tohto rozhrania za dodržania spomenutých noriem sa môžu portlety spúšťať na hocijakom portále založenom na Java EE bez ohľadu na jeho implementáciu.
Technológia.
Portlet je komponent používateľského rozhrania, ktorý beží v kontajneri portálu a možno ho použiť ako stavebný kameň portálu.
Technicky sú portlety prevažne založené na technológii Java a sú podobné servletom. Podobne ako servlety i portlety sú riadené kontajnerom (portletový kontajner je „obal“ ktorý portlety štartuje, riadi ich životný cyklus, zabezpečuje prostriedky potrebné pre ich beh a poskytuje perzistentný úložný priestor pre ich nastavenia). Portlety sú implementované na strane webového servera na rozdiel od widgetov – komponentov pouźívateľského rozhrania implementovaných v prehliadači koncového používateľa.
Portlet prijíma a spracúva požiadavky podľa ktorých neskoršie mení svoj obsah. Obsah generovaný portletom, nazývaný aj „fragment“, je úsek kódu v markup-jazyku (HTML, XHTML, WML). Jednotlivé fragmenty sa potom môžu spájať a spolu dohromady vytvoriť portálovú stránku.
Portlety sa odlišujú od servletov v týchto vlastnostiach:
Používateľský web-klient komunikuje s portletom pomocou štandardnej paradigmy požiadavka/odpoveď implementovaného portálom a používatelia môžu teda väčšinou narábať s portletom rovnako ako sa pohybujú po bežných webových stránkach.
Životný cyklus portletu.
Portlet riadi portletový kontajner a to po celú dobu životného cyklu portletu. Podľa špecifikácie JSR-168 má každý portlet implementované nasledovné štyri metódy riadiace jeho životný cyklus:
Inicializačná metóda init (PortletConfig config) sa volá okamžite po vytvorení inštancie celého portálu. PortletConfig reprezentuje konfiguračné dáta (read only), ktoré sú špecifikované v xml-súbore portletu, napr. inicializačné parametre.
Metóda processAction (ActionRequest request, ActionResponse response) je volaná pri odpovedi na podnet používateľa (napríklad kliknutie myšou na odkaz alebo odoslanie formulára). V tejto metóde sa môžu volať i ďalšie metódy businessových komponent ako napr. JavaBeans. ActionRequest a ActionResponse sú podrozhraniami PortletRequest a PortletResponse. Pomocou tejto metódy sa môžu zmeniť nastavenia portletu i jeho perzistentné informácie.
Metoda render (RenderRequest request, RenderResponse response) v životnom cykle portletu nasleduje po volaní metódy processAction. Táto metóda generuje vlastne obsah založený na aktuálnom stave portletu.
Poslednou povinnou metódou je metóda destroy (). Táto metóda sa volá predtým než je inštancia portletu podsunutá pre garbage collector. V tejto metóde sa teda ako i názov hovorí, majú o. i. aj uvoľniť zdroje.