Depuración General Compilar y ejecutar
el sencillo programa HolaMundo.java a través del fichero HolaMundo.html no
debería suponer ningún problema, pero alguna vez se presentarán programas más
difíciles y se necesitará el truco de depuración al que todo programador recurre
durante el desarrollo de programas en cualquier lenguaje.
System.out.printl()
Una de las herramientas de depuración más
efectivas en cualquier lenguaje de programación es simplemente la salida de información
por pantalla. El comando System.out.println imprime la cadena que se le especifique
en la ventana de texto en la que se invocó al navegador. La forma de usarlo se muestra a
continuación:
public void paint( Graphics g ) {
g.drawString( "Hola Mundo!",25,25 );
System.out.println( "Estamos en paint()" );
}
Ciclo
de Vida de un Applet
Para seguir el ciclo de vida de un applet, se
supone que se está ejecutando en el navegador el applet básico HolaMundo, a través de
la página HTML que lo carga y corre, y que se ha visto en ejemplos anteriores.
Lo primero que aparece son los mensajes "initializing...
starting...", como resultado de la carga del applet en el navegador. Una vez
cargado, lo que sucede es:
- Se crea una instancia de la clase que controla al applet
- El applet se inicializa a si mismo
- Comienza la ejecución del applet
Cuando se abandona la página, por ejemplo,
para ir a la siguiente, el applet detiene la ejecución. Cuando se regresa a la página
que contiene el applet, se reanuda la ejecución.
Si se utiliza la opción del navegador de Reload,
es decir, volver a cargar la página, el applet es descargado y vuelto a cargar. El applet
libera todos los recursos que hubiese acaparado, detiene su ejecución y ejecuta su finalizador
para realizar un proceso de limpieza final de sus trazas. Después de esto, el applet se
descarga de la memoria y vuelve a cargarse volviendo a comenzar su inicialización.
Finalmente, cuando se concluye la ejecución
del navegador, o de la aplicación que está visualizando el applet, se detiene la
ejecución del applet y se libera toda la memoria y recursos ocupados por el applet antes
de salir del navegador.
Protección de Applets
Como curiosidad, más que como algo
verdaderamente útil, se verá a continuación un método para proteger applets de forma
muy sencilla, o por lo menos evitar que nadie pueda ocultar en sus páginas HTML quien es
el autor legal de un applet.
El método es muy sencillo y se basa en la
utilización de un parámetro del cual se comprobar su existencia, por ejemplo:
<PARAM NAME=copyright
VALUE="Applet de Prueba, A.Froufe (C)1996, Todos los derechos reservados">
y en el código Java del applet, se
comprobaría que efectivamente el parámetro copyright existe y ese es su
contenido:
if( !getParameter( "copyright" ).equals( "..." )
throw( new Exception( "Violacion del Copyright" ) );
donde "..." es el texto completo del
valor del parámetro. Pero también se puede hacer de forma más elegante:
copyright = getParameter( "copyright" );
// System.out.println( copyright.hashCode() );
if( copyright != -913936799 )
throw( new Exception( "Violacion del Copyright" ) );
en donde la sentencia comentada proporciona el
valor del copyright para poder introducirlo en la comparación de la presencia o no del
parámetro en la llamada al applet. Habría que declarar y definir correctamente tipos y
variables, pero la idea básica es la que está expuesta. |