ASP und JSP im Vergleich Jürgen Knecht Fachhochschule Gießen-Friedberg Fachbereich MNI Übersicht Java Server Pages Active Server Pages Vergleich beider Techniken 28.05.2002 ASP und JSP im Vergleich 2 Java Server Pages Überblick Konzeption Direktiven Aktionselemente Skriptelemente Scriptlets Ausdrücke Deklarationen 28.05.2002 ASP und JSP im Vergleich 3 JSP - Überblick Technologie für die Programmierung von Webseiten mit dynamischen Inhalten Erweiterung der Java Servlet Technologie Entwickelt von Sun Microsystems seit Juni 99 Baut auf Java auf und nutzt dessen gesamten Funktionsumfang 28.05.2002 ASP und JSP im Vergleich 4 JSP - Vorraussetzungen package javax.servlet.* (J2EE) funktionierende Java-Umgebung JSP/Servlet-Engine z.B. Tomcat Engine als Webserver-Bestandteil oder Standalone 28.05.2002 ASP und JSP im Vergleich 5 JSP - Konzeption JSP Elemente werden in statisches HTML eingebettet Dateien haben die Endung *.jsp Servlet Container wandelt JSP-Seiten in Servlets um Durch JSP Elemente erzeugter Inhalt wird mit statischem HTML verbunden und an den Client gesendet 28.05.2002 ASP und JSP im Vergleich 6 JSP - Konzeption 28.05.2002 ASP und JSP im Vergleich 7 JSP - Direktiven Allgemeine Syntax: <%@ direktiveName attribut1=„wert1“ attribut2=„wert2“ %> Dienen zur Informationsübergabe an die JSPEngine Beispiel: <%@ page contentType=„text/html“ language=„java“ %> 28.05.2002 ASP und JSP im Vergleich 8 JSP – page Direktive page-Direktive übermittelt seitenspezifische Informationen Wichtige Attribute: language – Angabe der Skriptsprache import – Java-Import-Deklaration extends – Java-Extends Anweisung contentType – MIME-Typ der generierten Seite errorPage – wird bei Exceptions aufgerufen buffer – legt Größe des Zwischenspeichers fest session – Session-Management an/aus 28.05.2002 ASP und JSP im Vergleich 9 JSP – include Direktive Fügt eine statische Datei ein wird vor Erstellung der Implementierungsklasse der JSP Seite eingefügt Darf mehrfach in einer JSP-Seite verwendet werden Beispiel: <%@ include file=„header.html“ %> 28.05.2002 ASP und JSP im Vergleich 10 JSP – taglib Direktive Deklariert eine in der Seite verwendete TaglibBibliothek Ermöglicht den Einsatz benutzerdefinierter Tags Attribute prefix – Präfix für alle Elemente in der Bibliothek uri – Pfad zur Bibliotheksdatei Beispiel: <% taglib uri=„bsptaglib“ prefix=„bsp“ %> 28.05.2002 ASP und JSP im Vergleich 11 JSP - Aktionselemente Werden bei Anforderung der Seite ausgeführt Sind in Form von XML-Elementen in die Seite eingebettet Standardaktionselemente benutzerdefinierte Aktionselemente Besteht aus Start-Tag, Inhalt und End-Tag Beispiel: <jsp:forward page=„naechsteSeite.jsp“ %> <jsp:param name=„einParameter“ value=„einWert“ /> </jsp: forward> 28.05.2002 ASP und JSP im Vergleich 12 JSP Standard-Aktionselemente <jsp:forward> leitet auf andere Seite oder Servlet weiter Beispiel: <jsp:forward page=„list.jsp“ /> <jsp:include> fügt Antwort aus anderer JSP-Seite, Servlet oder statischen Dateien ein wird zur Anfragezeit ausgewertet <jsp:param> Verwendung innerhalb von „forward“ oder „include“ gibt zusätzliche Anfrageparameter für die Zielressource an 28.05.2002 ASP und JSP im Vergleich 13 JSP Standard-Aktionselemente <jsp:plugin> dient zum Einbinden von Java-Applets oder benannten Bean-Komponenten unterstützt zahlreiche Attribute zur AppletKonfiguration <jsp:useBean> Ermöglicht Benutzung von Java-Beans <jsp:setProperty> Legt den Wert einer oder mehrerer BeanEigenschaften fest 28.05.2002 ASP und JSP im Vergleich 14 JSP - Skriptelemente Scriptlets (Java)-Code-Block, der zwischen dem Start- <% und dem Ende-Kennzeichen %> eingeschlossen ist Beispiel: <%@ page language=„java“ contentType=„text/html“ %> <html> <body bgcolor=„white“> <jsp:useBean id=„clock“ class=„java.util.Date“ /> <% if (clock.getHours() < 12 { %> Guten Morgen! <% } else if (clock.getHours() < 17 { %> Guten Abend! <% } else { %> Guten Abend! <% } %> </body> </html> 28.05.2002 ASP und JSP im Vergleich 15 JSP - Skriptelemente Ausdrücke Beginnen mit <%= und enden mit %> Ergebnis des Ausdrucks wird in den Antwort-Body geschrieben Beispiel: <%= userInfo.getUserName() %> Können zur dynamischen Angabe von Attributen verwendet werden: <jsp:useBean id=„logEntry“ class=„com.foo.LogEntryBean“ /> <jsp:setProperty name=„logEntry“ property=„entryTime“ value=„<%= new java.util.Date() %>“ /> ... 28.05.2002 ASP und JSP im Vergleich 16 JSP - Skriptelemente Deklarationen Beginnen mit <%! und enden mit %> Ermöglichen globale Deklarationen In Scriptlets deklarierte Variablen enthalten dagegen jeweils einen eigenen Wert für jede Anfrage Beispiel: <%! int globalCounter = 0; %> Alle Anfragen verwenden die Variable gemeinsam Kann zur Deklaration von Methoden verwendet werden 28.05.2002 ASP und JSP im Vergleich 17 Implizite JSP-Objekte Instanzen von Klassen, die durch die Servletund JSP-Spezifikationen definiert sind Werden durch JSP-Container bereitgestellt Folgende Objekte sind in jeder JSP-Seite verfügbar: application: dient zum Zugriff auf Informationen über die Anwendungsumgebung. Bsp.: getServerInfo() config: ermöglicht Zugriff auf Initialisierungsparameter der Web-Anwendung und den Context exception: in Fehlerseiten zur Fehlerbehandlung verfügbar 28.05.2002 ASP und JSP im Vergleich 18 Implizite JSP-Objekte out: bietet Zugriff auf den Ausgabekanal des Servlets request: stellt zahlreiche Methoden zum Zugriff auf Anfrage-parameter zur Verfügung response: stellt zahlreiche Methoden zum Zugriff auf das in Servlets vorhandene Response-Objekt zur Verfügung session: Referenz auf ein HttpSession-Objekt, welches die Steuerung einer Session ermöglicht 28.05.2002 ASP und JSP im Vergleich 19 Active Server Pages Eine kurze Einführung ASP - Überblick Produkt der Firma Microsoft Zielsetzung Aufbau und Konzeption ähnlich JSP Läuft ausschließlich auf dem Microsoft Internet Information Server Verwendet als Scriptsprache VBScript oder Jscript. Andere Scriptsprachen sind möglich Dateierweiterung ist *.asp 28.05.2002 ASP und JSP im Vergleich 21 ASP - Vorraussetzungen Hardware: Mindestens Pentium 100 Mindestens 32 MB Arbeitsspeicher Mindestens 100 MB Festplattenspeicher Software Windows 95/98/ME/NT/2000/XP Personal Web Server oder IIS 28.05.2002 ASP und JSP im Vergleich 22 ASP - Grundlagen Spezifikation der verwendeten Scriptsprache: <%@ language="javascript" %> Scriptelemente wie bei JSP begrenzt durch <% und %> globale Variablen werden außerhalb einer Prozedur deklariert und lokale innerhalb Speicherung von Session- und ApplicationVariablen möglich Statische Includes in ASP gleichen SSI‘s: <!--#include file(virtual)=„header.inc"--> 28.05.2002 ASP und JSP im Vergleich 23 ASP - Grundlagen Ausdrücke werden wie bei JSP von <%= und %> begrenzt Verwendung von Ausdrücken als Attributwerte ebenfalls möglich Optionale Datei „global.asa“ Ermöglicht Deklaration von Objekten und Variablen Application-Events Application_OnStart Application_OnEnd Session-Events Session_OnStart Session_OnEnd 28.05.2002 ASP und JSP im Vergleich 24 ASP Objekte Analog zu JSP gibt es die folgenden impliziten Objekte mit ähnlicher Funktionsweise: Response, Request, Application, Session, Server, Error Zusätzliche Objekte: FileSystem – Zugriff auf das Dateisystem TextStream – Zugriff auf Textdateien Drive – Zugriff auf Informationen über Dateisysteme File – Zugriff auf Informationen über einzelne Dateien Folder – Informationen über einzelne Ordner Dictionary – Speichern von Attributname/WertPaaren 28.05.2002 ASP und JSP im Vergleich 25 ASP Components AdRotator Erzeugt ein AdRotator Objekt, welches sich bei jedem Aufruf oder Refresh der Seite ändert Browser Capabilities Erzeugt ein BrowserType Objekt, welches den Typ, die Fähigkeiten und die Version des Client-Browsers ermittelt Content Linking Erzeugung eines einfachen Navigationssystems Content Rotator Content, welcher sich bei jedem Aufruf ändert 28.05.2002 ASP und JSP im Vergleich 26 Vergleich beider Techniken Unterschiede der konkurrierenden Techniken im Überblick Gross- und Kleinschreibung ASP JSP Dim intCounter int intCounter; 'dies ist dieselbe Variable intcounter = 0 ‚ //Gross- und Kleinschrift muss stimmen Schreibweise in ASP spielt keine Rolle intCounter = 0; //Schlüsselwörter sind in Java immer klein if (intCounter == 0) { out.println("erster"); } else { out.println("weitere"); } IF intCOUNTER = 0 then Response.Write("erster") Else Response.Write("weitere") EnD iF 28.05.2002 ASP und JSP im Vergleich 28 Statement Abschluss ASP JSP ‚einzeiliges Statement‘ intcounter = 0 //einzeiliges Statement intCounter = 0; ‚mehrzeiliges Statement‘ Response.Write("<p>" & strvorname _ & "&nbsp;" & strname & "</p>" & vbCrLf) //mehrzeiliges Statement out.println("<p>" + strVorname + "&nbsp;" + strName + "</p>"); 28.05.2002 ASP und JSP im Vergleich 29 Operationszeichen ASP = <> AND NOT 28.05.2002 JSP ASP und JSP im Vergleich == !“ && ! 30 Bedingungen ASP JSP If sngzufallszahl < 0.5 Then Response.Write("kleiner") Else Response.Write("grösser") End If 28.05.2002 ASP und JSP im Vergleich if (sngZufallszahl < 0.5) { out.println("kleiner"); } else { out.println("grösser"); } 31 Mehrfachverzweigungen ASP Select Case dattimeofday Case 0 Response.Write("So früh?" & _ "<br />" & vbCrLf) Case 1 Response.Write("Guten Morgen" &_ "<br />" & vbCrLf) Case 2 Response.Write("Guten " & _ "Nachmittag<br />" & vbCrLf) Case 3 Response.Write("Guten " & _ "Abend<br />" & vbCrLf) Case Else Response.Write("Sie leben " & _ zeitlos!<br />" & vbCrLf) End Select 28.05.2002 JSP ASP und JSP im Vergleich switch(datTimeofday) { case 0: out.println("So früh?<br />"); break; case 1: out.println("Guten Morgen<br />"); break; case 2: out.println("Guten Nachmittag!<br />"); break; case 3: out.println("Guten Abend<br />"); break; default: out.println("Sie leben zeitlos!<br />"); break; } 32 Vergleich mit Strings ASP JSP If strText = "Bild" Then .. End If 28.05.2002 ASP und JSP im Vergleich If (strText.equals("Bild") { .. } 33 Features im Vergleich ASP JSP Web Server Microsoft IIS oder PersonalWebServer Apache, Netscape, IIS und andere Plattformen Microsoft Windows Solaris, Windows, Mac OS, Linux, etc. Wiederverwendbare plattformübergreifende Komponenten Nein JavaBeans, Enterprise JavaBeans, custom JSP tags Scriptsprachen VBScript, JScript Java Benutzerdefinierte Tags Nein Ja 28.05.2002 ASP und JSP im Vergleich 34 Features im Vergleich ASP JSP Datenbank Anbindung Ja (COM) Ja (JDBC API) unterstützte Datenquellen ODBC ODBC und JDBC COM Komponenten JavaBeans, Enterprise JavaBeans, custom JSP tags Komponenten 28.05.2002 ASP und JSP im Vergleich 35 ENDE 28.05.2002 ASP und JSP im Vergleich 36