19.4 Parameter an das Applet übergeben
 
Dem Applet können Parameter im Applet-Tag übergeben werden. Dazu wird im <applet>-Element ein <param>-Element eingebettet. Im Folgenden zeichnet ein Applet einen grünen oder roten Kasten, in Abhängigkeit davon, ob eine URL korrekt aufgebaut ist.
 Hier klicken, um das Bild zu Vergrößern
Listing 19.3
appletCheckUrl.html
<html><body>
<a href="http://java-tutor.com/index.html">Java-Seminare</a>
<applet code="CheckUrlApplet.class" width="10" height="10">
<param name="url" value="http://java-tutor.com/index.html">
</applet>
<p>
<a href="java-tutor.com/index.html2">Java-Seminare Falsch</a>
<applet code="CheckUrlApplet.class" width="10" height="10">
<param name="url" value="java-tutor.com/index.html2">
</applet>
</body></html>
Das Applet nimmt den Parameter an und prüft den gültigen Aufbau der URL über eine MalformedURLException.
Listing 19.4
CheckUrlApplet.java
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.net.MalformedURLException;
import java.net.URL;
public class CheckUrlApplet extends Applet
{
private boolean urlOk = false;
@Override
public void init()
{
try {
urlOk = new URL( getParameter("url" ) ) != null;
} catch ( MalformedURLException e ) { /* urlOk is false */ }
}
@Override
public void paint( Graphics g )
{
g.setColor( urlOk ? Color.GREEN : Color.RED );
g.fillRect( 0, 0, 10, 10 );
}
}
Interessant wäre natürlich, wenn das Applet gleich die URL auf Erreichbarkeit prüfen würde. Relativ einfach ergeben sich dann folgende Zeilen:
try {
urlOk = ((HttpURLConnection)new URL( getParameter("url" ) ).
openConnection()).getResponseCode() == HttpURLConnection.HTTP_OK;
} catch ( IOException e ) { /* urlOk is false */ }
Doch bei der Prüfung von üblichen Links kommt es zu einem Fehler! Aus Sicherheitsgründen kann ein Applet nicht auf Rechner zugreifen, die ungleich dem sind, von dem das Applet geladen wurde. Ohne explizite Sicherheitserweiterungen kann so ein allgemeines Prüft-Link-Applet nicht geschrieben werden.
|