|
| índice |
DIFERENCIAS ENTRE APPLET Y APLICACIÓN
Los applets presentan las siguientes diferencias respecto a las
aplicaciones Java:
Estas restricciones de seguridad tienen por objetivo evitar cargar,
por error, un applet que podría:
Todo esto es imposible con un applet.
Los servidores Web clásicos sólo permiten funcionar en modo pregunta/respuesta; el usuario envía una solicitud al servidor, el cual la trata y devuelve la respuesta.
Así, no puede hacerse ningún control de edición sobre el puesto cliente si el sevidor Web utiliza únicamente HTML. Si el cliente debe introducir datos, por ejemplo la fecha, dicha fecha se envía al servidor, quien la examina y responde seguidamente: "Debe introducir el año", si el usuario se ha equivocado.
Gracias a los applets, este trabajo puede efectuarse sobre la
máquina cliente. Pueden realizarse controles instantáneos
y las peticiones a enviar al servidor son preparadas por el applet.
Se pasa así de una visión servidor/terminal pasivo
a una visión realmente cliente-servidor de aplicaciones.
Los applets son llamados a partir de una fuente HTML leída a distancia por el navegador. El código HTML que señala que debe cargarse un applet es el siguiente:
<APPLET
CODE="ciclo.class"
WIDTH=200
HEIGHT=200
ALIGN=MIDDLE
>
<PARAM NAME=elNombre VALUE="Un ejemplo">
</APPLET>
El navegador buscará la clase ciclo.class allí donde ha encontrado anteriormente la página HTML, es decir sobre el mismo servidor remoto.
Las diferentes opciones son las siguientes:
Se ha visto que, cuando una plicación se ejecuta, el núcleo Java busca un método public static void main (String arg [ ] ) para arrancarla.
Cuando el navegador arranca un applet, busca la clase cuyo nombre
se indica en la fuente HTML. Esta debe heredar de la clase Applet.
No es necesario definir un método main(), por el contrario,
el navegador automáticamente llamará a algunos de
los métodos de la clase Applet.
Estos métodos son los siguientes:
Cuando se crea un Applet, se debe redefinir todo o parte de estos métodos. paint ( ), especialmente, proporciona su aspecto al Applet. Este método es llamado pasándole como parámetro un objeto Graphics. Este es proporcionado por el sistema, y podemos utilizarlo sin preocuparnos de su origen.
Sin embargo, si se desea llamar a paint( ) explícitamente
en otro método del Applet, se puede hacer gracias al método
repaint( ), que llama a paint() proporcionándole el parámetro
idóneo.
Se creará el primer Applet, cosa que permitirá comprender el ciclo de vida de un Applet, es decir el encadenamiento de métodos descritos en el apartado anterior.
Se redefinen pues en este ejemplo los métodos importantes citados anteriormente. Para cada uno de ellos la única acción será añadir su nombre en una tabla de String que así conservará la memoria de las llamadas ya efectuadas.
El método paint(), además de ésto, mostrará en el navegador la lista de llamadas, recorriendo el Vector de String que guarda las llamadas. Este recorrido se hace gracias a la clase Enumeration.
import java.applet.*:
import java.aqwt.*:
import java.util.*;
public clase ciclo extends Applet {
// la tabla en la que se almacenan los nombres de los m�todos
// llamados
Vector lasllamadas = null;
public void paint (Graphics g ) {
int yActual = 20;
g.drawString (Llamadas a los m�todos:",20,yActual);
yActual += 15;
lasLlamadas.addElement ("paint");
for (Enumeration e= lasLlamadas.elements(); e.hasMoreElements();
) {
g.drawString (e.nextElement ().toString (),20,yActual);
yActual +=15;
}
public ciclo ( ) { // constructor
lasLlamadas = new Vector ( );
lasLlamadas.addElement ("constructor");
}
public void init () {
lasLlamadas.addElement ("init");
}
// . . .
// igual para Start ( ), destroy ( ), stop ( )
// . . .
}
}
El programa HTML que permite cargar el applet en el navegador es el siguiente:
<HTML> <HEAD> <TITLE> El applet </HEAD> <BODY> <H2>
Ciclo de vida de un Applet
</H2> <APPLET> CODE="ciclo.class" WIDTH=400 HEIGHT=200 ALIGN=MIDDLE > </APPLET> </BODY> </HTML>
Para depurar un Applet, no es necesario estar conectado a una
red. El Applet puede residir en la máquina, al igual que
la página HTML, que invoca su llamada. Esta página
se carga mediante el menú OpenFile del navegador. En la
depuración de un Applet, el navegador no recarga el applet
cuando se utiliza el menú Reload de la herramienta. Sólo
recarga el fichero HTML.
Si la fuente Java ha sido modificada y recompilada, y si la página
es mostrada actualmente por el navegador, para observar el resultado
en el navegador hay que solicitar una nueva garga de la página
(p.e. por OpenFile u OpenLocation) y no una recarga (Reload).
Si esto no basta hay que volver a lanzar el navegador.
Es mejor, sin embargo, para depurar un Applet, utilizar una herramienta
como AppletViewer. En comparación con un navegador, AppletViewer
proporciona informaciones suplementarias y permite utilizar la
salida estándar para depura el Applet. Para utilizarlo,
se indica al AppletViewer el nombre de la página HTML que
lanza el applet.
En ciertos casos se quiere disponer de una aplicación que, casi idéntica, sea local con el núcleo Java o, en forma de applet, funcione a través de la utilización de páginas HTML.
Otro interés que muestra los applets en relación a las páginas HTML es la posibilidad de ejecutar una aplicación multiventana en el puesto del usuario. Los applets pueden desarrollarse 'fuera' de la página visualizada por el navegador.
El usuario remoto puede tener tembién una aplicación
completa que se ejecuta en su puesto. Y ello:
Una direcci�n interesante, con los pasos a seguir para crear y usar un applet
es:
http://www.javasoft.com/books/series/Tutorial/getStarted/applet/index.html