Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

SiteMeshjavaBin 12.05.2005 Side 1 SiteMesh javaBin – 12.05.2005 Eivind Waaler, BEKK Versjon 1.0.

Liknende presentasjoner


Presentasjon om: "SiteMeshjavaBin 12.05.2005 Side 1 SiteMesh javaBin – 12.05.2005 Eivind Waaler, BEKK Versjon 1.0."— Utskrift av presentasjonen:

1 SiteMeshjavaBin 12.05.2005 Side 1 SiteMesh javaBin – 12.05.2005 Eivind Waaler, BEKK Versjon 1.0

2 SiteMeshjavaBin 12.05.2005 Side 2 Min bakgrunn Utdanning fra HiST + UiO – 4 år Utvikler/arkitekt hos BEKK – 5 år Java/J2EE bakgrunn – 6 år Mye J2EE webapplikasjoner Hvordan blande Java/HTML?? Fokus på gode rammeverk og best-practice! 1 års erfaring med SiteMesh  Mike Cannon-Brookes – SiteMesh, TSS 2004 (6.-8. mai)

3 SiteMeshjavaBin 12.05.2005 Side 3 Agenda Problemet Hva er SiteMesh? Et eksempel Hvordan funker det? Sammenligning med Struts Tiles Avansert bruk

4 SiteMeshjavaBin 12.05.2005 Side 4 Problemet Typisk formside: 20 linjer enkel og fokusert HTML Enkelt å vedlikehold Ser alle elementer og bruk Kilde: Mike Cannon-Brookes - Atlassian

5 SiteMeshjavaBin 12.05.2005 Side 5 Problemet Med design skal siden se slik ut: 300 linjer kompleks HTML Vanskelig å finne igjen de 20 linjene Vanskeligere å forstå bruken! Kilde: Mike Cannon-Brookes - Atlassian

6 SiteMeshjavaBin 12.05.2005 Side 6 Problemet Vanskelig å separere innhold og presentasjon! Alle webapplikasjoner trenger det Trenger dekorering av websider: Header – tittel, logo etc. Footer – copyright o.l. Navigasjonselementer – toppmeny, venstremeny etc. Andre viktige aspekter: “Portlets” – små paneler på websiden Browserspesifikke versjoner  IE, Firefox, Opera etc.  PC, Mobil, PDA, Set-top box etc.  Søkeroboter Printbare utgaver Et lite eksempel… Kilde: Mike Cannon-Brookes - Atlassian

7 SiteMeshjavaBin 12.05.2005 Side 7 Eksempel på dekorering Kilde: Mike Cannon-Brookes - Atlassian

8 SiteMeshjavaBin 12.05.2005 Side 8 Eksempel på dekorering Header Navigation Information Downloads Login News Search Kilde: Mike Cannon-Brookes - Atlassian

9 SiteMeshjavaBin 12.05.2005 Side 9 Typiske løsninger Copy & paste SKIKKELIG DÅRLIG: Si opp noen utviklere JSP includes DÅRLIG: Mye vedlikehold, tette koblinger og økende kompleksitet XSLT OK: Fleksibelt, men vanskelig å debuge og lang læringskurve SiteMesh BRA: Enkelt, løst koblet, skalerbart og fleksibelt Kilde: Mike Cannon-Brookes - Atlassian

10 SiteMeshjavaBin 12.05.2005 Side 10 Hva er SiteMesh? Open Source J2EE layout og dekoreringsmotor www.opensymphony.com/sitemesh Decorator pattern for webapplikasjoner Analogi: Swing look & feel endring Kjerneverdier: Enkelhet, Fart og Fleksibilitet! Kilde: Mike Cannon-Brookes - Atlassian

11 SiteMeshjavaBin 12.05.2005 Side 11 Hva er SiteMesh? Implementert som et Servlet 2.3 request filter Trenger Servlet 2.3 kompatibel server Kjører på alle J2EE servere Typisk request (uten SiteMesh): Web Container 1. Incoming request Web App 2. Generate decorated page (Servlet, JSP, Perl, PHP, HTML etc) 3. Return result Browser Kilde: Mike Cannon-Brookes - Atlassian

12 SiteMeshjavaBin 12.05.2005 Side 12 Hva er SiteMesh? Request med SiteMesh filter aktivert: Web Container Web App 2. Generate page (Servlet, JSP, Perl, PHP, HTML etc) Browser 1. Incoming request 5. Return result SiteMesh Filter 3. Get Decorator 4. Decorate page Kilde: Mike Cannon-Brookes - Atlassian

13 SiteMeshjavaBin 12.05.2005 Side 13 Enkelt eksempel Installere SiteMesh Skrive enkel JSP side Skrive enkel JSP dekorator Legge på heading Legge innholdet i en boks Koble side og dekorator sammen Vise resultatet Kilde: Mike Cannon-Brookes - Atlassian

14 SiteMeshjavaBin 12.05.2005 Side 14 Installasjon 1.Kopiere sitemesh-2.x.jar til WEB-INF/lib/ katalogen på web-app 2.Installere og sette opp servlet filter i WEB-INF/web.xml: sitemesh com...sitemesh...PageFilter sitemesh /* Kilde: Mike Cannon-Brookes - Atlassian

15 SiteMeshjavaBin 12.05.2005 Side 15 Skrive en enkel side About JavaBlogs JavaBlogs aggregates the blogs of Java bloggers. Kilde: Mike Cannon-Brookes - Atlassian

16 SiteMeshjavaBin 12.05.2005 Side 16 Skrive en enkel dekorator java.blogs - "> Section: MyDecorator.jsp Kilde: Mike Cannon-Brookes - Atlassian

17 SiteMeshjavaBin 12.05.2005 Side 17 Koble dekoratoren til sidene Mapper dekoratoren til alle URLer i applikasjonen Enkel URL-mapping gjøres i /WEB-INF/decorators.xml /* Kilde: Mike Cannon-Brookes - Atlassian

18 SiteMeshjavaBin 12.05.2005 Side 18 Resultatet! java.blogs - About JavaBlogs About JavaBlogs Section: About JavaBlogs aggregates the blogs of Java bloggers. Kilde: Mike Cannon-Brookes - Atlassian

19 SiteMeshjavaBin 12.05.2005 Side 19 Hvordan funker SiteMesh? Result (HTML) 1. 4. Content (HTML fragment) Content Source (JSP, Perl, PHP, HTML etc) Field Map 2. SiteMesh Presentation (Decorator - JSP) Decorator Mappers 3. 1.Server lager HTML 2.SiteMesh leser inn HTML 3.SiteMesh velger dekorator 4.SiteMesh dekorerer HTML Kilde: Mike Cannon-Brookes - Atlassian

20 SiteMeshjavaBin 12.05.2005 Side 20 1. Server lager HTML Hold HTML enkel, uten noe presentasjon/design Eksempel på enkel HTML: About JavaBlogs JavaBlogs aggregates the blogs of Java bloggers. Kilde: Mike Cannon-Brookes - Atlassian

21 SiteMeshjavaBin 12.05.2005 Side 21 2. SiteMesh leser inn HTML Gjør om HTML koden til en tabell (Map) av felter Title og Body hentes direkte fra HTML Egne felter for  body attributes (body.)  meta tags (meta.)  content blocks (content.) Eksempel på tabell (Map): KeyValue titleAbout JavaBlogs meta.sectionAbout bodyJavaBlogs aggregates the blogs of Java blogges body.bgcolor#ffffff Kilde: Mike Cannon-Brookes - Atlassian

22 SiteMeshjavaBin 12.05.2005 Side 22 3. SiteMesh velger dekorator Sekvenser med regler (DecoratorMapper objects) velger dekorator for hver request ~10 innebyge mappers, lett å skrive egne java.blogs - "> Section: Kilde: Mike Cannon-Brookes - Atlassian

23 SiteMeshjavaBin 12.05.2005 Side 23 4. SiteMesh dekorerer HTML Resulterende kode er ren HTML Eksempel på resultat: java.blogs - About JavaBlogs About JavaBlogs Section: About JavaBlogs aggregates the blogs of Java bloggers. Kilde: Mike Cannon-Brookes - Atlassian

24 SiteMeshjavaBin 12.05.2005 Side 24 SiteMesh vs. Struts Tiles Tiles – metode 1 (JSP): Tiles – metode 2 (XML defs):

25 SiteMeshjavaBin 12.05.2005 Side 25 SiteMesh vs. Struts Tiles SiteMesh leser og forstår HTML Tiles må definere feltene selv i tiles-def.xml? SiteMesh enklere og ryddigere? Sidene fullstendig løsrevet fra dekorator – AOP for HTML?? Tiles kan ha mange “tiles” på en side SiteMesh bruker kun en dekorator av gangen SiteMesh – veldig enkelt å bytte dekorator http://my.url.com/mypage http://my.url.com/mypage?decorator=printable http://my.url.com/mypage?decorator=none In the sitemesh vs tiles comparison... I think there can't be any comparison. Tiles is a usual piece of software with all limitations imposed by usual design and Sitemesh is a wonder of technology with all 'problems' imposed by revolutionary design :-) Kilde: Dorel Vaida – TSS

26 SiteMeshjavaBin 12.05.2005 Side 26 Avansert funksjonalitet Forskjellige dekoratorspråk JSP + taglibs Velocity Freemarker DecoratorMapper interface URL  /* Printable Browser spesifikk Roboter etc. 12 innebygde, enkelt å skrive egen PageDecoratorMapper FrameSetDecoratorMapper PrintableDecoratorMapper FileDecoratorMapper ConfigDecoratorMapper Default Chain of Responsibility

27 SiteMeshjavaBin 12.05.2005 Side 27 Eksempel – PageDecoratorMapping Sider kan selv velge dekorator Fint for småting, “portlet”/paneler/forms etc. Skummelt å bruke for mye? Knytter sider opp mot SiteMesh Bra i dekoratorer! Eksempel:.........

28 SiteMeshjavaBin 12.05.2005 Side 28 Eksempel – PageDecoratorMapping Enkel portlet funksjonalitet? Ligner på Tiles?

29 SiteMeshjavaBin 12.05.2005 Side 29 Diverse StaticMesh – http://www.pols.co.uk/downloads/static-mesh/http://www.pols.co.uk/downloads/static-mesh/.NET port (stable) ISAPI C++ port (unstable) PHP-Mesh Website: http://www.opensymphony.com/sitemesh/http://www.opensymphony.com/sitemesh/ sitemesh-blank.war – fin å starte prosjekt med sitemesh-example.war – enkle og oversiktlige eksempel sitemesh-2.2.1.jar – kun SiteMesh OpenSymphony – http://www.opensymphony.com/http://www.opensymphony.com/ Mange bra OS produkter (WebWork, XWork, OSWorkflow, OSCache ++) Samarbeid med Atlassian (JIRA & Confluence)

30 SiteMeshjavaBin 12.05.2005 Side 30 Q & A Spørsmål? Ta gjerne kontakt: eivind.waaler@bekk.noeivind.waaler@bekk.no Takk for meg!


Laste ned ppt "SiteMeshjavaBin 12.05.2005 Side 1 SiteMesh javaBin – 12.05.2005 Eivind Waaler, BEKK Versjon 1.0."

Liknende presentasjoner


Annonser fra Google