portlety

15
Portlety Portlety Jan Krňoul, [email protected] Jaroslav Vávře, [email protected] 1

Upload: leah-mcclain

Post on 01-Jan-2016

22 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

PortletyPortletyJan Krňoul, [email protected]

Jaroslav Vávře, [email protected]

1

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 ZČUPortál ZČU

5

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