Applets - PowerPoint PPT Presentation

About This Presentation
Title:

Applets

Description:

Applets Carlos Bazilio Depto de Ci ncia e Tecnologia P lo Universit rio de Rio das Ostras Universidade Federal Fluminense T picos Abordados Paradigma de ... – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 37
Provided by: www2IcUf5
Category:
Tags: applets | java

less

Transcript and Presenter's Notes

Title: Applets


1
Applets
  • Carlos Bazilio
  • Depto de Ciência e Tecnologia
  • Pólo Universitário de Rio das Ostras
  • Universidade Federal Fluminense

2
Tópicos Abordados
  • Paradigma de Requisições Web
  • Conceito de Applet
  • Implementação de um Applet
  • Exemplos de Applets
  • Limitações
  • Aspectos de Segurança

3
Paradigma de Requisições Web
  • Cliente envia requisição
  • para um Servidor
  • Servidor responde
  • requisição de um Cliente
  • Formatos de resposta
  • Dados estáticos
  • Dados processados no Servidor
  • Dados a serem processados no Cliente

4
Paradigma de Requisições Web Formatos de Resposta
  • Dados estáticos
  • HTML básico, estático
  • Dados processados no
  • Servidor
  • Programas Java que rodam
  • no servidor e constróem
  • respostas para requisições (servlets)
  • Dados processados no Cliente
  • Programas Java que rodam nos clientes (applets)

5
Motivação Inicial de Java
  • Java foi pensada, inicialmente, como uma
    linguagem que permitiria a execução de programas
    sem instalação
  • Estes programas (bytecodes) seriam baixados da
    internet e executados na máquina cliente
  • Ou seja, para tal, a máquina cliente necessitaria
    de acesso à internet e da máquina virtual (JVM)
    para execução dos bytecodes
  • Applets são uma forma de realização deste objetivo

6
Conceito de Applet
  • Um applet é um programa Java que pode ser
    incluído em uma página HTML da mesma forma que
    uma imagem ou algum outro recurso.
  • Exemplo (HTML básico)

lthtmlgt ltheadgt lttitlegtHTML Básicolt/titlegt
lt/headgt ltbodygt Olá mundo !!! lt/bodygt lt/htmlgt
7
Conceito de Applet
  • Exemplo (HTML incluindo uma imagem)
  • O arquivo .html deve estar no mesmo diretório que
    a imagem, neste exemplo

lthtmlgt ltheadgt lttitlegtHTML com imagem
incluídalt/titlegt lt/headgt ltbodygt ltimg
src"maca.jpg" title"maca/gt lt/bodygt lt/htmlgt
8
Conceito de Applet
  • Exemplo (HTML incluindo um applet)

lthtmlgt ltheadgt lttitlegtHTML incluindo um
appletlt/titlegt lt/headgt ltbodygt ltapplet
codeaulas.MeuApplet width800 height600/gt
lt/bodygt lt/htmlgt
9
Conceito de Applet
  • Apesar do HTML com a inclusão da imagem ter
    obtido o mesmo resultado do applet, o resultado
    do applet foi obtido pela classe
    aulas.MeuApplet.
  • Observe que não fazemos referência explícita ao
    arquivo maca.jpg, como no exemplo da imagem.

lthtmlgt ltheadgt lttitlegtHTML incluindo um
appletlt/titlegt lt/headgt ltbodygt ltapplet
codeaulas.MeuApplet width800 height600/gt
lt/bodygt lt/htmlgt
10
Conceito de Applet
lthtmlgt ltheadgt lttitlegtHTML incluindo um
appletlt/titlegt lt/headgt ltbodygt ltapplet
codeaulas.MeuApplet width800 height600/gt
lt/bodygt lt/htmlgt
  • A tag ltappletgt possui os atributos code (classe
    que implementa o applet), width (largura do
    applet) e height (altura do applet), os quais são
    obrigatórios
  • Outros atributos align (alinha o applet dentro
    da página web) name (para ser referenciado
    dentro da página html) codebase (diretório base
    para referenciar um applet) archive (o applet é
    distribuído como um JAR)

11
Execução do Applet
  • Para execução do applet, crie um arquivo html com
    o conteúdo apresentado
  • Coloque o código java compilado (.class) no mesmo
    diretório do arquivo html
  • Caso o código java seja definido dentro de um
    pacote (package), inclua o código compilado na
    hierarquia de diretórios equivalente ao pacote
  • Por exemplo, se o código java está definido no
    pacote package cursojava.applets, e o html
    está no diretório c\htmls, os .class deverão
    estar em c\htmls\cursojava\applets

12
Execução do Applet
  • Inicialmente, os browsers disponibilizavam
    internamente pequenos interpretadores para Java
  • A tecnologia Java Plug-in estende a
    funcionalidade de um browser, permitindo que
    applets e outros recursos sejam executados
    utilizando a JRE da máquina
  • Quando um navegador não reconhece um applet, as
    tags ltappletgt são ignoradas e, o que está dentro
    delas, é exibido
  • Com isso, este se torna um local adequado para
    colocar avisos de mal funcionamento

13
Execução do Applet
lthtmlgt ltheadgt lttitlegtHTML incluindo um
appletlt/titlegt lt/headgt ltbodygt ltapplet
codeaulas.MeuApplet width800 height600gt
Neste local deveria aparecer um applet !!
lt/appletgt lt/bodygt lt/htmlgt
14
Implementação de um Applet
  • Para implementar um applet, devemos estender uma
    das 2 últimas classes da hierarquia abaixo

java.lang.Object java.awt.Component java.a
wt.Container java.awt.Panel java.a
pplet.Applet javax.swing.JApplet
  • http//java.sun.com/j2se/1.4.2/docs/api/java/apple
    t/Applet.html

15
Implementação de um Appletjava.applet.Applet
  • Sub-classe de Panel, do pacote gráfico awt
  • É, essencialmente, um painel inserido em uma
    página HTML, num navegador
  • Embora restrito em algumas funcionalidades (por
    uma questão de segurança), pode interagir com o
    usuário como qualquer aplicação gráfica awt

16
Implementação de um Applet Alguns métodos da
classe java.applet.Applet
  • void init() / void destroy()
  • Métodos duais que inicializam/destróem um applet
  • O método init() é chamado quando uma página com
    uma applet é carregada
  • O método destroy() é chamado quando o navegador é
    fechado
  • void start() / void stop()
  • Métodos acionados quando um applet deve ser
    executado/interrompido
  • O método start() é chamado quando uma página que
    contém um applet é aberta (imediatamente após o
    init() e nas cargas seguintes da página)
  • O método stop() é chamado quando o usuário deixa
    a página que possui o applet

17
Implementação de um Applet Alguns métodos da
classe java.applet.Applet
  • URL getCodeBase()
  • Retorna a URL base do diretório de onde o applet
    foi executado
  • String getParameter(String name)
  • Recupera o valor de um parâmetro passado no HTML
  • void play(URL url)
  • Toca um arquivo de áudio referenciado por um url
    absolutovoid
  • play(URL url, String file)
  • Toca um arquivo de áudio file referenciado de
    forma relativa à url
  • Image getImage(URL url, String name)
  • Retorna a imagem especificada (pode ser exibida
    com o método paint(Graphics g))

18
Ciclo de Vida de um Applet
  • init() e destroy() são usualmente utilizados para
    alocação e desalocação de recursos,
    respectivamente, como arquivos, memória, etc.
  • start() e stop() são acionados quando um applet é
    exibido e ocultado no navegador, respectivamente.

19
Exemplo de Applet
  • Neste primeiro exemplo, temos a exibição de um
    texto no navegador

import java.awt. import java.applet. public
class AppletSimples extends Applet public void
init() String msg "Olá Mundo !!!" Label
l new Label(msg) l.setAlignment(Label.CENTER)
setLayout(new BorderLayout()) add(l,
BorderLayout.CENTER)
20
Exemplo de AppletSaída no Navegador
21
Exemplo de Applet (2)
  • Podemos modificar o primeiro exemplo alterando de
    forma aleatória a cor de fundo do painel e
    passando a mensagem por parâmetro

import java.awt. import java.applet. public
class AppletSimples extends Applet public void
init() int c (int)(Math.random()
1000000) this.setBackground(new
Color(c)) Label l new Label(this.getParameter
("Texto")) l.setAlignment(Label.CENTER) this
.setLayout(new BorderLayout()) this.add(l,
BorderLayout.CENTER)
22
Exemplo de Applet (2)
  • HTML com a mensagem passada por parâmetro

lthtmlgt ltheadgt lttitlegtHTML incluindo um
appletlt/titlegt lt/headgt ltbodygt ltapplet
codeaulas.AppletSimples width200 height150gt
ltparam name"Mensagem" value"Olá por
Parâmetro!"gt lt/appletgt lt/bodygt lt/htmlgt
23
Exemplo de Applet (2)Saída no Navegador
  • Atualize através do navegador para ver as cores
    se alternando

24
Exemplo de Applet (3)
  • Neste exemplo, adicionamos um botão e fazemos a
    própria applet tratar os eventos do botão

public class AppletSimples extends Applet
implements ActionListener public void init()
Label l new Label(this.getParameter("Mensage
m")) this.add(l) Button bt new
Button() bt.setLabel("Teste") bt.addActionLi
stener(this) this.add(bt) public void
actionPerformed(ActionEvent arg0) Color
colornew Color ((int)(Math.random()10000000))
this.setBackground(color)
25
Exemplo de Applet (3)Saída no Navegador
  • Clique no botão para alternar a cor de fundo do
    painel

26
Testando um Applet
  • Do Eclipse
  • Selecione o arquivo que contém o applet
  • Clique com o botão direito e, no item Run As
    aparecerá a opção Java Applet
  • Da linha de comando
  • Na instalação do JDK há um aplicativo chamado
    appletviewer, o qual recebe um arquivo html como
    parâmetro (página do applet)
  • Do browser
  • Basta abrir o arquivo html que contém o applet

27
Testando um Applet
  • Há uma cache para carga de classes applet
  • Esta cache costuma dificultar a atualização de
    versões de uma applet em memória
  • A primeira alternativa é fechar o browser
  • A segunda é disparar uma console do plug-in java
    e realizar o esvaziamento da cache manualmente
  • No Firefox, selecione menu Tools gt Error
    Console
  • Na caixa de texto digite java e tecle ltEntergt
    ou pressione botão Evaluate
  • Daí, basta clicar na tecla x

28
Transformação de Aplicações Swing/Awt em Applets
  • O método main é substituído pelo método init do
    applet
  • O frame não precisa ser criado, já que o applet é
    exibido no navegador
  • Copie o conteúdo do construtor da janela do frame
    para dentro do método init
  • Alguns métodos deixam de ter importância quando
    são utilizados como applets, pois há comandos
    html específicos
  • setTitle, setSize, setDefaultCloseOperation,
    setVisible

29
Limitações
  • Applets que são executadas remotamente têm
    comportamento restringido na máquina cliente
  • Algumas possibilidades exibição de imagens,
    reprodução de som, capturar eventos de mouse e
    teclado, enviar entrada do usuário de volta para
    o host (máquina que hospeda o applet), etc
  • Estas restrições visam garantir segurança na
    execução dessas aplicações
  • Há um gerenciador de segurança na máquina virtual
    java que monitora a execução dessas aplicações
  • Compatibilidade entre browsers
  • Melhorou com o surgimento dos plug-ins

30
Contexto dos Applets
  • Ambiente onde o applet executa (usualmente o
    navegador ou um visualizador appletviewer)
  • Eventualmente, pode ser desejável que um applet
    comande seu ambiente, por exemplo, pedindo a
    exibição de uma nova página
  • Ou seja, é interessante que o applet se comunique
    com o navegador
  • Para tal, a classe Applet possui o método
    AppletContext getAppletContext()
  • A interface AppletContext possui vários métodos
    que podem ser úteis a um applet

31
Contexto dos Applets
  • Alguns métodos da interface AppletContext
  • Applet getApplet (String name) Retorna uma
    referência para um applet com atributo name na
    mesma página
  • void showDocument (URL url, String target)
    Requisita ao browser que abra a url fornecida com
    o parâmetro target (por exemplo, target_self
    abre na própria página, enquanto target_blank
    abre numa página nova
  • void showStatus(String status) Exibe a string
    fornecida na barra de status do browser (atenção
    pois pode haver concorrência com o browser!)

32
Distribuição de Applets e Aplicativos Java
  • Applets e Aplicativos Java podem ser distribuídos
    de forma concisa através de um arquivo JAR
  • Um arquivo JAR é um arquivo compactado (formato
    zip) que possui uma estrutura especial, a qual é
    considerada pela JVM
  • Um arquivo JAR é constituído minimamente de
  • uma hierarquia de pacotes que compõe a aplicação
    (contem os arquivos .class)
  • um diretório chamado META-INF, o qual contém o
    arquivo de manifesto MANIFEST.MF

33
JAR Arquivo de Manifesto
  • Um arquivo de manifesto simplesmente descreverá o
    conteúdo do JAR
  • A primeira linha normalmente contém a versão do
    arquivo de manifesto
  • Manifest-Version 1.0
  • Este arquivo é dividido em seções, as quais são
    separadas por linhas em branco A primeira seção
    é a principal e define o que vale globalmente
  • Quando o JAR é gerado para ser um executável do
    aplicativo, este precisa conter a classe que
    inicia a aplicação
  • Main-Class br.com.siriusnet.cursojava.Navegador

34
JAR Arquivo de Manifesto
  • Outro atributo importante é o Class-Path
  • Especifica urls de bibliotecas e/ou extensões
    que uma aplicação necessita
  • Class-Path MyUtils.jar
  • Documentação http//java.sun.com/javase/6/docs/te
    chnotes/guides/jar/jar.html

35
Distribuição de Aplicativos Java Lacre (Seal)
  • Caso nossa aplicação possua membros (campos e
    métodos) públicos a um pacote, a declaração de
    uma nova classe com mesmo nome de pacote dá
    acesso a esse conteúdo público
  • Para evitar essa situação, podemos lacrar nosso
    pacote de forma que nenhuma classe possa ser
    adicionada a ela
  • No arquivo manifesto, um pacote é lacrado com o
    atributo
  • Sealed true
  • No Eclipse, na geração do JAR, a caixa de diálogo
    JAR Manifest Specification contém recursos para
    o lacre

36
Exercício
  • Exiba a calculadora criada como um applet
Write a Comment
User Comments (0)
About PowerShow.com