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 Side 1 SiteMesh javaBin – Eivind Waaler, BEKK Versjon 1.0

2 SiteMeshjavaBin 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 Side 3 Agenda Problemet Hva er SiteMesh? Et eksempel Hvordan funker det? Sammenligning med Struts Tiles Avansert bruk

4 SiteMeshjavaBin 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 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 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 Side 7 Eksempel på dekorering Kilde: Mike Cannon-Brookes - Atlassian

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

9 SiteMeshjavaBin 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 Side 10 Hva er SiteMesh? Open Source J2EE layout og dekoreringsmotor Decorator pattern for webapplikasjoner Analogi: Swing look & feel endring Kjerneverdier: Enkelhet, Fart og Fleksibilitet! Kilde: Mike Cannon-Brookes - Atlassian

11 SiteMeshjavaBin 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 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 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 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 Side 15 Skrive en enkel side About JavaBlogs JavaBlogs aggregates the blogs of Java bloggers. Kilde: Mike Cannon-Brookes - Atlassian

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

17 SiteMeshjavaBin 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 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 Side 19 Hvordan funker SiteMesh? Result (HTML) 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 Side 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 Side 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 Side 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 Side 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 Side 24 SiteMesh vs. Struts Tiles Tiles – metode 1 (JSP): Tiles – metode 2 (XML defs):

25 SiteMeshjavaBin 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 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 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 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 Side 28 Eksempel – PageDecoratorMapping Enkel portlet funksjonalitet? Ligner på Tiles?

29 SiteMeshjavaBin Side 29 Diverse StaticMesh – port (stable) ISAPI C++ port (unstable) PHP-Mesh Website: sitemesh-blank.war – fin å starte prosjekt med sitemesh-example.war – enkle og oversiktlige eksempel sitemesh jar – kun SiteMesh OpenSymphony – Mange bra OS produkter (WebWork, XWork, OSWorkflow, OSCache ++) Samarbeid med Atlassian (JIRA & Confluence)

30 SiteMeshjavaBin Side 30 Q & A Spørsmål? Ta gjerne kontakt: 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