You are on page 1of 34

APPLETS Y ACTIVE X

Ing. Tyrone Pesantes


Lsi. Verónica Freire A.
APPLETS
APPLET

Desde el punto de Desde el punto de


vista del código vista de una página
Java html

programa diseñado
una pequeña
para ser ejecutado
ventana gráfica
en el contexto de
dentro de la misma.
una página web

¿Cual es la diferencia con una aplicación Java?


Las applets no son exactamente aplicaciones Java, ya que
presentan las siguientes diferencias respecto a las aplicaciones
normales Java:

 Se cargan mediante un navegador, no siendo


lanzados por el intérprete Java.
 Son cargados a través de la red por medio de
páginas HTML y no residen en el disco duro de la
máquina que los ejecuta.
 Poseen un ciclo de vida diferente.
 Tienen menos derechos que una aplicación clásica,
por razones de seguridad.
La actual política de seguridad afecta a los recursos
que una applet puede usar, cuyos principales puntos
son:

 Los accesos que pueden realizar las applets a los


ficheros son restringidos.
 Las conexiones de red serán restringidas a conectar
solo con el host del que proviene la applet.
 Una applet no es capaz de usar ningún método que
pueda resultar en una ejecución arbitraria, código
no revisado o ambos.(incluye -bibliotecas
dinamicas)
Situación de la clase Applet en la API de Java

 La clase Applet Java,  es la única clase que


contiene el paquete java.applet de la API de Java.
 Esta clase hereda de Object (como todas las clases
Java), pero además hereda
de Component y Container, que son dos clases del
paquete gráfico AWT.
Implementación de los Applets

java.lang.Objetc

java.awt.Component

java.awt.Container

java.awt.Panel

java.applet.Applet
Applet : Hola Mundo
import java.applet.Applet;
import java.awt.Graphics;

public class HolaMundo extends Applet {


public void paint(Graphics g) {
g.drawString("Hola mundo!", 50, 25);
}
}
Como ejecutar un applet
<HTML>
<HEAD>
<TITLE> Primer programa </TITLE>
</HEAD>
<BODY>

 Salida del programa (Applet):


<APPLET CODE="HolaMundo.class" WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>
En vez de partir de Jframe utilizamos JApplet
Ciclo de vida de un Applet
Ciclo de vida de un Applet
 1. Carga del applet
 Se crea una instancia de la clase del applet
 El applet se inicializa (init)
 El applet comienza su ejecución (start)
 2. Abandonar y volver a la página del applet
 Cuando el usuario abandona la página, el applet
puede pararse a sí mismo (stop)
 Cuando el usuario vuelve a la página, el applet
comenzará de nuevo (start)
Applets: Métodos Básicos
 public class Simple extends Applet {
 ...
 public void init() { . . . }
 public void start() { . . . }
 public void stop() { . . . }
 public void destroy() { . . . }
 ...
 }
• Para realizar operaciones de limpieza (liberar recursos) antes de
descargar el applet

Destroy
• Para detener la ejecución del applet: cuando se abandona la
página web o se cierra el explorador

stop
• Para comenzar la ejecución del applet: cuando el applet se carga
o cuando se revisita la página web

start
• Para inicializar el applet cada vez que se carga o se recarga
• Suele usarse para operaciones cortas de inicialización (por
ejemplo, cargar imágenes)

init
Applets: Métodos Básicos
Applets: Métodos Básicos
Para visualizar objetos
Para reaccionar ante
(metodos heredados
eventos
de AWT)
Paint: Es el método básico de
visualización. Se usa para Métodos específicos de
dibujar la representación del manejo del evento (ejemplo:
applet dentro de la página mouseDown)
web.

Update: Se usa para


El método handleEvent.
redibujar el applet
Otros componentes visuales heredados de awt:

 Botones (java.awt.Button)
 Checkbox (java.awt.Checkbox)
 Campos de texto de una línea (java.awt.TextField)
 Áreas de edición más grandes (java.awt.TextArea)
 Etiquetas (java.awt.Label)
 Listas (java.awt.List)
 Listas desplegables (java.awt.Choice)
 Sliders y barras de desplazamiento (java.awt.Scrollbar)
 Áreas de dibujo (java.awt.Canvas)
 Menús (java.awt.Menu, java.awt.MenuItem,
java.awt.CheckboxMenuItem)
 Contenedores (java.awt.Panel, java.awt.Window and its subclasses)
La etiqueta applets
<APPLET CODE=AppletSubclass.class
WIDTH=entero
HEIGHT=entero>
</APPLET>
 Especificación de parámetros

<APPLET CODE=AppletSubclass.class
WIDTH=entero HEIGHT=entero>
<PARAM NAME=nombreP1 VALUE=Valor>
<PARAM NAME=nombreP2 VALUE=OtroValor>
</APPLET>
La etiqueta <APPLET>
 Por defecto, el applet se busca en la misma carpeta
donde esté el fichero html, pero puede especificarse
otra carpeta:
<APPLET CODE=AppletSubclass.class
CODEBASE=carpeta WIDTH=entero
HEIGHT=entero>
</APPLET>
La etiqueta <APPLET>
< APPLET
[CODEBASE = codebaseURL]
CODE = appletFile
[ALT = alternateText]
[NAME = appletInstanceName]
WIDTH = pixels HEIGHT = pixels
[ALIGN = alignment]
[VSPACE = pixels] [HSPACE = pixels] >
[< PARAM NAME = appletParameter1 VALUE = value >]
[< PARAM NAME = appletParameter2 VALUE = value >]
...
[alternateHTML]
</APPLET>
Comunicación entre Applets
 Para obtener el valor de los parámetros puede
usarse el método getParameter
 public String getParameter(String name)
 Devuelve el valor del parámetro cuyo nombre es name
en la etiqueta <APPLET> de html
Applets que utilizan componentes
Swing
 Debe crearse una subclase de JApplet
 La principal diferencia entre Applet y JApplet es
que JApplet es un contenedor de nivel superior que
proporciona un panel raíz para colocar otros
componentes
 El resto de conceptos y métodos coinciden entre
Applet y JApplet
ACTIVEX
Introducción
 Tecnología de Microsoft para el desarrollo de
páginas dinámicas.
 Tiene presencia en la programación del lado del
servidor y del lado del cliente, aunque existan
diferencias en el uso en cada uno de esos dos casos.
Como funciona :
Cliente Servidor
• Pequeños programas que se pueden • Existen controles ActiveX del servidor
incluir dentro de páginas web y la gente que conozca ASP seguro que
• Sirven para realizar acciones de los utiliza ya, aunque sea sin darse
diversa índole. cuenta.
• Ejemplo  calendario, para • Por ejemplo conexión con una base
implementar un sistema de FTP, etc. de datos,
• Son un poco parecidos a los • Los componentes ActiveX no son otra
Applets de Java en su funcionamiento, cosa que los componentes de servidor
aunque una diferencia fundamental es que estamos comentando.
la seguridad, pues un Applet de Java • Por otra parte, están los controles
no podrá tomar privilegios para realizar ActiveX (controles esta vez, no
acciones malignas (como borrarnos el componentes) que son pequeños
disco duro) y los controles ActiveX sí programas que se insertan en las
que pueden otorgarse permisos para páginas web a través de las etiquetas
hacer cualquier cosa. <OBJECT> y <PARAM>.
• Los controles ActiveX son particulares • Los controles se ponen en marcha en
de Internet Explorer el cliente, cuando se ejecutan lo hacen
dentro de la página web.
Desarrollo de ActiveX
 Los controles ActiveX se desarrollan con entornos
de Microsoft para la creación de aplicaciones
Windows, como pueden ser Visual Basic Script o
Visual C.
Historia
  El origen de OLE (Object Linking and Embedding)  proyecto
de un grupo de desarrollo de Microsoft (mecanismo para
visualizar gráficos de MS-Graph dentro de Power Point).
  DDE (Dinamic Data Exchange), OLE 1.0  visualizar un
documento compuesto por documentos procedentes de distintos
orígenes.
 OLE 1.0 tenía grandes limitaciones, y crearon OLE 2.0 y la
especificación COM (Component Object Model), es decir el
modelo de desarrollo orientado a componentes de Microsoft.
 Microsoft presentó OLE 2.0 y COM a finales de 1993, base para
su estrategia de futuro basada en OLE 2.0. y los protocolos COM
y DCOM (Distributed COM), en los que ahora está sustentada.
Tipos de ActiveX OLE

OLE/Active
X Document

OLE/Active
OLE/Active
X
X Control
Automation
ActiveX
ActiveX ActiveX
Automatio
Document Control
n
Evolución de los VBX Mecanismo  dos
Más antiguo de los aplicaciones o
de Visual Basic,
servicios OLE y con el componentes pueden
incorporando la
que la gente más comunicarse.
tecnología OLE para
identifica estos
independizarlos del
protocolos.
cliente Viene a sustituir a DDE,
teniendo además un
interfaz orientado a
objeto.
Permite insertar un Controles visuales que
documento, o parte de extienden las Con ActiveX Automation
él, dentro de otro posibilidades nativas de creamos por medio de
documento un entorno de desarrollo órdenes sencillas un
objeto del tipo deseado
Funcionamiento
 <OBJECT ID="xxx" CLASSID="yyy"><OBJECT>
 Siendo xxx el nombre el control ActiveX y yyy una larga cadena de caracteres
alfanuméricos.
 Pues bien, al ejecutar el control el navegador busca en su libería de controles
ya preinstalados (archivos con extensión *.ocx en el directorio SYSTEM) los
datos del control ActiveX, pues conoce el nombre y su clasificación.
 Si lo tiene instalado lo ejecutará con los parámetros que tenga en las etiquetas
<PARAM NAME="xxx" VALUE="yyy">; si no lo tiene intentará buscarlo
por la red de una manera automática, y tras eso será descargado a nuestro
ordenador (desde un servidor de Microsoft o desde la propia página WEB
donde se está utilizando el control ActiveX sobre todo si se ha diseñado con
un programa como VB 5.0).
 Algunos controles tienen una certificación de seguridad llamada
Authenticode
Ejemplo en Servidor propio:
 http://www.tarjeal.com/reportes/msig.html
Ejemplo de código:
<HTML>
<OBJECT ID=label1 WIDTH=137 HEIGHT=24
CLASSID=CLSID:978C9E23-D4B0-11CE-BF2D-00AA003F40D0>
<PARAM NAME=Caption VALUE=MSIG - ActiveX>
</OBJECT><BR>
base:
<OBJECT ID=base WIDTH=96 HEIGHT=24
CLASSID=CLSID:8BD21D10-EC42-11CE-9E0D-00AA006002F3>
</OBJECT><BR>

altura:
<OBJECT ID=altura WIDTH=96 HEIGHT=24
CLASSID=CLSID:8BD21D10-EC42-11CE-9E0D-00AA006002F3>
</OBJECT><BR>
area=:
<OBJECT ID=area WIDTH=96 HEIGHT=24
CLASSID=CLSID:8BD21D10-EC42-11CE-9E0D-00AA006002F3>
</OBJECT><BR>
<FORM NAME=msig>
no olvidar hacer click varias veces en ok<br>
<INPUT TYPE=BUTTON NAME=calculo VALUE=OK>
<SCRIPT FOR=calculo EVENT=onclick LANGUAGE=javascript>
//declaracion de variables y comentario tambien
var alfa;
alfa=(base.VALUE * altura.VALUE)/2;
//se puede omitir la variable alfa y hacer la operacion
//directamente en el tercer textbox, pero hay que aprender de todo
area.VALUE=alfa;
</SCRIPT></FORM>
<OBJECT ID="MediaPlayer1" WIDTH=239 HEIGHT=207
CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95">
<PARAM NAME="DefaultFrame" VALUE="">
PARAM NAME="DisplayBackColor" VALUE="0">
<PARAM NAME="DisplayForeColor" VALUE="16777215">
<PARAM NAME="DisplayMode" VALUE="0">
<PARAM NAME="DisplaySize" VALUE="0">
<PARAM NAME="Enabled" VALUE="-1">
<PARAM NAME="SelectionStart" VALUE="-1">
PARAM NAME="SelectionEnd" VALUE="-1">
<PARAM NAME="ShowControls" VALUE="-1">
<PARAM NAME="ShowAudioControls" VALUE="-1">
<PARAM NAME="ShowDisplay" VALUE="0">
<PARAM NAME="Volume" VALUE="-600">
</OBJECT>
</HTML>

You might also like