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