Diferencia entre revisiones de «Applet Java»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Ferbrunnen (discusión · contribs.)
m Revertidos los cambios de 213.171.249.66 (disc.) a la última edición de Sunsinron
Línea 227: Línea 227:
|<code>classid</code>
|<code>classid</code>
|Identificador del tipo de objeto.
|Identificador del tipo de objeto.
|Para Java es: <code>classid="clsid:CAFEEFAC-0014-0001-0000-ABCDEFFEDCBA"</code> (Esta opción indica que se utilice la versión 1.4.1 de la JRE. Si se desea que el applet utilice la última versión de JRE disponible utilizar: <code>classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"</code>
|Para Java es: <code>classid="clsid:CAFEEFAC-0014-0001-0000-ABCDEFFEDCBA"</code>
|-
|-
|<code>codebase</code>
|<code>codebase</code>

Revisión del 06:02 2 jun 2009

Applet
Parte de programa informático
Información general
Desarrollador Sun Microsystems
Información técnica
Programado en Java
Enlaces


Un applet Java es un applet escrito en el lenguaje de programación Java. Los applets de Java pueden correr en un navegador web utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun.

Entre sus características podemos mencionar un esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. no pueden escribir archivos), a menos que uno mismo le dé los permisos necesarios en el sistema; la desventaja de este enfoque es que la entrega de permisos es engorrosa para el usuario común, lo cual juega en contra de uno de los objetivos de los Java applets: proporcionar una forma fácil de ejecutar aplicaciones desde el navegador web.

En Java un applet (Subprograma), es un programa que puede incrustarse en un documento HTML; es decir en una página Web. Cuando un Navegador carga una página Web que contiene un Applet, éste se descarga en el navegador Web y comienza a ejecutarse. Esto nos permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la página Web en su navegador.

El Navegador que carga y ejecuta el applet se conoce en términos genéricos como el contenedor de Applets. El kit de desarrollo de Software para java 2 (J2SDK) 1.4.1 incluye el contenedor de Applets, llamado appletviewer, para probar los applets antes de incrustarlos en una página Web.

Ventajas

Los applets de Java suelen tener las siguientes ventajas:

  • Son multiplataforma (funcionan en Linux, Windows, Mac OS, y en cualquier sistema operativo para el cual exista una JVM)
  • El mismo applet puede trabajar en "todas" las versiones de Java, y no sólo la última versión del plug-in. Sin embargo, si un applet requiere una versión posterior de la JRE, el cliente se verá obligado a esperar durante la descarga de la nueva JRE
  • Es soportado por la mayoría de los navegadores Web
  • Puede ser almacenado en la memoria cache de la mayoría de los navegadores Web, de modo que se cargará rápidamente cuando se vuelva a cargar la página Web, aunque puede quedar atascado en la caché, causando problemas cuando se liberan nuevas versiones.
  • Puede tener acceso completo a la máquina en la que se está ejecutando, si el usuario lo permite
  • Puede ejecutarse con velocidades comparables (pero en general más lento) a la de otros lenguajes compilados, como C + +, pero muchas veces más rápida que la de JavaScript
  • Puede trasladar el trabajo del servidor al cliente, haciendo una solución Web más escalable tomando en cuenta el número de usuarios / clientes

Desventajas

Los applets de Java suelen tener las siguientes desventajas:

  • Requiere el plug-in de Java, que no está disponible por defecto en todos los navegadores web.
  • No puede iniciar la ejecución hasta que la JVM esté en funcionamiento, y esto puede tomar tiempo la primera vez que se ejecuta un applet.
  • Si no está firmado como confiable, tiene un acceso limitado al sistema del usuario - en particular no tiene acceso directo al disco duro del cliente o al portapapeles.
  • Algunas organizaciones sólo permiten la instalación de software a los administradores. Como resultado, muchos usuarios (sin privilegios para instalar el plug-in en su navegador) no pueden ver los applets.
  • Un Applet podría exigir una versión específica del JRE.

Diferencias entre una aplicación standalone y un applet

Existen diferencias entre un programa standalone y un applet:

  • Restricciones de seguridad: Un applet se considera código de poca confianza[1]​ (a excepción de que lleven una firma digital) ya que son compartidos por todos los usuarios de Internet. Por ejemplo, no se permite el acceso a ficheros locales ni conectarse a un servidor distinto al que está alojado el applet.
  • Necesitan un navegador para ser visualizados: O en un visor de applet como el appeltviewer.
  • No tienen un método principal.

Se manejan por eventos: Un applet responde cuando recibe una petición por parte del sistema o del usuario.

Creación y ejecución de un applet

Crear un applet

Para crear un applet necesitamos escribir una clave de la clase Applet del paquete java.applet.*;

 import java.applet.*;
 public class MiApplet extends Applet
 {
 //Cuerpo del ''applet''.
 }

El código anterior declara una nueva clase MiApplet que hereda todas las capacidades de la clase Applet de Java. El resultado es un fichero MiApplet.java.

Una vez creada la clase que compone el applet, escribimos el resto del código y después lo compilamos, obteniendo el fichero MiApplet.class. Para poder crear el applet se necesita compilar el código Java en un intérprete.

 import java.applet.*;
 import java.awt.*;
 import java.util.*;
 import java.text.DateFormat;
 
 public class MiApplet extends Applet implements Runnable
 {
    private Thread hilo = null;
    private Font fuente;
    private String horaActual = "00:00:00";
 
    public void init()
    {  
       fuente = new Font("Verdana", Font.BOLD, 24);
    }
    public void start()
    {
       if (hilo == null)
       {
          hilo = new Thread(this, "Reloj");
          hilo.start();
       }
    }  
    public void run()
    {
       Thread hiloActual = Thread.currentThread();
       while (hilo == hiloActual)
       {
          //obtener la hora actual
          Calendar cal = Calendar.getInstance();
          Date hora = cal.getTime();
          DateFormat df = DateFormat.getTimeInstance();
          horaActual = df.format(hora);
          repaint();
          try
          {
             Thread.sleep(1000);
          }
          catch (InterruptedException e){}
       }
    }  
    public void paint(Graphics g)
    {   
       //Dibujar un rectangulo alrededor del contenedor
       g.draw3DRect(1, 1, getSize().width-3, getSize().height-3, false);
       //Establecer la Fuente
       g.setFont(fuente);
       //mostrar la Hora
       g.drawString(horaActual,14,40);
    }   
    public void stop()
    {   
       hilo = null;
    }   
 }

Si se utiliza la biblioteca gráfica Swing, se puede utilizar la clase JApplet de javax.swing en vez de Applet:

 import javax.swing.*;
 public class MiApplet extends JApplet
 {
 //Cuerpo del ''applet''.
 }

Ejecución

Para insertar el applet en una página web, se usa la siguiente estructura:

<etiqueta parametro = "valor"></etiqueta>

Etiqueta <applet>

Siguiendo la estructura anterior, un ejemplo de código para ejecutar el applet sería:

    <applet code="MiApplet.class" width="370" height="270"></applet>

Pudiéndose usar los siguientes atributos:

Atributo Descripción Ejemplo
codebase Dirección desde donde se puede descargar la clase de Java que va a cargar el applet, el URL de la clase. Si no se especifica, será la ubicación actual de la página HTML. codebase="http://www.pagina.com/applet/"
code Nombre de la clase que se quiere cargar en el applet. La dirección donde se encuentra es relativa al codebase. Si no se ha especificado codebase, es la misma carpeta donde está la página HTML que carga el applet. code="NombreClase.class"
width Tamaño en píxels de la anchura. width=100
height Tamaño en píxels de la altura. height=100
alt Texto que se muestra donde debería cargarse el applet si el navegador no permite su carga. alt="Su navegador no permite cargar este Applet"
name Establece un nombré único para el applet. name="MiApplet"
archive Es un listado de clases separados por comas que deben ser cargados en la caché del usuario local antes de poder ejecutarse. archive="Clase1.class, Clase2.class, Clase3.class"
hspace Establece los márgenes laterales en píxels. hspace=25
vspace Establece el margen superior e inferior en píxels. vspace=25
align Alineación respecto a otros elementos.
Valores: left, center, rigth, top, middle y botton
align="center"
myscript Permite especificar si el applet puede tener acceso al código JavaScript No tiene valor asociado. Si aparece se aplica.

Dentro de la etiqueta <applet> puede aparecer la etiqueta <param> que contiene pares clave/valor, que son leídos por el programa Java, tantas veces como se quiera.

Etiqueta <object>

A partir de la versión 4.0 de HTML se consideró obsoleto el uso de la etiqueta <applet>, siendo sustituida por <object>.

Esta etiqueta es soportada por los navegadores Microsoft Internet Explorer, Netscape 6 (y versiones superiores) y Mozilla Firefox.

Comparte muchos de los atributos con <applet>, siendo los únicos para esta etiqueta:

Atributo Descripción Ejemplo
classid Identificador del tipo de objeto. Para Java es: classid="clsid:CAFEEFAC-0014-0001-0000-ABCDEFFEDCBA"
codebase URL que apunta a un fichero .cab en la red del plugin necesario para poder ejecutar el contenido. codebase="Dirección_del_instalador_de_la_Máquina_Virtual_Java"
type Tipo de archivo que va a reproducirse mediante el objeto. <param name="type" value="application/x-java-applet;jpi-version=1.5.0">

Ciclo de vida

Cuando un applet se inicia, se llaman en este orden a los siguientes métodos;

  1. init: Suele contener instrucciones para inicializar el applet.
  2. start: Como init, se suele usar para inicializar, pero con la diferencia de que este método también se llama cuando se reinicia un applet.
  3. paint: Se encarga de mostrar el contenido del applet. Se ejecuta cada vez que se tenga que redibujar.

Para terminar la ejecución o pausarse se llama a los siguientes métodos:

  • stop: Suspende la ejecución del programa. Se llama cuando el applet se vuelve temporalmente invisible.
  • destroy: Cuando no se va a necesitar más el applet. Se usa para liberar recursos.

Ejemplos Incluidos en el JDK de Sun

  • Applet TicTacToe.
  • Applet DrawTest.
  • Applet BarChart.
  • Applet Animator.
  • Applet ArcTest.
  • Applet Blink.
  • Applet Clock.
  • Applet GraphicsTest.
  • Applet ImageMap.
  • Applet MoleculeViewer.
  • Applet Zloden.

Referencias

  1. «Artículo Security Restrictions sobre Applets de Sun Microsystem» (en inglés). Consultado el 15 de enero de 2009. 

Véase también

Enlaces externos