Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertDaniel Hansen Endret for 9 år siden
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!
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.