Taking Advantage of the Applet API |
Whenever an applet needs to load some data from a file that's specified with a relative URL (a URL that doesn't completely specify the file's location), the applet usually uses either the code base or the document base to form the complete URL. The code base, returned by theApplet
getCodeBase
method, is a URL that specifies the directory from which the applet's classes were loaded. The document base, returned by theApplet
getDocumentBase
method, specifies the directory of the HTML page that contains the applet.Unless the
<APPLET>
tag specifies a code base, both the code base and document base refer to the same directory on the same server. For example, in the figure in Test Driving an Applet, the code and document bases would both specify the someDirectory directory.Data that the applet always needs, or needs to rely on as a backup, is usually specified relative to the code base. Data that the applet user specifies, often by using parameters, is usually specified relative to the document base.
The
Note: For security reasons, browsers limit the URLs from which untrusted applets can read. For example, most browsers don't allow untrusted applets to use ".." to get to directories above the code base or document base. Also, since untrusted applets can't read files except those on the applet's originating host, the document base isn't generally useful if the document and the untrusted applet are on different servers.
Applet
class defines convenient forms of image-loading and sound-loading methods that let you specify images and sounds relative to a base URL. For example, assume an applet is set up with one of the directory structures shown in the following figure.[PENDING: Figure. For the no-package case, imgDir and the class file are in the same directory. For the package case, imgDir and top package directory (com) are in the same directory.]
To create an
Image
object using thea.gif
image file underimgDir
, the applet can use the following code:Image image = getImage(getCodeBase(), "imgDir/a.gif");
Taking Advantage of the Applet API |