Download JAVA 4.2- Applets - PoliformaT

Document related concepts
no text concepts found
Transcript
Diseño Y Aplicaciones de Sistemas Distribuidos
Applets
Joan Vila
DISCA / UPV
Departament d’Informàtica de Sistemes i Computadors
Universitat Politècnica de València
Applets

¿Qué es un Applet ?
xaloc.es
Servidor
WWW
Cliente
WWW
N
referencia
echo.
html
http://xaloc.es/echo.html
echoClient.
class
echoClient.
class
migran
Servidor
“echo”
Máquina virtual
java
Procesamiento distribuido en Java
© Joan Vila
99
Applets

Applets
Son subclases de la clase Applet
– Son objetos gráficos (subclases de
Component) que se pueden ejecutar en
el entorno de un browser de red
(siempre que este incluya la máquina
virtual). El sistema gráfico AWT es
representable por el browser de red.
– Se lanzan desde un fichero en HTML:
ésto hace migrar el código del URL
remoto al browser de red.
– Tienen
algunas
limitaciones
de
seguridad en el acceso a ficheros y
recursos de la máquina a la que migran.
Procesamiento distribuido en Java
© Joan Vila
100
Applets

Ciclo de vida de un Applet: milestones
public
publicclass
classSimple
Simpleextends
extendsApplet
Applet{{
StringBuffer
StringBufferbuffer;
buffer;
public
publicvoid
voidinit()
init(){{
buffer
buffer==new
newStringBuffer();
StringBuffer();
addItem("initializing...
addItem("initializing...");
");
}}
public
publicvoid
voidstart()
start(){{
addItem("starting...
addItem("starting...");
");
}}
public
publicvoid
voidstop()
stop(){{
addItem("stopping...
addItem("stopping...")")
}}
public
publicvoid
voiddestroy()
destroy(){{
addItem("prepar.
addItem("prepar.for
forunloading...");
unloading...");
}}
Procesamiento distribuido en Java
© Joan Vila
101
Applets

Métodos para dibujo y
manejo de eventos
– Se utilizan as mismas
clases y métodos que en
AWT
– Dibujo: sobrecargar el
método paint de la clase
Component o los propios
de cada componente.
– Manejo de eventos: utilizar
las interfaces y clases del
paquete java.awt.event
void
voidaddItem(String
addItem(StringnewWord)
newWord){{
System.out.println(newWord);
System.out.println(newWord);
buffer.append(newWord);
buffer.append(newWord);
repaint();
repaint();
}}
public
publicvoid
voidpaint(Graphics
paint(Graphicsg)
g){{
//Draw
//DrawaaRectangle
Rectangle
////around
the
around theapplet's
applet'sdisplay
displayarea
area
g.drawRect(0,
g.drawRect(0,0,
0,size().width
size().width--1,
1,
size().height
size().height--1);
1);
//Draw
//Drawthe
thecurrent
currentstring
stringinside
insidethe
therectangle.
rectangle.
}}
}}
Procesamiento distribuido en Java
g.drawString(buffer.toString(),
g.drawString(buffer.toString(),5,
5,15);
15);
© Joan Vila
102
Applets

La etiqueta APPLET en HTML
<HTML>
<HEAD>
<!-- Generated by Kawa IDE -->
<TITLE>Echo Applet</TITLE>
</HEAD>
<BODY>
<H1>Hello World</H1>
<HR>
<APPLET CODEBASE="../.."
CODE="examples.echo.EchoApplet"
WIDTH=300 HEIGHT=300>
<PARAM NAME = maquina VALUE="localhost">
</APPLET>
<HR>
</BODY>
</HTML>
Procesamiento distribuido en Java
Hello.htm
<applet
archive = "prj-applet.jar"
code =
"client.EchoApplet.class"
name = "TestApplet"
width = "400"
height = "300"
hspace = "0"
vspace = "0"
align = "middle"
>
© Joan Vila
103
Applets
 El Applet echo
package examples.eco;
EchoApplet.java
import java.awt.*;
import java.rmi.*;
public class EchoApplet extends java.applet.Applet
{
String message = ”Beep, Beep. Funciona el eco ";
public void init()
{
try {
String maquina = null;
maquina = getParameter("maquina");
EchoIntRMI obj = (EchoIntRMI) Naming.lookup("//"+maquina+ "/EchoObject");
message = obj.echo();
} catch (Exception e) {
System.out.println(”EchoApplet exception: " +
e.getMessage());
}
}
Procesamiento distribuido en Java
© Joan Vila
104
Applets

El Applet echo
EchoApplet.java
package examples.eco;
public class EchoApplet extends java.applet.Applet
...
public void paint(Graphics g)
{
g.drawString(message, 25, 50);
}
}
Procesamiento distribuido en Java
© Joan Vila
105
Applets

Restricciones de seguridad
La mayoria de los visores imponen restricciones de ejecución sobre Applets “no
confiables”. Provocan SecurityException s. Las restricciones son:
–
–
–
–
–
–
No puede cargar bibliotecas (excepto java.*) y métodos nativos.
No puede leer o escribir ficheros sobre el host que ejecuta el Applet.
No puede establecer conexiones de red excepto al host del que proviene.
No puede ejecutar un programa en el host que ejecuta el Applet.
No puede obtener “demasiadas propiedades del sistema
Las ventanas de los applets traen son de apariencia diferente a las
ventanas del sistema (directorio de trabajo, directorio de usuario, nombre
usuario,..)
La forma de declarar un Applet confiable es dependiente del visor (a través de firmas o
URL’s válidos, ...)
Procesamiento distribuido en Java
© Joan Vila
106