Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAmada Beato Modificado hace 10 años
1
1 TEMA 6. Applets y servlets 1.Introducción 2.Applets 3.Servlets
2
2 Bibliografía Bobadilla, J. y otros. Comunicaciones y Bases de Datos en Java. Capítulos 1 y 6.
3
3 Applet Applet –aplicación Java diseñada específicamente para ser ejecutada en el contexto de un navegador web. Servlet Servlet –aplicación Java diseñada para ser ejecutada en el contexto de una servidor web. 1. Introducción Conceptos
4
4 1. Introducción Esquema Navegador Servidor APPLET SERVLET
5
5 Una applet se ejecuta en el contexto de un navegador. Una applet se ejecuta en el contexto de un navegador. Un navegador es un programa cliente que sabe interpretar el lenguaje html (Hiper Text Mark Languaje) Un navegador es un programa cliente que sabe interpretar el lenguaje html (Hiper Text Mark Languaje) Ejemplo de una página en HTML Ejemplo de una página en HTML<HTML> Applet de Prueba Applet de Prueba <BODY> </OBJECT></BODY></HTML> 2. Applets HTML
6
6 Los applets están pensados para incluirse en páginas HTML. Los applets están pensados para incluirse en páginas HTML. Usando la etiqueta u, especificamos (como mínimo) la localización de la subclase de Applet o JApplet y las dimensiones de la ventana donde se visualizará el applet. Usando la etiqueta u, especificamos (como mínimo) la localización de la subclase de Applet o JApplet y las dimensiones de la ventana donde se visualizará el applet. Cuando una navegador que soporta Java encuentra una etiqueta Applet, reserva espacio en la pantalla para el applet, carga la subclase Applet dentro del ordenador donde se está ejecutando el navegador y crea una instancia de la subclase Applet Cuando una navegador que soporta Java encuentra una etiqueta Applet, reserva espacio en la pantalla para el applet, carga la subclase Applet dentro del ordenador donde se está ejecutando el navegador y crea una instancia de la subclase Applet 2. Applets Ejecutar un applet
7
7 La etiqueta APPLET está desaprobado (con todos sus atributos) en favor de OBJECT. A continuación se presentan los diferentes atributos que posee la etiqueta: La etiqueta APPLET está desaprobado (con todos sus atributos) en favor de OBJECT. A continuación se presentan los diferentes atributos que posee la etiqueta:desaprobado (con todos sus atributos)OBJECTdesaprobado (con todos sus atributos)OBJECT codebase = uri [CT] codebase = uri [CT]uri[CT]uri[CT] –Este atributo especifica el URI base para el applet. Si este atributo no se especifica, entonces su valor por defecto es el mismo URI base que el del documento actual. code = cdata [CS] code = cdata [CS]cdata[CS]cdata[CS] –Este atributo especifica o bien el nombre del fichero class que contiene la subclase Applet compilada del applet, o bien la ruta para obtener la clase, incluyendo al propio fichero class. Se interpreta con respecto al URI base (codebase) del applet. Deben estar presentes o bien code o bien object. codeobjectcodeobject 2. Applets Etiqueta applet y object en html
8
8 name = cdata [CS] name = cdata [CS]cdata[CS]cdata[CS] –Este atributo especifica un nombre para la instancia del applet, lo cual hace posible que los applets de la misma página se encuentren (y se comuniquen) entre sí. archive = lista de uris [CT] archive = lista de uris [CT]lista de uris[CT]lista de uris[CT] –Esta lista especifica una lista de URIs separados por comas de archivos que contienen clases y otros recursos que serán "precargados". 2. Applets Etiqueta applet y object en html
9
9 width = longitud [CI] width = longitud [CI]longitud[CI]longitud[CI] –Este atributo especifica la anchura inicial del área de presentación del applet (sin incluir las ventanas o cuadros de diálogo que cree el applet). height = longitud [CI] height = longitud [CI]longitud[CI]longitud[CI] –Este atributo especifica la altura inicial del área de presentación del applet (sin incluir las ventanas o cuadros de diálogo que cree el applet). 2. Applets Etiqueta applet y object en html
10
10 Atributos definidos en otros lugares Atributos definidos en otros lugares –id, class (identificadores a nivel de documento) idclassidentificadores a nivel de documentoidclassidentificadores a nivel de documento –title (título del elemento) titletítulo del elementotitletítulo del elemento –style (información de estilo en línea) styleinformación de estilo en líneastyleinformación de estilo en línea –alt (texto alternativo) alttexto alternativoalttexto alternativo –align, hspace, vspace (presentación visual de objetos, imágenes y aplicaciones) alignhspacevspacepresentación visual de objetos, imágenes y aplicacionesalignhspacevspacepresentación visual de objetos, imágenes y aplicaciones 2. Applets Etiqueta applet y object en html
11
11 EJEMPLO DESAPROBADO: EJEMPLO DESAPROBADO: Applet Java que dibuja burbujas animadas. </APPLET> Este ejemplo puede reformularse con OBJECT de esta forma: Este ejemplo puede reformularse con OBJECT de esta forma:OBJECT Applet Java que dibuja burbujas animadas. </OBJECT> 2. Applets Etiqueta applet y object en html
12
12 Todo applet se implementa creando una subclase de la clase Applet o JApplet. Todo applet se implementa creando una subclase de la clase Applet o JApplet. La siguiente figura muestra el árbol de herencia de la clase Applet. La siguiente figura muestra el árbol de herencia de la clase Applet. 2. Applets Introducción
13
13 import java.awt.*; import java.applet.*; public class Hola extends Applet { public void paint (Graphics g) { g.drawString("Hola mundo", 10,15);}} g.drawString("Hola mundo", 10,15);}} 2. Applets Ejemplo “hola mundo”
14
14 Fijémonos que no tenemos en el applet ningún método main(). Está todo en la clase base Applet. Fijémonos que no tenemos en el applet ningún método main(). Está todo en la clase base Applet.<HTML> Applet de Prueba Applet de Prueba <BODY> </OBJECT></BODY></HTML> 2. Applets Ejemplo “hola mundo”
15
15 El navegador crea una instancia de la clase principal y le remite un conjunto de mensajes preestablecidos en respuesta a distintas situaciones. El navegador crea una instancia de la clase principal y le remite un conjunto de mensajes preestablecidos en respuesta a distintas situaciones. Todo applet debe ceñirse a su ciclo de vida. Todo applet debe ceñirse a su ciclo de vida. Cuando se crea la instancia se ejecuta el método init. El navegador invoca paint cada vez que se necesita redibujar una área de interacción. Cuando se crea la instancia se ejecuta el método init. El navegador invoca paint cada vez que se necesita redibujar una área de interacción. 2. Applets Ciclo de vida
16
16 init(): Se llama cuando se inicializa por primera vez el applet. init(): Se llama cuando se inicializa por primera vez el applet. start(): Llamado tras el anterior y cada vez que el navegador visita el applet. start(): Llamado tras el anterior y cada vez que el navegador visita el applet. stop(): Llamado cada vez que se abandona un applet. stop(): Llamado cada vez que se abandona un applet. paint(): Cada vez que se quiere pintar el área de interacción. paint(): Cada vez que se quiere pintar el área de interacción. destroy(): Llamado al descargarse el applet de la página. destroy(): Llamado al descargarse el applet de la página. 2. Applets Ciclo de vida init startstop destroy
17
17 import java.awt.*; import java.applet.*; public class MasApplets extends Applet { String s; int inits = 0; int starts = 0; int stops = 0; public void init() { inits++; } public void start() { starts++; } public void stop() { stops++; } public void paint(Graphics g) { s = "inits: " + inits + ", starts: " + starts +", stops: " + stops; g.drawString(s, 10, 10); }} 2. Applets Ejemplo del ciclo de vida
18
18 No todos los applets necesitan sobreescribir todos estos métodos. No todos los applets necesitan sobreescribir todos estos métodos. El método init es útil para una inicialización de una vez que tarde mucho tiempo. El método init es útil para una inicialización de una vez que tarde mucho tiempo. En general, el método init debería contener el código que normalmente pondríamos en un constuctor. La razón por la que los applets no deberían tener constructores es que un applet no tiene garantizado un entorno completo hasta que se llame a su método init. En general, el método init debería contener el código que normalmente pondríamos en un constuctor. La razón por la que los applets no deberían tener constructores es que un applet no tiene garantizado un entorno completo hasta que se llame a su método init. Por ejemplo, la carga de imágenes en un applet simplemente no funciona dentro de un constructor de applet. Por otro lado, el método init, es una gran lugar para llamar a los métodos de carga de imágenes ya que los métodos se ejecutan rápidamente. Por ejemplo, la carga de imágenes en un applet simplemente no funciona dentro de un constructor de applet. Por otro lado, el método init, es una gran lugar para llamar a los métodos de carga de imágenes ya que los métodos se ejecutan rápidamente. 2. Applets Ciclo de vida
19
19 Todo applet que haga algo después de la inicialización (excepto en respuesta a acciones de usuario) debe sobreescribir el método start. Todo applet que haga algo después de la inicialización (excepto en respuesta a acciones de usuario) debe sobreescribir el método start. La mayoría de los applet que sobreescriben start deberían sobreescribir el método stop. Por ejemplo, un applet que muestra animaciones debería intentar parar la animación cuando el usuario no la está mirando. La mayoría de los applet que sobreescriben start deberían sobreescribir el método stop. Por ejemplo, un applet que muestra animaciones debería intentar parar la animación cuando el usuario no la está mirando. Muchos applets no necesitan sobreescribir el método destroy, ya que su método stop (al que se le llama antes de destroy) hace todo lo necesario para parar la ejecución del applet. Muchos applets no necesitan sobreescribir el método destroy, ya que su método stop (al que se le llama antes de destroy) hace todo lo necesario para parar la ejecución del applet. 2. Applets Ciclo de vida
20
20 Todo navegador implementa políticas de seguridad para evitar que los applets comprometan la seguridad del sistema Todo navegador implementa políticas de seguridad para evitar que los applets comprometan la seguridad del sistema Todo navegador tiene un objeto SecurityManager que implementa sus políticas de seguridad. Cuando un SecurityManager detecta una violación, lanza una SecurityException. Todo navegador tiene un objeto SecurityManager que implementa sus políticas de seguridad. Cuando un SecurityManager detecta una violación, lanza una SecurityException. Nuestro applet puede capturar dicha excepción y reaccionar de la forma apropiada. Nuestro applet puede capturar dicha excepción y reaccionar de la forma apropiada. 2. Applets Restricciones de seguridad
21
21 Un applet no puede cargar librerías o definir métodos nativos. Un applet no puede cargar librerías o definir métodos nativos. Normalmente no puede leer o escribir ficheros en el host en el que se está ejecutando. Normalmente no puede leer o escribir ficheros en el host en el que se está ejecutando. No puede hacer conexiones de red excepto con el host desde el que vino. No puede hacer conexiones de red excepto con el host desde el que vino. 2. Applets Restricciones de seguridad
22
22 No puede arrancar ningún programa en el host donde se está ejecutando. No puede arrancar ningún programa en el host donde se está ejecutando. No puede leer ciertas propiedades del sistema. No puede leer ciertas propiedades del sistema. Las ventanas que muestran los applets son distintas a las que muestra una aplicación. Las ventanas que muestran los applets son distintas a las que muestra una aplicación. 2. Applets Restricciones de seguridad
23
23 Normalmente pueden hacer conexiones de red hacia el host del que vinieron. Normalmente pueden hacer conexiones de red hacia el host del que vinieron. Los applets que se ejecutan dentro de un navegador Web pueden hacer fácilmente que se muestren documentos HTML. Los applets que se ejecutan dentro de un navegador Web pueden hacer fácilmente que se muestren documentos HTML. Los Applets pueden invocar métodos públicos de otros applets que haya en la misma página. Los Applets pueden invocar métodos públicos de otros applets que haya en la misma página. 2. Applets Capacidades de los applets
24
24 Los Applets que se cargan desde el sistema local de ficheros (desde un directorio en el CLASSPATH del usuario) no tienen ninguna de las restricciones que tienen los applets cargados a través de la red. Los Applets que se cargan desde el sistema local de ficheros (desde un directorio en el CLASSPATH del usuario) no tienen ninguna de las restricciones que tienen los applets cargados a través de la red. Aunque la mayoría de los applets detienen su ejecución una vez que hemos abandonado su página, no tienen porque hacerlo. Aunque la mayoría de los applets detienen su ejecución una vez que hemos abandonado su página, no tienen porque hacerlo. 2. Applets Capacidades de los applets
25
25 Los métodos getCodeBase y getDocumentBase de Applet obtienen información del servidor de donde vienen el applet y la página HTML. Los métodos getCodeBase y getDocumentBase de Applet obtienen información del servidor de donde vienen el applet y la página HTML. La clase Applet define formas convenientes de métodos para cargar imágenes y sonidos que nos permiten especificar ficheros de imágenes y sonidos en relación a un URL base. La clase Applet define formas convenientes de métodos para cargar imágenes y sonidos que nos permiten especificar ficheros de imágenes y sonidos en relación a un URL base. 2. Applets Cargar ficheros de datos
26
26 Para crear un objeto Image usando el fichero de imagen a.gif bajo el directorio imgDir, podemos usar el siguiente código: Para crear un objeto Image usando el fichero de imagen a.gif bajo el directorio imgDir, podemos usar el siguiente código: Image image = getImage(getCodeBase(), "imgDir/a.gif"); "imgDir/a.gif"); 2. Applets Cargar ficheros de datos directorio class file imgDir a.gif
27
27 Los applets muestran líneas de estado con el método showStatus. Los applets muestran líneas de estado con el método showStatus.showStatus showStatus("MiApplet: Cargando fichero " + file); fichero " + file); 2. Applets Mostrar cadenas de estado
28
28 Con los métodos showDocument de AppletContext (se obtiene mediante el método getAppletContext), un applet puede decirle al navegador qué URL mostrar y en qué ventana del navegador. Con los métodos showDocument de AppletContext (se obtiene mediante el método getAppletContext), un applet puede decirle al navegador qué URL mostrar y en qué ventana del navegador. public void showDocument(java.net.URL url) public void showDocument(java.net.URL url, String targetWindow) targetWindow) 2. Applets Mostrar documentos en el navegador
29
29 Los applets pueden encontrar otros applets y enviarles mensajes, con las siguientes restricciones de seguridad: Los applets pueden encontrar otros applets y enviarles mensajes, con las siguientes restricciones de seguridad: –Muchos navegadores requieren que los applets sean originarios desde el mismo servidor. –Muchos navegadores además requieren que los applets procedan del mismo directorio del servidor (el mismo code base). –El API Java requiere que los applets se estén ejecutando en la misma página y en la misma ventana del navegador. 2. Applets Enviar mensajes a otros applets
30
30 El método getApplet (método de AppletContext, se obtiene mediante getAppletContext ) busca a través de todos los applets de la página actual para ver si uno de ellos tiene el nombre especificado. El método getApplet (método de AppletContext, se obtiene mediante getAppletContext ) busca a través de todos los applets de la página actual para ver si uno de ellos tiene el nombre especificado. Por defecto, un applet no tiene nombre. Para que un applet tenga nombre, se debe especificar en el código HTML que añade el applet a la página. Mediante el atributo name. Por defecto, un applet no tiene nombre. Para que un applet tenga nombre, se debe especificar en el código HTML que añade el applet a la página. Mediante el atributo name. 2. Applets Encontrar un applet por nombre
31
31 La clase Applet y el interface AudioClip proporcionar un soporte básico para ejecutar sonidos. La clase Applet y el interface AudioClip proporcionar un soporte básico para ejecutar sonidos.AppletAudioClipAppletAudioClip Actualmente, el API sólo soporta un formato de sonido: ficheros de 8 bit, µlaw, 8000 Hz, one-channel, Sun ".au". Actualmente, el API sólo soporta un formato de sonido: ficheros de 8 bit, µlaw, 8000 Hz, one-channel, Sun ".au". 2. Applets Ejecutar sonidos
32
32 getAudioClip(URL) getAudioClip(URL) getAudioClip(URL) –Devuelve un objeto que implementa el interface AudioClip. play(URL) play(URL) play(URL) –Ejecutar el AudioClip correspondiente a la URL especificada. El interface AudioClip define los siguientes métodos: El interface AudioClip define los siguientes métodos: –loop loop Empieza la ejecución del clip repetidamente. Empieza la ejecución del clip repetidamente. –play play Ejecuta el sonido una vez. Ejecuta el sonido una vez. –stop stop Para el clip. Para el clip. 2. Applets Métodos para el sonido
33
33 Los parámetros son a los applets lo que los argumentos de la línea de comandos a las aplicaciones. Los parámetros son a los applets lo que los argumentos de la línea de comandos a las aplicaciones. Permiten al usuario personalizar la operación del applet. Permiten al usuario personalizar la operación del applet. Definiendo parámetros, podemos incrementar la flexibilidad de nuestro applet, haciendo que trabaje en múltiples situaciones sin tener que codificarlo y recompilarlo de nuevo. Definiendo parámetros, podemos incrementar la flexibilidad de nuestro applet, haciendo que trabaje en múltiples situaciones sin tener que codificarlo y recompilarlo de nuevo. 2. Applets Parámetros
34
34 </APPLET> 2. Applets Ejemplo
35
35 public class CalendarioMes extends Applet { public void init() { public void init() { String MesSeleccionado = getParameter("Mes"); String MesSeleccionado = getParameter("Mes"); String AnioSeleccionado = getParameter("Anio"); String AnioSeleccionado = getParameter("Anio"); int ValorMes = Integer.parseInt(MesSeleccionado); int ValorMes = Integer.parseInt(MesSeleccionado); int ValorAnio = Integer.parseInt(AnioSeleccionado); int ValorAnio = Integer.parseInt(AnioSeleccionado); add(new Label(MesSeleccionado)); add(new Label(MesSeleccionado)); add(new Label(AnioSeleccionado));}} add(new Label(AnioSeleccionado));}} 2. Applets Ejemplo
36
36 Los applets pueden leer las siguientes propiedades del sistema: Los applets pueden leer las siguientes propiedades del sistema: –"file.separator"Separador de fichero (por ejemplo, "/") –"java.class.version"Número de versión de la clase Java –"java.vendor"Strings Específico del Vendedor de Java –"java.vendor.url"URL del Vendedor de Java –"java.version"Número de Versión de Java –"line.separator"Separador de Líneas"os.arch"Arquitectura del Sistema Operativo –"os.name"Nombre del Sistema Operativo –"path.separator"Separador de Path (por ejmplo, ":") Para leer una propiedad del sistema desde dentro de un applet, usamos el método getProperty de la clase System. Por ejemplo: Para leer una propiedad del sistema desde dentro de un applet, usamos el método getProperty de la clase System. Por ejemplo: String newline = System.getProperty("line.separator"); 2. Applets Propiedades del sistema
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.