portlety
DESCRIPTION
Portlety. Jan Krňoul , [email protected] Jaroslav Vávře , [email protected]. 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 - PowerPoint PPT PresentationTRANSCRIPT
ProgramProgramDopoledne - 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 Teoretický úvod – co už dávno vítevíte• Webové aplikace• Webové aplikace v Javě• ServletAPI, servlet kontejnery• JSP, JSTL
• Spring• DI, SpringDAO
Sun Java EE 5 Tutorial: http://java.sun.com/javaee/5/docs/tutorial/doc/
3
Portlet a portálPortlet 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
http://jcp.org/en/jsr/detail?id=168 http://developers.sun.com/portalserver/reference/techart/jsr168/
4
Portál a portlet kontejnerPortá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
PortletyPortlety• 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 2Portlety 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 3Portlety 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• <portlet:defineObjects/> RenderRequest, RenderResponse a PortletConfig objekty• <portlet:actionURL />• <portlet:renderURL/>• <portlet:namespace/>• <portlet:param />
9
Portletová aplikace a Portletová aplikace a nasazení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: lokalizaceDrobnosti: 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-8859-1 (čeština přes unicode
escape sekvence \uXXXX, hloupější IDE mají problém)
11
Drobnosti: logování Drobnosti: logování (Log4J)(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
http://logging.apache.org/log4j/1.2/index.html
12
Drobnosti: SpringDrobnosti: 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)
http://www.springsource.org/
13
KonecKonec Dotazy?
Následují živé ukázky TutorialPortlet• Konfigurace, portlet, jsp, resourceBundle
14
LabLab• Instalace: http://home.zcu.cz/~carney/jet• Rozbalit .zip na c:\• Netbeans , Tomcat, připravené projekty• Úkoly• Seznamte se strukturou• Spusťte Netbeans, z NB spusťte Tomcat• http://localhost:8080/simple-portal• 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