Applets Carlos Bazilio Depto de Ciência e Tecnologia

Slides:



Advertisements
Apresentações semelhantes
IIS - Internet Information Services
Advertisements

JBanana.
I/O Carlos Bazilio Depto de Ciência e Tecnologia
UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
MONITORAMENTO DE ATAQUES A PÁGINAS HTML
Alcides Calsavara JSP JavaServer Pages Alcides Calsavara
Material cedido pelo Prof. Edgard Jamhour
Java Server Pages (JSPs)
Capítulo 16 Applets.
Tecnologias para Internet
Introdução à Programação Distribuída em Java
Seminários Avançados 3 Conceitos Java EE Servidor de aplicação Tomcat
Linguagem de Programação JAVA
Aplicativos Web Com Orientação a Objetos
Enrique P. L. de Oliveira Tecnologia para Web Enrique P. L. de Oliveira
PÁginas Dinâmicas Programação Web.
Introdução ao Desenvolvimento Web
Capítulo 2 Java Servlets.
JAVA Linguagem Ambiente de Desenvolvimento
Programação para estrutura Cliente-Servidor
Desenvolvimento de Sistemas Orientados a Aspectos
Cliente Servidor HTML JSP CSS Tomcat Servlet MySQL
Tópicos avançados em internet A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Programação Orientada a objetos II
Estrutura e Soluções WEB
Programação WEB HTML.
A autoria - II.
Webservice SoftSite Tecnologia
Conceitos de J2EE para a WEB
Prof. Alexandre Monteiro Recife
Professor: Márcio Amador
JSP e Servlets ISEP – LP2 Filipe Costa – /2004.
A Linguagem JAVA Prof. Hugo Sampaio São Luís, MA.
SISTEMAS OPERACIONAIS I
Arquitetura das JSP - Aula 2
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Aplicações Web com Orientação a Objetos
Ferramentas de Desenvolvimento WEB
RMI - JAVA.
Aplicativos Web Com Orientação a Objetos – Java Server Pages(JSP) Prof. Odair
Tutor Inteligente  Problemas:  Conteúdos para o aprendiz estudar sozinho.  Aprendizes com dificuldades de estudarem e aprenderem sozinhos.  Abandono.
Aula 1 - Fundamentos Web Servidor
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
LINGUAGENS DE PROGRAMAÇÃO WEB
Diagrama de Componentes
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Programação WEB Apresentação.
A DISCIPLINA  Objetivos do curso  Desenvolver páginas web (sites estáticos) usando a linguagem HTML  Basear o desenvolvimento destes sites usando os.
1 Tomcat / Configurações Carlos Bazilio Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense.
CONECTIVIDADE Prof.: Alessandro V. Soares Ferreira
O Que É a Internet e Como Funciona: Tecnologias Ativas Renato M.E. Sabbatini, PhD Aula.
Aguilar Figueira Dias Orientador Prof. Dr. João Bosco da Mota Alves
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução a Aplicações Web.
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas.
Daniel Garcez de Sousa 07/04/2015. Nesta apresentação abordaremos os conceitos básicos sobre o ciclo de vida de um Servlet e os HTTP servlets. No final.
Introdução à JSP JavaServer Pages Alcides Calsavara.
UNIVERSIDADE DE BRASÍLIA Faculdade de Tecnologia Departamento de Engenharia Mecânica GRACO – Grupo de Controle e Automação Implementação de uma Interface.
UNIVERSIDADE DE BRASÍLIA Faculdade de Tecnologia Departamento de Engenharia Mecânica _________________________________________________________________________________________________________________________.
Gestão da Tecnologia da Informação Lucas do Rio Verde – MT 2013.
Programação para internet através de Applet Java
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Aula 1 - Fundamentos Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros.
Conceitos Programação Web.
Aplicativos para Internet Prof. Wolley W. Silva
Introdução a Arquitetura, HTML e CSS
Desenvolvimento WEB II Aula 3 – Conexão com o Banco de Dados
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Programação Gráfica em Java Applet Aula Na aula passada vimos: Swing: Por quê Swing Estratégia MVC (model-view-controller) Componentes AWT - semelhantes.
Playframework 2.0. O que veremos hoje Playframework 2.0 Instalação Criação e Execução de uma Aplicação Estrutura de uma Aplicação Exemplos.
Transcrição da apresentação:

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 Requisições Web Conceito de Applet Implementação de um Applet Exemplos de Applets Limitações Aspectos de Segurança

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

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)

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

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): <html> <head> <title>HTML Básico</title> </head> <body> Olá mundo !!! </body> </html>

Conceito de Applet Exemplo (HTML incluindo uma imagem): O arquivo .html deve estar no mesmo diretório que a imagem, neste exemplo <html> <head> <title>HTML com imagem incluída</title> </head> <body> <img src="maca.jpg" title="maca“/> </body> </html>

Conceito de Applet Exemplo (HTML incluindo um applet): <html> <head> <title>HTML incluindo um applet</title> </head> <body> <applet code=aulas.MeuApplet width=800 height=600/> </body> </html>

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. <html> <head> <title>HTML incluindo um applet</title> </head> <body> <applet code=aulas.MeuApplet width=800 height=600/> </body> </html>

Conceito de Applet <html> <head> <title>HTML incluindo um applet</title> </head> <body> <applet code=aulas.MeuApplet width=800 height=600/> </body> </html> A tag <applet> 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)

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”

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 <applet> são ignoradas e, o que está dentro delas, é exibido Com isso, este se torna um local adequado para colocar avisos de mal funcionamento

Execução do Applet <html> <head> <title>HTML incluindo um applet</title> </head> <body> <applet code=aulas.MeuApplet width=800 height=600> Neste local deveria aparecer um applet !! </applet> </body> </html>

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.awt.Container java.awt.Panel java.applet.Applet javax.swing.JApplet http://java.sun.com/j2se/1.4.2/docs/api/java/applet/Applet.html

Implementação de um Applet java.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

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

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))

Ciclo de Vida de um Applet init() start() stop() destroy() 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.

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); }

Exemplo de Applet Saída no Navegador

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); }

Exemplo de Applet (2) HTML com a mensagem passada por parâmetro <head> <title>HTML incluindo um applet</title> </head> <body> <applet code=aulas.AppletSimples width=200 height=150> <param name="Mensagem" value="Olá por Parâmetro!"> </applet> </body> </html>

Exemplo de Applet (2) Saída no Navegador Atualize através do navegador para ver as cores se alternando

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("Mensagem")); this.add(l); Button bt = new Button(); bt.setLabel("Teste"); bt.addActionListener(this); this.add(bt); } public void actionPerformed(ActionEvent arg0) { Color color=new Color ((int)(Math.random()*10000000)); this.setBackground(color);

Exemplo de Applet (3) Saída no Navegador Clique no botão para alternar a cor de fundo do painel

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

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 > Error Console” Na caixa de texto digite “java” e tecle <Enter> ou pressione botão “Evaluate” Daí, basta clicar na tecla “x”

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

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

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

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!)

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

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

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/technotes/guides/jar /jar.html

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

Exercício Exiba a calculadora criada como um applet