Applets können sowohl im Appletviewer als auch im Browser ausgeführt werden.
Da der Appletviewer jeweils mit dem aktuellen JDK bzw. SDK mitgeliefert wird, unterstützt
er automatisch die neueste Version.
Bei der Java-Unterstützung in Browsern gibt es in der Praxis folgende Probleme:
- Erscheint eine neue Version des SDK, dauert es oft sehr lange, bis die
neue Version auch in den Browsern eingesetzt werden kann. Das liegt daran, dass die
neue Funktionalität erst von den Browser-Entwicklern in ihr Produkt eingebaut werden muss.
- Java-Implementierungen in unterschiedlichen Browsern verhalten sich oft nicht
identisch.
Diese beiden Probleme können durch Verwendung des Java-Plug-in umgangen werden.
Das Java-Plug-in ist ein herkömmliches Browser-Plug-in, das es ermöglicht,
einen bestimmten Java-Interpreter im Browser zu verwenden.
Kommt eine neue Java-Version auf den Markt, kann der Anwender selbst die
Java-Laufzeitumgebung im Browser aktualisieren,
ohne zu warten, bis neue Browser-Versionen erscheinen.
Außerdem hat man dadurch die Möglichkeit, Inkompatibilitäten zu umgehen,
indem man selbst die Java-Laufzeitumgebung wählt, die man benutzen möchte.
Das Java-Plug-in wird von Sun Microsystems entwickelt und ist
sowohl für den Microsoft Internet Explorer als auch den Netscape
Navigator ab der Version 3.0 verfügbar.
Neuere Versionen des Java-Plug-in (z. B. das mit dem J2SDK 1.4 mitgelieferte)
sind in der Lage im Internet Explorer ab Version 4.0 und
Netscape ab Version 6 das Standard-Applet-Tag auszuwerten. Dadurch werden alle
Applets, die durch das <APPLET>-Tag eingebunden sind, automatisch
im Plug-in statt in der beim Browser mitgelieferten Laufzeitumgebung ausgeführt.
Beim Internet Explorer kann man in den Internetoptionen im Register Erweitert
nach der Installation des Java-Plug-in einstellen, welche Java-Laufzeitumgebung
für die Ausführung von Applets benutzt wird, die durch das
<APPLET>-Tag eingebunden sind.
Da das Java-Plug-in die vordefinierte Plug-in-Schnittstelle der Browser
verwendet, kann man alternativ für Applets, die explizit vom Plug-in abgespielt werden sollen,
mit anderen Tags in die HTML-Seite einbinden.
Der Internet Explorer stellt hierfür das <OBJECT>-Tag,
der Netscape Navigator das <EMBED>-Tag zur Verfügung.
Falls man explizit das Plug-in verwenden und gleichzeitig unterschiedliche
Browser unterstützen möchte, steht man nun vor dem Problem, im HTML-Code
verschiedene Browser zu berücksichtigen.
Im Folgenden wird beschrieben, wie das <APPLET>-Tag
aus dem letzten Abschnitt
<APPLET CODE="helloworld.class" WIDTH="200" HEIGHT="100">
Sorry, your Browser doesn't support Applets
</APPLET>
für die Verwendung der unterschiedlichen Plug-in-Schnittstellen angepasst werden muss.
Internet Explorer
Im Internet Explorer wird das Beispiel-Applet mit folgendem HTML-Codeausschnitt
über die Plug-in-Schnittstelle eingebunden:
<OBJECT CLASSID="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
WIDTH="200" HEIGHT="200" ALIGN="left" >
<PARAM NAME="code" VALUE="helloworld.class">
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.4">
Sorry, your Browser doesn't support Applets
</OBJECT>
Das Attribut classid identifiziert das Plug-in, das verwendet werden soll.
Mit dem oben genannten Wert wird das Java-Plug-in eindeutig definiert und kann
vom Browser aktiviert werden. Die restlichen verwendeten Attribute des
<OBJECT>-Tags besitzen dieselbe Funktion, wie die gleichnamigen Attribute
des <APPLET>-Tags. Der Klassenname wird hier über das <PARAM>-Tag
angegeben, dessen Attribut NAME den Wert code hat.
Durch den Parameter mit dem Namen type wird der eingebundene
Java-Code näher spezifiziert. Der Wert von type ist entweder
application/x-java-applet (bei einem Applet) oder
application/x-java-bean (bei einer Java-Bean-konformen Komponente).
Optional kann zusätzlich durch Semikolon getrennt die Version der Java-Klassen
angegeben werden. Für Browser, die das <OBJECT>-Tag nicht kennen,
wird auch in diesem Fall ein alternativer Text angegeben.
Netscape Navigator
Der entsprechende Codeausschnitt hat für den Netscape Navigator folgende
Gestalt:
<EMBED TYPE="application/x-java-applet;version=1.2"
WIDTH="200" height="200" ALIGN="left"
CODE="helloworld.class">
<NOEMBED>
Sorry, your Browser doesn't support Applets
</NOEMBED>
</EMBED>
Beim <EMBED>-Tag werden alle Angaben direkt in Form
von Attributen gemacht.
Die angegebenen Werte wurden bereits im letzten Abschnitt erläutert.
Ein Unterschied zum letzten Abschnitt besteht jedoch bei der
Angabe des alternativen Textes. Hier wird der
Text zusätzlich in die NOEMBED-Umgebung eingeschlossen.
Im letzten Abschnitt wurde der Text nur angezeigt, falls der Browser
das Tag nicht kennt. Befindet sich der alternative Text in einer
<NOEMBED>-Umgebung, wird der Text außerdem gezeigt,
wenn der Browser das Tag zwar kennt, beim Laden des Plug-in aber ein
Fehler auftritt.
Internet Explorer und Netscape Navigator
Es besteht die Möglichkeit, das <EMBED>- und
<OBJECT>-Tag so in einer HTML-Seite zu vereinen,
dass sowohl der Internet Explorer als auch der Netscape Navigator
nur die jeweils relevanten Teile interpretieren.
Das hat den Vorteil, dass man für beide Browser
nur eine HTML-Seite verwalten muss.
Die Kombination aus beiden Tags sieht folgendermaßen aus:
<OBJECT CLASSID=":8AD9C840-044E-11D1-B3E9-00805F499D93"
WIDTH="200" HEIGHT="200" ALIGN="left" >
<PARAM NAME="code" VALUE="helloworld.class">
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2">
<COMMENT>
<EMBED TYPE="application/x-java-applet;version=1.2"
WIDTH="200" HEIGHT="200" ALIGN="left"
CODE="helloworld.class">
<NOEMBED>
</COMMENT>
Sorry, your Browser doesn't support Applets
</NOEMBED></EMBED>
</OBJECT>
Lädt der Internet Explorer die Seite mit obigem Codeausschnitt, so interpretiert
er das <OBJECT>-Tag und die darin enthaltenen <PARAM>-Tags.
Die Anweisungen in der <COMMENT>-Umgebung werden vom
Internet Explorer überlesen.
Wird der Code vom Netscape Navigator geladen, so wird das <OBJECT>-Tag
und die nachfolgenden <PARAM>-Tags überlesen-ebenso
das anschließende <COMMENT>-Tag, da es der
Netscape Navigator nicht kennt.
Anschließend kann der Navigator die <EMBED>-Umgebung auswerten.
Bei der Verwendung des Java-Plug-in sollte man berücksichtigen, dass man
Java-Applets nicht mehr mit der Standard-Laufzeitumgebung des Browsers
abspielt. Dadurch, dass bei der Verwendung des Plug-in die HTML-Tags verändert
werden, kann das Applet nicht mehr in der eingebauten
Standard-Laufzeitumgebung des Browsers gestartet werden.
Dies kann man jedoch umgehen, indem man noch einen Schritt weitergeht und
das Tag, durch das das Applet eingebunden wird, dynamisch durch JavaScript generiert.
Mit JavaScript hat man die Möglichkeit, zunächst abzufragen, ob der Browser
über das Java-Plug-in verfügt (wobei es hier wiederum Unterschiede zwischen
den Netscape- und Microsoft-Versionen gibt).
Falls ja, wird das Tag für den verfügbaren Browser und das Plug-in generiert.
Falls nein, wird ein <APPLET> erzeugt, durch das die
eingebaute Laufzeitumgebung verwendet wird.
Ein Beispiel zum Abfragen der Browser-Version und zum dynamischen Generieren
des HTML-Tags ist im Abschnitt 4.9 beschrieben.
Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.