Post on 06-Apr-2015
transcript
XML-ServerpagesXML-Serverpages
Vortrag im Rahmen des Seminars
XML-Technologien
Tobias Faessler
XML ServerPages 2
AusgangslageAusgangslage
XML ServerPages 3
XSP – Was ist das?XSP – Was ist das?
• eXtensible Server Pages• XSP ist eine Komponente von Cocoon, mit
der man dynamische Webapplikationen bauen kann.
XML ServerPages 4
Was war die Absicht dahinterWas war die Absicht dahinter
• Man wollte es den Webdesigner ermöglichen, dass sie auch mit dynamischen Webinhalten zurecht kommen, ohne sie zu zwingen eine Programmiersprache zu lernen.
• Dieser Ansatz ist auf klare Arbeitsteilung ausgerichtet:– Applikationsentwickler– Inhalt Autor– Präsentationsdesigner
XML ServerPages 5
Beispiel 1: AufbauBeispiel 1: Aufbau
XSP
XSLTXML
HTML
XML ServerPages 6
Beispiel 1: CodeBeispiel 1: Code
• Beispiel 1• XSP• XSLT
XML ServerPages 7
Was ist zu beachtenWas ist zu beachten• XSP-File:
– Page-Tag <xsp:page> als Root-Element jedes XSP-Dokuments.
– Expression-Tag <xsp:expr>– benutzerdefinierte Elemente
• Cocoon: <map:match pattern="beispiel1"> <map:generate type="serverpages"
src="bspVortrag/beispiel1.xsp"/> <map:transform src="bspVortrag/beispiel1.xsl"> <map:parameter name="view-source"
value="bspVortrag/beispiel1.xsp"/> </map:transform> <map:serialize/> </map:match>
XML ServerPages 8
Wie unterscheidet sich XSP zu Wie unterscheidet sich XSP zu JSPJSP• XSP kann mit regulären XML-Parsern
überprüft werden.• XSP kann mittels XSLT transformiert werden.• XSP ist keine Programmiersprache.
XML ServerPages 9
Beispiel 1 mit ASPBeispiel 1 mit ASP<%seitenTeil = "Dieser Abschnitt wird am Anfang im XSP-File
generiet aber erst am Schluss aufgerufen "seitenTeil = seitenTeil & "Datum:" & Date()%><html> <head> <title>Beispiel1</title> </head>
<body bgcolor="#FFFFFF"> <h1>Beispiel1</h1> <%response.write seitenTeil%> </body></html>
XML ServerPages 10
Beispiel 2: XSP mit Logic internBeispiel 2: XSP mit Logic intern
XSLTXML
HTML
XSP & Logic
XML ServerPages 11
Beispiel 2: CodeBeispiel 2: Code
• Beispiel 2• XSP• XSLT
XML ServerPages 12
Was ist zu beachtenWas ist zu beachten• XSP-File
– <xsp:structure> und <xsp:include> ElementDie dienen dazu zusätzliche Java Klassen in das XSP-File einzubetten.
– Logic-Tag <xsp:logic>Ermöglicht es Java-Code direkt im XSP-File zu integrieren.
– <xsp:expr> Dient dazu den Wert einer Java-Variablen im XSP-File auszugeben.
– <![CDATA[…….]]> Sagt dem XML Parser, dass es sich nicht Um XML handelt.Problem: if (a < b && c > d {…})Lösung2: if (a < b && c > d {…})
XML ServerPages 13
Beispiel 3: DatenbankBeispiel 3: Datenbank
XSP
XSLTXML
HTML
XSP & Logic
Output
Datenbank
XML ServerPages 14
Beispiel 3: CodeBeispiel 3: Code
• Beispiel 3• xml_Adressen.mdb (MS Access Datenbank)• XSP• XSLT• CSS
XML ServerPages 15
Was ist zu beachtenWas ist zu beachten• XSP-File
– Elemente-Tag <xsp:element> dient zur dynamischen Generierung von Elementen.
– Attribut-Tag <xsp:attribute> dient zur dynamischen Generierung von Attributen.
• Cocoon:– Sitemap Eintrag für das Style-Sheet:
<map:match pattern="css/style.css"> <map:read src="bspVortrag/css/style.css" mime-type="text/css"/> </map:match>
XML ServerPages 16
Beispiel 4: externes Logic-sheetBeispiel 4: externes Logic-sheet
XSP
XSLTXML
HTML
LogicSheet
XML ServerPages 17
Externes LogicsheetExternes Logicsheet• Externe Logicsheets dienen dazu Programmiercode und XML-
Markup zu trennen.
• Gründe sind: Übersichtlichkeit, Risiko eines Sprachenmix, Wiederverwendbarweit des Sourcecodes
• Ähnlich wie bei der JAVA-API die Klassen, kommen auch hier immer wieder neue Logicsheets hinzu. (request, response, session, cookie, sendmail, …)
http://localhost:8080/cocoon/documents/userdocs/xsp/index.html
XML ServerPages 18
Beispiel 4: CodeBeispiel 4: Code
• Beispiel 4• XSP• XSLT
XML ServerPages 19
Was ist zu beachtenWas ist zu beachten
• XSP-File– xmlns:util="http://apache.org/xsp/util/2.0„
• Bem: Wir können auch eigene Logicsheets schreiben.
XML ServerPages 20
Was läuft im HintergrundWas läuft im Hintergrund• Cocoon generiert aus dem XSP-und dem XSLT-File ein
Java-File.• Die generierten Java-Files sind eine gute Hilfe bei der
Fehlersuche, da Cocoon oft nur die Kompilierfehler, mit Zeilennummer angibt.
• Die Java-Files findet man unter:[Tomcat-HOME]\work\localhost\cocoon\cocoon-files\org\apache\cocoon\www\bspVortrag\beispiel1.java
XML ServerPages 21
Beobachtung in der PraxisBeobachtung in der Praxis
• Entwicklung eines Content-Management-Systems.
Verkauf
Art-Team (Photoshop)
Build-Team (XSLT)
Datenbankentwickler: Java-Team oder VB-Team
Projektleiter
XML ServerPages 22
VersionenkriegVersionenkrieg• Ich habe gearbeitet mit:• NT 4• Service Pack 6a• Apache Tomcat 4.0.1• Cocoon 2.0.1 (mit Version 2.0.2 gab es
Probleme)• Text-Editor• Tipp: Gelegentlich, das Work-Directory in
Cocoon löschen wirkt wunder.
XML ServerPages 23
LinksLinks
• http://xml.apache.org• http://xml.apache.org/cocoon/index.htm• http://www.w3.org/
• http://ibm.com/developerworks/http://ibm.com/developerworks/• http://localhost:8080/cocoon/documents/
userdocs/xsp/index.html