técnicas de programação para games -...

74
AULA 01 Applets - Introdução JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS Marcelo Henrique dos Santos http://www.marcelohsantos.com

Upload: doanmien

Post on 25-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

AULA 01Applets - Introdução

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Marcelo Henrique dos SantosMestrado em Educação (em andamento)

MBA em Negócios em Mídias DigitaisMBA em Marketing e Vendas

Especialista em games Bacharel em Sistema de Informação

Email: [email protected]

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Execução no Cliente (Browser)

• HTML

• CSS

• Javascript

• XML

• XSLT

• Tableless

• ...JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

HTML

<html>

<head>

<title>Título da Página</title>

</head>

<body>

Esta é minha primeira página.

</body>

</html>

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

HTML

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

UTF-8

Em 2014 foi constatado que cerca de 83,6% das páginas web estavam utilizando esse encode. Sua popularização se deu pelo fato dele reconhecer bastante caracteres (aproximadamente 65.536).

Alguns profissionais estão utilizando o encode ISO-8859-1 por que ele é mais performático (cada caracterepesa aproximadamente a metade do seucorrespondente no UTF-8).

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

UTF-8

Esse segundo encode apareceu nesse mesmo relatórioem segundo lugar com 8.3% das páginas.

Ele não é uma péssima opção, uma vez que ele cobretodos os caracteres do nosso idioma. Mas se você fortrabalhar em uma aplicação com chances deinternacionalização, o padrão UTF-8 é o mais indicado.

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

CSS

<html>

<head>

<link href="pagina.css" rel="stylesheet"

type="text/css" />

<title>Título da Página</title>

</head>

<body>

Esta é minha primeira página.

</body>

</html>

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

CSS – “pagina.css”

body {

background-color : #ffffff;

color : #000000;

}

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

JavaScript

<html>

<body>

<script type="text/javascript">

for (i = 0; i < 5; i++)

{

document.write("Alo você !!!")

document.write("<br />")

}

</script>

</body>

</html>

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

JavaScript

<html>

<head>

<script type="text/javascript">

function alo(k)

{

var s = "";

for (i = 0; i < k; i++)

{

s = s + "Alo você !!!"

s = s + "<br />"

}

return s

}

</script>

<title>Alouuuuuu</title>

</head>

<body>

<script type="text/javascript">

document.write(alo(4))

</script>

</body>

</html>

XML

<?xml version="1.0" encoding="UTF-8"?>

<livros>

<livro isbn=“0001”>

<titulo>JavaServer Pages</titulo>

<autor>Nick Todd</autor>

<editora>Campus</editora>

<assunto>JSP</assunto>

</livro>

<livro isbn=“0002”>

<titulo>Meu pé de laranja lima</titulo>

<editora>Vozes</editora>

<autor>Brilhante</autor>

</livro>

</livros>

XSLT

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:fn="http://www.w3.org/2005/xpath-functions">

<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>

<xsl:template match="/">

<html><head><title>Meus livros</title></head>

<body>

<table border="1">

<tr><th>Título</th><th>Autor</th></tr>

<xsl:for-each select="//livro">

<tr>

<td><xsl:value-of select="titulo"/></td>

<td><xsl:value-of select="autor"/></td>

</tr>

</xsl:for-each>

</table></body></html>

</xsl:template>

</xsl:stylesheet>

Execução no Cliente (Browser)

• “Inferno” dos web-designers: compatibilidade entre browsers!

– Firefox

– Opera

– Internet Explorer (IECA)

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Execução no Servidor

• Necessidade dos websites oferecerem conteúdos dinâmicos e atualizados

• Ciclo de vida da informações trafegadas entre servidor e cliente (escopo)

• Linguagens de script

– JSP

– ASP

– PHP

– Perl

Execução no Servidor_ PHP ASP JSP

General PHP Hypertext

Preprocessor

Active Server

Pages

Java Server Pages

supported

language(s)

own script

language

JScript, VBScript

or 5 different

Java

specifications runs on almost

any platform

webserver

extension (IIS)

no platform restrictions

functionality functionality by

modules

modularly built of

COM-objects

reusable components

and tags

security complex code ->

complex security;

open source

complex code ->

complex security;

no open source

complex code -> complex

security;

open source

performance interpreted

language

precompiled

code(?)

compiled to Servlets in

bytecode (interpreted)

database

connectivity

MySQL-drivers

included

ActiveX data

objects(ADO)

by "JDBC" (MSQL,

Oracle, Sybase)

Execução no Servidor

• Servidores Web

– IIS

– Apache

– Tomcat

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

IIS

• Internet Information Server

• Microsoft

• Famoso por apresentar diversos problemas de segurança no passado

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Apache

• Servidor web mais utilizado no mundoatualmente (Fonte: Netcraft)

• Software Livre

• Escrito em C

• Executa diversas linguagens script: PhP, Perl,ASP, etc.

• Possui suporte nativo ao MySQL

• Permite definição de módulos para extensãodo servidor– Exemplo: suporte para JSP

Tomcat

• Implementação de referência paraJSP/Servlets (Java)

• Escrito em Java

• Devido à sua simplicidade e fácil instalação, écomumente utilizado em cursos paradesenvolvimento web

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Servidores de Aplicação

• Estes servidores oferecem recursos comuns adiferentes aplicações (autenticação, conexão à BDs,suporte a transação, etc)

• Pensando-se numa arquitetura em camadas, umservidor de aplicação é um servidor que hospeda eoferece serviços para outras aplicações

• Com isso, espera-se que os desenvolvedores poupemtempo para implementação da lógica do negócio

Servidores de Aplicação

• Exemplos:– Java: JBoss (Red Hat), WebLogic (BEA), WebSphere (IBM),

Geronimo (Apache), Sun Application Server (SUN), Glassfish (baseado no da SUN)

– Microsoft: .NET Framework

Afins

• RSS

• Web Services

• AJAX

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

RSS

• Really Simple Syndication

• Formato padrão, baseado em

XML

• Tem sido adotado por websites que disponibilizam informações na rede, como sites de jornais, blogs, sites institucionais, etc.

• Hoje existem diversos leitores (agregadores) de RSS: browsers, programas de e-mail, softwares, etc ..

RSS

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Web Services

• Proposta:– Integração de sistemas através do uso de XML

sobre HTTP

• Tecnologias:– XML

– WSDL (Web Service Description Language)

– SOAP (Simple Object Access Protocol)

• Vantagens:– Integração com baixo acoplamento

– Independe das linguagens de implementação

Web Services

Web Services

AJAX

• Asynchronous Javascript And XML

• Construção de páginas mais dinâmicas através de chamadas assíncronas ao servidor

• Não é uma tecnologia, mas sim uma combinação de tecnologias

– XHTML + CSS + XML + XSLT + XMLHttpRequest e JavaScript

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Padrões de Projeto

• Um padrão de projeto é uma solução comumpara um problema comum encontrado nodesenvolvimento de software (Sun);

• Sedimentação do conceito com o lançamentodo livro: “Design Patterns: Elements ofReusable Object-Oriented Software”;

• Não está amarrado a nenhuma linguagem OO.

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Padrões de Projeto (GoF – Gang of Four)

Padrões de Projeto

• A utilização desses padrões usualmente implica em algumas vantagens:

– Facilidade de comunicação: padrões possuem nomes, os quais resumem uma solução que deve ser de conhecimento comum entre equipes de desenvolvimento;

– Credibilidade: sua implementação estará utilizando soluções amplamente testadas e aprovadas;

– Facilidade de manutenção: padrões tendem a reduzir o acoplamento entre componentes, o que implica num sistema de fácil manutenção

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

MVC (Model-View-Controller)

• http://java.sun.com/blueprints/patterns/MVC-detailed.html

AULA 01Applets –

Implementação de um Applet

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

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

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

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 linguagemque permitiria a execução de programas seminstalação

• Estes programas (bytecodes) seriam baixados dainternet e executados na máquina cliente

• Ou seja, para tal, a máquina cliente necessitaria deacesso à internet e da máquina virtual (JVM) paraexecuçã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 obtidopela 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

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

<html>

<head>

<title>HTML incluindo um applet</title>

</head>

<body>

<applet code=aulas.MeuApplet width=800

height=600/>

</body>

</html>

Execução do Applet

• Para execução do applet, crie um arquivo htmlcom o conteúdo apresentado

• Coloque o código java compilado (.class) nomesmo diretório do arquivo html

• Caso o código java seja definido dentro de umpacote (package), inclua o código compiladona hierarquia de diretórios equivalente aopacote

Execução do Applet

• Por exemplo, se o código java está definido nopacote “package cursojava.applets;”, e o htmlestá no diretório c:\htmls, os .class deverãoestar em: “c:\htmls\cursojava\applets”

Execução do Applet

• Inicialmente, os browsers disponibilizavaminternamente pequenos interpretadores paraJava

• A tecnologia Java Plug-in estende afuncionalidade de um browser, permitindoque applets e outros recursos sejamexecutados utilizando a JRE da máquina

Execução do Applet

• Quando um navegador não reconhece umapplet, as tags <applet> são ignoradas e, oque está dentro delas, é exibido

• Com isso, este se torna um local adequadopara 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 Appletjava.applet.Applet

• Sub-classe de Panel, do pacote gráfico awt

• É, essencialmente, um painel inserido em umapágina HTML, num navegador

• Embora restrito em algumas funcionalidades(por uma questão de segurança), podeinteragir com o usuário como qualqueraplicaçã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 navegadorimport 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 AppletSaí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

<html>

<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ãopublic 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”

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

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 comportamentorestringido na máquina cliente

– Algumas possibilidades: exibição de imagens, reprodução desom, capturar eventos de mouse e teclado, enviar entrada dousuário de volta para o host (máquina que hospeda o applet),etc

– Estas restrições visam garantir segurança na execução dessasaplicações

– Há um gerenciador de segurança na máquina virtual java quemonitora 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 onavegador ou um visualizador – appletviewer)

• Eventualmente, pode ser desejável que um appletcomande seu ambiente, por exemplo, pedindo aexibição de uma nova página

• Ou seja, é interessante que o applet se comuniquecom o navegador

• Para tal, a classe Applet possui o métodoAppletContext getAppletContext()

• A interface AppletContext possui vários métodos quepodem 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!)

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

Distribuição de Appletse Aplicativos Java

• Applets e Aplicativos Java podem ser distribuídos deforma concisa através de um arquivo JAR

• Um arquivo JAR é um arquivo compactado (formatozip) que possui uma estrutura especial, a qual éconsiderada pela JVM

• Um arquivo JAR é constituído minimamente de:

– uma hierarquia de pacotes que compõe aaplicação (contem os arquivos .class)

– um diretório chamado “META-INF”, o qual contémo 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

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

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

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

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

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

ATIVIDADE

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com

BIBLIOGRAFIA

BAZILIO, Carlos. Introdução à Programação para Web. Memória de aula da

Universidade Federal Fluminense (Polo Universitário de Rio das Ostras)

BAZILIO, Carlos. HTML, CSS e Javascript. Memória de aula da Universidade

Federal Fluminense (Polo Universitário de Rio das Ostras)

ROLIM, Carlos Oberdan. Linguagem de Programação IV - Introdução. Material de

aula da universidade URI - Santo Ângelo.

CEZAR, Alan. HTML: Encode UTF-8 (Entendendo um pouco mais sobre encode e

como funciona o UTF-8). Matéria disponível no seguinte link:

https://tableless.com.br/html-encode-utf-8/

JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS

Marcelo Henrique dos Santos

http://www.marcelohsantos.com