Portlety Jan Krňoul, Jaroslav Vávře, 1
Program Dopoledne - teoretický úvod ◦ zbytečné opakování dobře známého a zmatečný výklad nového Portlety a portály, JSR-168 Drobnosti – logování, lokalizace… Živé ukázky :) Odpoledne – Lab ◦ Seznámení s prostředím ◦ Portlet „Předměty učitele“ Celý den – interaktivní, dotazy ihned! 2
Teoretický úvod – co už dávno víte Webové aplikace Webové aplikace v Javě ServletAPI, servlet kontejnery JSP, JSTL Spring DI, SpringDAO Sun Java EE 5 Tutorial: 3
Portlet a portál JSR-168, JSR-286 (PortletAPI2.0) Staví na ServletAPI, podobný koncept Vyšší míra abstrakce Servlet generuje celou stránku, portlet jen část => nevýhoda: nemůže zasahovat do hlaviček odpovědi, titulku stránky... Problém pro AJAX (řešitelné servletem, který se ale nachází mimo portál) JSR-286 4
Portál ZČU 5
Portál a portlet kontejner Běhové prostředí Portál správa prostředků (stránek), přihlašování, práva, správa uživatelských kont Komerční (WPS, BEA WebLogic), opensource (JetSpeed, Liferay, Jboss) Portlet kontejner session, vlastní „volání“ portletů Životní cyklus (init, destroy) Uvnitř každého portálu je nějaký Tomcat + portlet kontejner Integrační platforma ;) Více portletů na jedné stránce 6
Portlety Co je portlet – analogie k servletu web. komponenta, request/response, uvnitř kontejneru Ale není přímo adresovatelný, generují to co portál (nedává smysl nechat portlet generovat třeba RSS) javax.portlet.Portlet Módy portletu (vliv na generovaný obsah) View, edit, help + custom config a edit_defaults View je vyžadován Přepínání módů PortletPreferences – perzistentní úložiště uživatelských nastavení (jiná pro edit / config) Klíč-hodnota (hodnota[]), možno ukládat Stringy, typicky klíče do DB, cesty… 7
Portlety 2 Režimy – maximalizovaný/minimalizovaný (desktop GUI) Využití JSP podobně jako u servletu (i JSF…) Včetně možného generování více typů markupu (HTML, WML) Vykreslení portletu – 2 fáze – process, render Process – zpracování požadavku (např. odeslání formuláře,...) Formuláře jen POSTem Render – vykreslení portletu, může vzít v úvahu process fázi Mírně problematické předávání stavu process > render, řeší přes session 8
Portlety 3 Portlety v jedné aplikaci spolu mohou komunikovat (meziportletová komunikace) Norma JSR-168 nijak neřeší, obvykle se využije aplikační (sdílená) session Proprietární IBM norma zavedla mechanismus zasílání zpráv Z toho vychází řešení v JSR-286 Portlet Tag Library RenderRequest, RenderResponse a PortletConfig objekty 9
Portletová aplikace a nasazení Servletová aplikace Soubor portletů, typicky k jednomu „tématu“ Obsahuje vše – třídy portletů, JSP, deskriptory, knihovny web.xml (je to pořád webová aplikace), portlet.xml Deskriptor, definuje třídu portletu, podporované módy, markup Podobně jako servlet, tzv. WAR (WebARchive) Zip archiv se speciální strukturou Nasazení dle použitého serveru (WPS, JetSpeed, JBoss) 10
Drobnosti: lokalizace Požadavek na překlad textů Standardní prostředky javy - „Resource bundle“ Properties soubory – textový soubor název[_kód jazyka].properties klíč=hodnota portlet.xml definuje použitý resource bundle, ten je z portletu jednoduše dostupný Zároveň obsahuje defaultní titulek portletu a jeho popis Pozor! Kódování ISO (čeština přes unicode escape sekvence \uXXXX, hloupější IDE mají problém) 11
Drobnosti: logování (Log4J) Vývoj a ladění Produkční prostředí Co a kdy se dělo (prováděné akce) Parametry požadavků Důležitý i kontext – login uživatele, osobní číslo, předchozí provedená akce... Vhodné logování v produkci je k nezaplacení! Konfigurační soubor umístěný na classpath 12
Drobnosti: Spring Již znáte od kolegy Valenty Vhodné kombinovat XML kofiguraci s.properties soubory Viz konfigurace portálového rozhraní STAGu (applicationContext.xml upravujeme my, properties soubory správci) 13
Konec Dotazy? Následují živé ukázky TutorialPortlet Konfigurace, portlet, jsp, resourceBundle 14
Lab Instalace: Rozbalit.zip na c:\ Netbeans, Tomcat, připravené projekty Úkoly Seznamte se strukturou Spusťte Netbeans, z NB spusťte Tomcat herout/demo :) Vytvořte HelloWorld portlet Vytvořte portlet, který zobrazí předměty učitele pro roky 2010, 2011, 2012 (přepínač), užijte připravené SQL V edit modu defaultní stav přepínače… 15