13.1.2 | Die URLs des Applets |
Eine URL wird in Java durch ein Exemplar der Klasse URL repräsentiert. Für jedes Applet existieren zwei URLs, die für den Aufbau von URL-Verbindungen, aber auch für das Laden von Bildern und den Aufbau von Socket-Verbindungen eine besondere Rolle spielen:Beide oben genannten URLs können durch Methoden der Klasse Applet abgefragt werden. Diese Methoden lauten getCodeBase() bzw. getDocumentBase() und liefern beide ein URL-Objekt als Ergebnis, das die jeweilige URL repräsentiert.
- Basis-URL des Applets
Diese URL ist ein Verweis auf das Verzeichnis, in dem sich die class-Datei des Applets befindet.- Basis-URL der HTML-Seite
Diese URL ist ein Verweis auf das Verzeichnis, in dem sich die HTML-Seite zu dem Applet befindet.
Angenommen, in einer Datei http://www.demo.de:80/index.html befindet sich folgendes Applet-Tag:<APPLET CODE="demo.class" CODEBASE="applets" WIDTH="300" HEIGHT="200"> </APPLET>Dann würde ein Aufruf von getCodeBase() ein URL-Objekt als Ergebnis liefern, das die URLhttp://www.demo.de:80/appletsrepräsentiert. Ein Aufruf von getDocumentBase() liefert hingegen ein URL-Objekt, das die URLhttp://www.demo.de:80/darstellt. Der Unterschied zwischen den beiden URLs besteht also darin, dass die URL, die über getCodeBase() zurückgeliefert wird, zusätzlich das Verzeichnis, das unter dem CODEBASE-Attribut angegeben wurde, angehängt werden muss.
Mit diesen beiden URLs ist die relative Angabe zu Ressourcen relativ einfach. Angenommen, in eine Java-Anwendung werden Bilder oder Audio-Dateien geladen, deren Ort ebenfalls über URLs angegeben wird. Bei einer absoluten Angabe der URL müsste man jedesmal das Verzeichnis anpassen, in dem sich die Ressourcen befinden. Man besitzt aber auch die Möglichkeit, die URL des Applets über einen Aufruf von getCodeBase() oder getDocumentBase() abzufragen und die Ressourcen relativ dazu anzugeben. In diesem Fall wäre keine Änderung der URLs im Applet notwendig.
getCodeBase() oder getDocumentBase() werden auch häufig beim Aufbau von Netzverbindungen zur Abfrage des Rechnernamens des Rechners, von dem das Applet geladen wurde, verwendet.
In Abschnitt 4.8.6 wird darauf eingegangen, wie die Codebase eines Applets mit Paketnamen zusammenhängt.