Humboldt-Universität zu Berlin, Institut für Informatik

Projektseminar: Programmieren mit Java

Programmierung von Applets

Larissa Bergemann, Gerrit Gragert, Susan Vaupel

Applets und Applications

Im bisherigen Verlauf des Seminars wurden ausschließlich Java-Applications betrachtet. Darum stellt sich die Frage, wozu in Java zusätzlich das Konzept der Applets existiert. Braucht man diese überhaupt?

Das sie gebraucht werden, zeigen deutlich die Features von Applets und vor allem, was sie darin von Java-Applications unterscheidet:

Die Klasse java.applet.Applet

Die Programmierung von Applets wird durch die Klasse java.applet.Applet unterstützt. Darum im folgenden einige wichtige Methoden dieser Klasse mit einer kurzen Erläuterung.

Der Lebenszyklus eines Applets

Wird eine WWW-Seite besucht, auf der ein Applet eingebunden ist, wird dieses - sofern der Browser Java-fähig ist, automatisch geladen. Der genau Lebenszyklus eines Applets sei im folgenden beschrieben:

  1. Eine Applet-Subklasse (also eine Instanz der kontrollierenden Klasse) wird erschaffen.
  2. Das Applet initialisiert sich selbst (mit der Init-Methode).
  3. Das Applet startet sich selbst (mit der Start-Methode).
  4. Wenn die Seite, auf der das Applet eingbettet ist, wieder verlassen wird, kann das Applet stoppen (Muß es aber nicht!)(Stw. Stop-Methode). Bei einer Rückkehr zu dieser Seite kann das Applet erneut starten.
  5. Vor dem Unloading hat das Applet die Gelegenheit zu stoppen (Stop-Methode) und die genutzten Systemressourcen etc. freizugeben (Destroy-Methode).

Einbinden von Applets auf HTML-Seiten

Hat man ein Applet programmiert, verspürt man evtl. das Bedürfnis, dieses auch auf eine HTML-Seite einzubinden und es so aller Welt zugänglich zu machen. Dazu dient das Applet-Tag und zur Parameterübergabe an dieses Applet das Param-Tag, die nun näher beschrieben werden sollen.

<APPLET
CODEBASE = codebaseURL
ARCHIVE = archiveList
CODE = appletFile
...or... OBJECT = serializedApplet
ALT = alternateText
NAME = appletInstanceName
WIDTH = pixels HEIGHT = pixels
ALIGN = alignment
VSPACE = pixels HSPACE = pixels>

<PARAM NAME = appletAttribute1 VALUE = value>
<PARAM NAME = appletAttribute2 VALUE = value>

. . .

alternateHTML
</APPLET>

Mit Applet wird das Tag eingeleitet. Die Bedeutungen der Parameter sind:

Das Tag wird normal geschlossen.


This part will follow soon

Sicherheitsfragen

Bei der Nutzung von Programmen über das weltweite Datennetz sind vor allem zwei Gefahren akut:
  1. Eine Ausbreitung von Computer-Viren könnte verheerende Folgen haben.

  2. Unerwünschte Nebeneffekte (Datenverlust, unbemerkte und ungewollte Datenübertragung) auf den die Applets ausführenden Rechnern.

Der ersten Gefahr entgegnet JAVA durch seinen verfizierbaren Bytecode. Da der Aufruf der Methoden nicht über abstrakte Speicheradressen erfolgt, sondern direkt über den Namen der Methode, ist gewährleistet, daß wirklich nur die Methoden ausgeführt werden, die im jeweiligen Applet vorgesehen sind. Somit können sich keine "fremden" Methoden in Applets einschleichen.

Um die unerwünschten Nebeneffekte zu verhindern, sind andere Mechanismen nötig. Diese liegen jedoch nicht im Applet, sondern im Appletviewer bzw. Browser, in dem das Applet läft. Somit hängt es von diesen Anwendungen ab, wieviel sie dem Applet erlauben.
Um Verletzungen der Schutzmechanismen zu vermeiden, besitzt jeder Appletviewer/Browser einen Security Manager, der gegebenenfalls eine Securityexception auslöst, die mit einem try ... catch-Block abgefangen werden können und somit eine Reaktion ermöglichen.

In der Regel sollte der Browser/Appletviewer dem Applet verbieten:

Des weiteren sollten von Applets geöffnete Fenster anders aussehen als Fenster, die von Applications geöffnet wurden. Im allgemeinen enthalten in der unteren Fensterzeile eine Warnung wie Untrusted Java Applet Window.
HTML-Umsetzung: Gerrit Gragert
Erstellt am: 17.05.1996
Zuletzt geändert: 10.06.1999
E-Mail: gerrit@gragert.de