150 likes | 240 Views
Portlety. Jan Krňoul , carney@civ.zcu.cz Jaroslav Vávře , jvavre@civ.zcu.cz. 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
E N D
Portlety Jan Krňoul, carney@civ.zcu.cz JaroslavVávře, jvavre@civ.zcu.cz
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!
Teoretický úvod – co už dávno víte • Webové aplikace • Webovéaplikace v Javě • ServletAPI, servletkontejnery • JSP, JSTL • Spring • DI, SpringDAO Sun Java EE 5 Tutorial: http://java.sun.com/javaee/5/docs/tutorial/doc/
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 • http://jcp.org/en/jsr/detail?id=168 • http://developers.sun.com/portalserver/reference/techart/jsr168/
Portál a portlet kontejner • Běhovéprostředí • Portál • správaprostř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
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ýchnastavení • (jiná pro edit / config) • Klíč-hodnota (hodnota[]), možno ukládat Stringy, typicky klíče do DB, cesty…
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
Portlety 3 • Portlety v jednéaplikacispolumohoukomunikovat(meziportletová komunikace) • Norma JSR-168 nijakneřeší, obvykle se využijeaplikační (sdílená) session • Proprietární IBM normazavedlamechanismuszasílánízpráv • Z toho vychází řešení v JSR-286 • Portlet TagLibrary • <portlet:defineObjects/> RenderRequest, RenderResponse a PortletConfig objekty • <portlet:actionURL /> • <portlet:renderURL/> • <portlet:namespace/> • <portlet:param />
Portletová aplikace a nasazení • Servletová aplikace • Soubor portletů, typicky k jednomu„tématu“ • Obsahujevše – třídy portletů, JSP, deskriptory, knihovny • web.xml (je to pořád webová aplikace), portlet.xml • Deskriptor, definujetřídu portletu, podporovanémódy, markup • Podobnějakoservlet, tzv. WAR (WebARchive) • Zip archiv se speciálnístrukturou • Nasazenídlepoužitéhoserveru (WPS, JetSpeed, JBoss)
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-8859-1 (čeština přes unicode escape sekvence \uXXXX, hloupější IDE mají problém)
Drobnosti: logování (Log4J) • Vývoj a ladění • Produkčníprostředí • Co a kdy se dělo (prováděnéakce) • Parametrypožadavků • Důležitýikontext – login uživatele, osobníčíslo, předchozíprovedenáakce... • Vhodnélogování v produkci je k nezaplacení! • Konfiguračnísouborumístěnýnaclasspath • http://logging.apache.org/log4j/1.2/index.html
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) • http://www.springsource.org/
Konec • Dotazy? • Následují živé ukázky • TutorialPortlet • Konfigurace, portlet, jsp, resourceBundle
Lab • 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…