Sending Parameters to Applets
Now that you have had some experience writing computer programs, you might be feeling one of the strongest emotions of the programmer: compiler angst. Even though it takes no more than 15 seconds to compile most programs, that time can seem interminable when you're debugging a program. Write, Save, Compile, Aargh--an error! Write, Save, Compile, Aargh! Write, Save, Compile, Aargh!... As this vicious cycle repeats itself, it's easy to become world-weary as a program is compiled and recompiled.
One of the driving forces behind parameter use in Java applets is the fear and loathing of compilation. Parameters enable you to change elements of an applet without editing or recompiling anything. They also make the program more useful.
The following topics will be covered during this hour:
· Sending parameters to Java applets
· Receiving parameters in an applet program
· Checking for nonexistent parameters
· Converting parameters from one type to another
· Writing a program that uses parameters
Sending Parameters from a Web Page
Parameters are stored as part of the Web page that contains an applet. They are created using the HTML tag <--PARAM> and its two attributes: NAME and VALUE. You can have more than one <--PARAM> tag with an applet, but all of them must be between the opening <--APPLET> tag and the closing <--/APPLET> tag. The following is an <--APPLET> tag that includes several parameters:
<--APPLET-- CODE="ScrollingHeadline.class" HEIGHT=50 WIDTH=400>
<--PARAM NAME="Headline1" VALUE="Dewey defeats Truman">
<--PARAM NAME="Headline2" VALUE="Stix nix hix pix">
<--PARAM NAME="Headline3" VALUE="Man bites dog">
This example could be used to send news headlines to an applet that scrolls them across the screen. Because news changes all the time, the only way to create a program of this kind is with parameters. No other solution would work; just imagine how long it would take to recompile a Java program every time a Dallas Cowboy ran afoul of the law.
You use the NAME attribute to give the parameter a name. This attribute is comparable to giving a variable a name. The VALUE attribute gives the named parameter a value.
Receiving Parameters in the Applet
You have to do something in your Java program to retrieve the parameters on the Web page or they will be ignored. The getParameter() method of the Applet class retrieves a parameter from a tag on a Web page. The parameter name, which is specified with the NAME attribute on the page, is used as an argument to getParameter(). The following is an example of getParameter() in action:
String display1 = getParameter("Headline1");
The getParameter() method returns all parameters as strings, so you have to convert them to other types as needed. If you want to use a parameter as an integer, you could use statements such as the following:
String speedParam = getParameter("SPEED");
if (speedParam != null)
speed = Integer.parseInt(speedParam);
This example sets the speed variable by using the speedParam string. You have to test for null strings before setting speed because the parseInt() method cannot work with a null string. When you try to retrieve a parameter with getParameter() that was not included on a Web page with the <--PARAM> tag, it will be sent as null, which is the value of an empty string.