Você está na página 1de 36
PROGRAMAGAO JAVA 5." Edicdo Atualizada Curso Completo Pedro Coelho e Exemplos do livro suportados em Eclipse Epicho FCA - Editora de Informatica, Lda Av. Praia da Vit6ria, 14 A ~ 1000-247 Lisboa Tel. 4351 213511 448 fea@feapt wwwfca.ot DistaiBuicao Lidel - Edicdes Técnicas, Lda. Rua D. Estefénia, 183, R/C Dio. - 1049-057 Lisboa Tel: +351 213511 448 lidet@lidel pt www. lide pt LivraRta Av. Praia da Vitoria, 14.8 ~ 1000-247 Lisboa Tel: 4351 213 511 448 * Fax: +351 213 522684 livraria@lidel.pt Copyright © 2016, FCA —Editora de informatica, da. ISBN edlgdo Impressa: 978-972-722-840-9 4 edigao atualizada impressa:junho 2014 5. edigao atualizada impress: julho 2016 Impressao e acabamento: Tipografia Lousanense- Lous Depésito Legal n412636/16 Capa: José M. Ferrao - Look-Ahead vaste deFeA- tte dtfomin Lin~ Q, Le Todos os nossas livros passam por um rigoroso control de qualidade, no entanto acanselhamos a consulta periddica do nosso site (www. fca.pt) para fazer o download de eventuals correcdes. Nao nos responsabilizamos par desatualizacées das hiperligag6es presentes nesta obra, que foram verificadas a data de publicacao da mesma, (Os nomes comercials referenciados neste livro tém patente registada, Resenaios todos os detos Esta publcacSo no pode sr reproduzda, nem transmis, no tode ou em pane, por qualquer proceso eletrnice, mecinico, ftocepia.dgitalzagio,ervarao sistema de amazonamento e dsponbiizrao de informa, Fo Wied, bogus ou autos sam previa autovieario esta da Faitoaexcetoo pete pelo CDADC, em arms dec6piapivadd pals AGECOP- Assocacéo para a Getto da Copa Priveda arevs de pagamento das respatvs taxes, INDICE GERAL PROLOGO » Parte I - INTRODUCAO AO JAVA 1, 0 PrIMEIRO PROGRAMA. 1.1 Introdugao - 1.2 Kit de Desenvolvimento Java 4 1.3 (Consthalvie Testad tint Pro geaii cccaccicsussussisiasaitvtvnstcestcrtonrrooncte 8 5 2. INTRODUCAO HISTORICA.. 2.1 Introducao 2.20 Java ea Internet. 23 WWW eJava.... 3. POTENCIALIDADES DO Java. 3.1 Applets: Animagao em Paginas WWW... 3.2 Construcao de Aplicacdes 3.3 Aplicacdes Méveis e de Televisio 3.4.0 Futuro do Java. 4, INTRODUCAO AO JAVA. 4.1 Programacao Orientada a Objetos. 4.2. Conceitos do Java. 5. SINTAXE JAVA. 5.1 Expresses 5.2 Tipos de Dados... 5.3 Variaveis 5.4 Aritmética 55 Operacies Légicas, Comparacies, Condicionais e Outras 5.6 Arrays, 5.7 Collections. 58 Java Time. 5.9 Controlo de Fluxo e Ciclos 5.9.1 Expresses Condicionais 5.9.1.1 Expresses if... else 5.9.1.2 Expresses ? 5.9.2 Expresses Switch 5.9.3 Ciclos. 5.9.3.1 Ciclo while 5.9.3.2 Ciclo do ... while 5.9.3.3 Ciclo for. 5.9.3.4 Break, Continue e Labels. 5.10 Exemplos. Exemplo 5.1 76 67 © FOA~ Edilora de Informatica MII PROGRAMAGAO EM JAVA — CURSO COMPLETO 6. OpveTos, CLAsses E METODos 6.1 Conceitos... 6.2 Criagao de Classes. 6.3 Utilizando Objetos.. 6.3.1 Acesso as Variaveis 6.3.2 Objetos e Métodos 6.3.3 Exemplo... 6.4 Métodos 6.4.1 Tipos de Métodbs.... 6.4.2 Questées de Sintaxe 64.21 “This”... 6.4.2.2 Construtores., 6.4.23 Finalizadores 6.4.24 Mecanismo de Reescrita (Override)... 6.4.25 Exeogies. 100 6.5 Métodos Predefinidos 103 6.6 Interfaces. soeraeamserrc 104 6.7 Packages 106 6.7.1 Bibliotecas de Classes.. 106 (G8 Crlacho de:A plicagbes Javancesaniemmmanemaanmenmnnenmnmemammeeny 108 Parte II ~ CRIAcAo DE INTERFACES EM JAVA 1. INTRODUGAO AS INTERFACES EM JAVA. 115 2. APPLETS. 117 2.1 Applets: Conceitos Basicos. sess . . se 17 2.1.1 Applets e Paginas WWW. 120 2.1.2 Parametros Passados as Applets... 129 2.1.3 Construgio de Applets. 131 2.2 Blementos Graficos. 135, 2.21 Linha: 136 2.2.2 Retangulos.. 136 2.23 Poligonos 139 2.2.4 Ovais e Circulos... 139 2.25 Curvas e Arcos. 140 23 Texto, Fonts e Core: 14 23.1 Cores 13 23.2 Suporte de Texto Rich Text 15 24 Animagao, Imagens e Som... 17 2.4.1 Imagem 19 2.42Som... 153 25 Graficos 2D... 156 25.1 Transformacies. 163 © FOA— Editora de Informatica {noice Geral 1X 26 Threads... — 165 2.7 Exemplos Praticos... 170 3. INTERFACE WINDOWS .. 181 3.1 Introducao 181 3.2 Objetos Basicos... - 182 BD EB concn 182 3.2.2 Botoe: 184 3.23 Campo de Texto. 185 3.2.4 Botoes Radio. si 186 3.25 Caixas de Selecao. 188 3.26 Caixas de Escolha. 189 3.27 Areas de Texto 190 3.28 Listas de Escolha.. 192 3.2.9 Barras de Deslocagao..nn. 193 3.2.10 Organizacao dos Elementos Graficos 194 3.3 Objetos Avancadbs... ee 199 3.3.1 Janolas 199 3.3.2 Menus.. 3.3.3 Caixas de Didlogo. 2 3.3.4 Caixas de Didlogo (Ficheiros) 204 3.4 Eventos... 205 3.4.1 Gestio do Evento pelo Préprio Objeto 205 3.4.2 Gestdo de Eventos via Listener. 3.5 Swing satan : 215 35.1 Button 27 3.5.2 JLabel 220 3.5.3 JoggleButton 221 3.5.4 [Checkbox 22 35.5 JPanel 2 3.5.6 RadioButton. 23 3.5.7 JComboBox. 224 3.5.8 JScrotfBar 25 3.5.9 JSlider. 235 3.5.10 Campos de Texto... 226 3.5.11 JToolBar 28 3.5.12 JPanel. 20 3.5.13 JInternalFrame 21 3.5.14 JTable.. 21 3.5.15 Menus. basen saasarmeataasan 232 3.5.16 Dialogos 233 3.6 Novo Controlos DatePicker e TreeTable 235 37 Exemplo Pratico.. 236 4. 1/0, CoNcORRENCIA COMUNICACOES 243 4.1 UO e Streams... essen 243 4.1.1 Streams de Entrad: 23 © FOA~ Edilora de Informatica X__ PROGRAMACAO EM JAVA — CURSO COMPLETO 4.1.2 Streams de Saida. 245 4.1.3 Pipes: sn 4.2 Invocagio de Links sens 43 Comunicagdes TCP/IP. 44 Multithreading 261 5. GeSTAo DE EVENTOS € INTERATIVIDADE .. 267 5.1 Rato... ese 5.1.1 Pressionar Botao do Rato... on 269 5.1.2 Largar Botao do Rato.... si 5.1.3 Rato Entra na Applet. 272 5.1.4 Rato Sai da Applet .onnneenne 5.1.5 Mover rato com Botao em Cima 273 5.1.6 Mover rato com Botdo em Baix0......00:ee 273 274 5.1.7 Efetuar um Clique 5.2 Teclado... 5 5.21 Pressionar Tecla.. 5.2.2 Largar Tecla. 5.2.3 Escrever com Teck 5.2.4 Teclas Especiais. 277 5.3 Gestao Unica de Eventos. 279 5.4 Outros Eventos... 279 5.5 Exemplos Praticos.. Parte III - Javana Wee 291 293 1. INTRODUCAO AO JAVA NA Wee. 2. SERVLETS 21 Introd Ugo .ennensnnsnne 293 2.2 Implementagao de Servlet: 295 3 Sessdes e Contexto. 301 4 Exemplo Pratico.. 309 3. JAVA SERVER PAGE: 317 3.1 Introdugdo, Arquitetura e Conceitos Basicos.... a oi 317 3.2 Sintaxe JSP 321 3.2.1 Diretivas.. 321 3.2.2 Elementos de Scripting 333 3.2.3 Objetos implicitos. 326 3.24 Acdes. . 329 3.3 Exemplo Pratico. 334 3.4 Conclusio 4, ARQUITETURA DE APLICACOES JAVA 341 4.1 Arquiteturas Java: JSE e JEE.... 341 4.2 Aplicacées Web em Ambiente JEE. 358 4.3 Model View Controtier (MVC) 362 44 Open Services Gateway Initiative (OSGi) 363 © FOA— Editora de Informatica {noice GeraL [Xt 5. Java SERVER FACES: 367 5.1 Introducao iat . 367 5.2 Exemplo Pratico 368 Parte IV - JAVA EMPRESARIAL 1. INTRODUCAO AO JAVA EMPRESARIAL .. 383 385 385 392 397 2. Comunicacdes & Davo: 2.1 Remote Method Invocation (RMI) 2.2 JDBC. 23 Java Beans 2.4 CORBA 25 Seguranga., 3. Expressoes LamMppA £ INTERFACES FUNCIONAIS 409 3.1 Expressées Lambda. 409 3.2 Interfaces Funcionais.... a 4. Core JEE:ENTERPRISE JAVA BEANS .. 413 4.1 Arquitetura e Conceitos Basicos 413 4.2 Logica de Negécio e Session Beans 4.3 Persisténcia e Entity Beans... 4.4 Message-Driven Beans (MDB). 45 Transagies 4.6 Conclusao 436 5. MESSAGING 453 BAL Javamail o.connnnnnnnnnnn - 453 5.1.1 javax.mail Session. 5.1.2 javax.mail. Authenticator 5.1.3 javax.mail Message 5.1.4 javax.mail. Address 5.1.5 javax.mail Store e javax.mail Folder... 5.1.6 javax.mail. Transport 5.2 Java Message System (JMS).. 6. WeaSeRvices .. 6.1 Introducao 6.2 SOAP 6.3 WSDL. 64UDDI 6.5 JE e WebServices. 7. TecNoLoGiAs De SUPORTE 7.1 Unified Modeling Language (UML) 7.2 Hibernate 7.3 Service Oriented Architecture (S04). Assyncronous JavaScript and XML (Ajax) . 75 Business Process Execution Language (BPEL) 489 © FOA~ Edilora de Informatica XII PROGRAMAGAO EM JAVA — CURSO COMPLETO 8. Java MoveL. 491 8.1 Java Micro Edition (JME) eee 491 8.1.1 Java Card 492 8.1.2 Embedded Java 493, 8.1.3 Connated Limited Device Configuration (CLDC) 493 8.1.4 Mobile Information Device Profile (MIDP) 493 8.1.5 Connected Device Configuration (CDC) 494 8.1.6 Symbian EPOC (Personal Java) 494 8.1.7 Utilizando 0 J2ME 494 8.2 HTMLS e Multidispositivo.. . sn . 498 8.3 Android. 499 (ANEXO — REFERENCIAS ONLINE E LISTA DE CLASSES: 509 A. Referéncias Online... sito 509 A2 Lista de Classes. 510 517 519 GLOssARIO DE TERMOS — PORTUGUES EUROPEU/ PORTUGUES DO BRASIL «. inorce ReMissivo. © FOA— Editora de Informatica PROLOGO Quando escrevi a primeira verséo do livro "Programacao em Java”, em 1997, 0 Java era jé a coqueluche da Internet. Por todo o lado se falava na linguagem de programagio que iria mudar 0 mundo e nas muilas potencialidades que adviriam da sua utilizagao na World Wide Web em termes de interatividade e de animacao ‘As alteragdes profundas que me vi obrigado a fazer nas edigdes subsequentes sao bem a prova do tremendo dinamismo que esta linguagem e tecnologia apresentam e que a transformaram na principal tecnologia de desenvolvimento Web no mundo. Mas 0 Java evoluiu para uma plataforma de desenvolvimento completa, vocacionada para todo © tipo de utilizacao, j4 nfo s6 para o efémero mundo das aplicacées Web, mas agora também, para o meio das aplicagdes corporativas de natureza critica e para o universo das aplicagoes méveis ¢ dos sistemas embebidos. Esta nova edicao é langada numa altura em que o Java 8 se afirma, num momento em que as interfaces por plug-in comecam a ser descontinuadas nos browsers e em que é generalizada a sua adocao em muiltiplos ambientes de desenvolvimento. O leitor poderé encontrar, hoje em dia, aplicages Java em todo o tipo de dispositivos e equipamentos informéticos e em miiltiplos ambientes aplicacionais, que vao desde os portais e gestores de contetidos as aplicagoes de suporte a operagdes em empresas de servigos, abrangendo todos os setores de atividade. O projeto conta agora com 4 partes: - Introdugio ao Java ~ Introduz a linguagem e a tecnologia, descrevendo a sintaxe basica e focando os aspetos fundamentais da linguagem. - Criagio de Interfaces em Java ~ Descreve as interfaces tradicionais da linguagem, incluindo as applets e a interface Windows. - Java na Web ~ Totalmente dedicada a forma com o Java se utiliza na Web nos dias de hoje, seja em sites, seja em aplicagoes dos mais variados tipos. - Java Empresarial ~ Descreve a forma como 0 Java é utilizado para implementar aplicagées no contexto empresarial. A evolugao continuou no sentido da execugao do Java em todos os tipos de dispo- sitivos, tornando cada dispositivo eletrénico como um cliente Java de uma qualquer aplicacao remota, acessivel pela Internet fixa ou mével O espirito do texto manteve-se inalterado ao longo destes anos, mesmo que o texto tenha evoluido ao sabor da tecnologia, continuando a ser um guia de introducio & linguagem Java nas suas varias vertentes, procurando contribuir para o aperfeigoamento © FOA~ Edilora de Informatica XIV PROGRAMAGAO EM JAVA — CURSO COMPLETO dos utilizadores mais avangados ¢ ilustrando todos os conceitos com exemplos praticos. Por questées praticas, e apesar de esta edicdo estar segundo o Novo Acordo Ortogréfico, foi mantida a denominada ortogralia antiga em excertos de cédigo de programacao e figuras correspondentes, Procurou-se também enquadrar a tecnologia Java no atual panorama tecnolégico dos sistemas de informacao, nomeadamente fazendo introdugdes temiticas a diversas tecnologias relacionadas ou conexas Boa leitura! julho de 2016 Pedro Alexandre Coelho pac@pedrocoetho com iw pedrocoetho co © FOA— Editora de Informatica PARTE | INTRODUGAO AO JAVA A primeira parte do livro faz a introdugao a linguagem e & tecno- logia Java, descrevendo a sintaxe bisica e focando os aspetos fundamentais. CAP.1 0 Prime CAP.2 Introdugio Histérica Programa CAP.3 Pontencialidades do Java CAP.4 Introdusao ao Java CAP.5 Sintaxe Java CAP.6 Objetos, Classes Métodos O contetido destes capitulos encontra-se tamim Aisponivel emformito eBook. Visite a nossa pigina ova fea O PRIMEIRO PROGRAMA A Internet e as tecnologias da World Wide Web serviram de base para o grande desenvol- vimento das tecnologias de informacao ¢ de comunicacao, em varias vertentes. Ao longo. dos iiltimos 20 anos, vimos aparecer sucessivas tecnologias cada vez mais dinamicas e interativas, vimos muitas das nossas aplicagées tradicionais migrarem de ambientes locais, ow cliente-servidor para a Web, e vimos também os sistemas e aplicagbes que utilizamos transpostos para miltiplos dispositivos, passando do computador para os tablets, telemdveis, televisdes e outtos dispositivos. O Java, mais do que acompanhado, tem estado na origem de muitas destas transformacées, seguindo 0 caminho para o qual foi desenhado nos anos 90 do século XX. Neste livro vamos contar a sua histéria e analisar em profundidade as suas capacidades, descobrindo porque é o Java hoje em dia uma “pedra basilar” na construcao dos sistemas de informagio modernos. 1.1. INTRODUGAO Quando surgiu nos anos 90 do século XX, 0 Java introduziu na Web a possibi- lidade de integrar verdadeira interatividade em paginas WWW. As pequenas aplicagdes Java, denominadas applets, podiam ser diretamente integradas no cédigo HTML das paginas e, assim, tornar acessivel a uma pagina WWW tudo aquilo que usualmente se conseguia obter através de um programa, desenvolvido numa qualquer linguagem de programagao. No entanto, desde a sua criacao, 0 objetivo do Java era muito mais ambicioso do que simplesmente possibilitar a criagao de alguns elementos programdveis em paginas Web, pretendia-se mesmo a criagéo de uma linguagem de programagéo que pudesse correr em todo 0 tipo de computadores e dispositivos, Este livro constitui uma abordagem introdutéria ao Java, explicando as suas miiltiplas aplicagées nos dias de hoje e introduzindo a sua sintaxe. Sendo o Java uma das melhores linguagens de programacao para se aprender a programar, este livro também podera ser utilizado com esse fim. O Java 6, hoje, a principal linguagem de desenvolvimento de aplicagées no mundo dos sistemas de informagao, e por esse motivo é, em muitos casos, a primeira © FOA~ Edilora de Informatica 4 PROGRAMACAO EM JAVA — CURSO COMPLETO linguagem de programacao que os alunos aprendem nos seus cursos. Qualquer que seja 0 seu caso, apés a leitura deste livro saber os fundamentos de programagao do Java e estard pronto para aprender a ulilizAlo nas diversas situagées em que esta versatil tecnologia pode ser empregue. 1.2. KITDE DESENVOLVIMENTO JAVA Algo que é fundamental para se programar é um compilador. Este é 0 produto de software que se encarrega de interpretar o cédigo que é escrito de acordo com a sintaxe da linguagem e que, depois, o converte para um conjunto de instrugdes bindrias que possam ser executadas pela méquina Para executar aplicacdes Java, temos de ter instalado um software chamado Java Runtime Environment (JRE) e, para desenvolver, precisamos de um outro chamado Java Development Kit (JDK). A Oracle, detentora da Sun Microsystems (Sun) ~ inventora do Java -, fornece de forma gratuita um pacote de desenvolvimento de aplicagées JAVA (Software Development Kit ~ SDK) O leitor pode obter este software, acedendo as paginas WWW Java da Oracle, em: http:/Avww_oracle.com/technetwork/java/javase/downloads/index.html €, depois, importar 0 softzare. Ha outras duas alternativas de software JDK: o da IBM (http://www ibm.com/developerworks/ava/idk/indexhtml) ou, entao, o OpenJDK (http //openjdk.java.net/), uma versao open source patrocinada pela Oracle e pela IBM (neste caso, sobre Linux). O SDK esta disponivel em varias versdes, e com algumas variantes, consoante a plataforma utilizada e o software incluido. Existem verses para Solaris (sistema operativo das maquinas Sun Sparc), varias de Unix e Linux, Macintosh e Windows. Uma das versées do SDK vem com um produto de edigéo chamado Netbeans, que consiste num ambiente integrado incluindo o kit de desenvolvimento e um editor de cédigo (Integrated Development Environment ~ IDE) Para programar, o leitor vai precisar de um editor, e pode optar por usar o Netbeans ou outro, Na verdade, para 0 seguimento do livro daqui para a frente & irrelevante qual o IDE que ¢ utilizado, uma vez. que o que estd na base é uma versio comum de Java que, na verdade, ¢ utilizada para compilar e executar os programas. Neste livro vamos utilizar como IDE de exemplo um editor que hé algum tempo assumiu o papel de leader, chamado Eclipse, que pode ser importado em hitp:/www.eclipse.org. Este produto, open source, nasceu a partir de uma versio da IBM, em 2001, e evoluiu a partir dai com uma comunidade open source que hoje o suporta, podendo ser utilizado com software open source ou comercial. © FOA— Editora de Informatica O PRIMEIRO PROGRAMA 5 Antes de instalar 0 Eclipse, ¢ por 0 editor ser, em si, um programa Java, precisa de algo no seu PC que lhe permita correr Java, especificamente um JRE ou um JDK. Para desenvolvimento é recomendavel que tenha um JDK por, entre outros aspetos, incluir 0 cédigo das bibliotecas de que ira necessitar Apés a instalagéo do JDK (instale a ultima versio estavel), pode passar a instalacdo do Eclipse. Em http://www eclipse.org estao disponiveis varias verses, mas pode comegar por importar a versao dlassica (Figura 1.1). Sendo um IDE altamente modular, o leitor pode, mais tarde, importar novos componentes e adapté-los ao seu editor. Hé outras versées, mais vocacionadas para tipos diferentes de programadores, mas, na verdade, o leitor pode posteriormente instalar os componentes de que necessitar eee to ve Devlper OR ee mete a= Gi Stee eto neon se won heartland ae Squish See ares ce TE Gs stem Gul Test eee ‘ioe Automation ——_ Simm Retatoa Link w Scosetodana Tone se Figura 1.1 - Importacao do Eclipse Existe uma série de produtos no mercado nesta drea e a tendéncia tem sido para © seu ntimero aumentar, mesmo com as aquisigées que tem havido no mercado. Apenas para mencionar os produtos mais utilizados, para além do Eclipse, temos o jé falado Netbeans, o JDeveloper (também da Oracle) e o JBuilder, entre outros, Se o leitor for um profissional do desenvolvimento de aplicagées, poderd ser interessante comparar os varios produtos e escolher aquele de que gostar mais, uma vez que, em ultima andlise, o seu cédigo sera sempre compativel, visto basear-se no motor base que é 0 JDK. Apés importar o Eclipse, o leitor pode instalé-lo facilmente, nao sendo necessario correr nenhum instalador: basta colocar os ficheiros num diretério A sua escolha ¢ exe- cutar 0 “eclipse.exe” que encontra no diretério “eclipse” no seu interior. O aconselhavel seré criar um atalho para o “eclipse.exe” e executé-lo, fazendo-se a configuracio do produto na primeira utilizagao. © FOA~ Editora de Informatica 51) ProcRaMacAo EM Java ~ CURSO COMPLETO 1.3. CONSTRUIR E TESTAR UM PROGRAMA Passada esta fase introdutéria, e para o leitor ver jé um pouco de acdo, vamos procurar fazer e executar um programa muito bdsico em Java. Se o leitor jd teve a oportunidade de consultar livros de programacao, certamente se lembrard de que é tradicional comegar por um pequeno programa que envie para o ecra uma frase e nao faca mais nada (o famoso “Hello World”, em portugués “Olé Mundo”). Neste caso, vamos comegar por criar um programa que envie para o ecra a frase “O meu primeiro programa em JAVA!” O primeiro passo é lancar o Eclipse. Ao fazé-lo, surgiré uma janela com varias zonas de interaco que permitem efetuar as varias atividades de desenvolvimento, gerir 08 ficheiros-fonte e as respetivas localizagoes, bem como a organizacao légica dos varios ficheiros nos pacotes de desenvolvimentos que se vao fazer. Nos menus do Eclipse selecione “File”, “New” e "Java Project” (Figura 1.2). ene t Proet Sropat ome [ee es pest ia sada eure 0.80.8) Figura 1,2 = Criagio de um projeto no Eclipse Agora podemos dar um nome ao nosso projeto e prosseguir, encarregando-se 0 Eclipse de criar uma estrutura de diretérios e ficheiros para os nossos desenvolvimentos (Figura 1.3). © FCA - Editora de Informanca PARTE II CRIAGAO DE INTERFACES EM JAVA A segunda parte do livro descreve as interfaces tradicionais da linguagem, incluindo as applets e a interface Windows. CAP.1 Introducio as Interfaces em Java CAP.2 Applets CAP.3 Interface Windows CAP.4 VO, Concorréncia e Comunicagées CAP.5 Gestao de Eventos e Interatividade O conteiudo destes capitules encontra-se também disponivel emforrmato eBook. Visite a nossa prigina waa fea.pt. APPLETS As applets foram as primeiras formas de visualizacio de interfaces na Web e fora dela, e, apesar da sua idade, continuam a utilizar-se bastante, em particular em ambientes Intranet e para aplicagées especificas. Em todo 0 caso, trata-se de uma tecnologia em fim de vida, tendo a Oracle ja anunciado que os Java plug-ins (baseados em applets) serio descontinuados em fituras versies do Java, pelo que o leitor que as pretenda usar deverd ter em conta este facto. No Java 9, e em boa parte dos browsers (exceto os que ja iniciaram a descontinuagio dos plug-ins), como o Edge do Windows 10, as applets continuaréo a funcionar, mesmo anotadas como "deprecated". Neste capitulo serd descrita a forma como esta tecnologia pode ser usada, incluindo o trabalho com elementos graficos e multimédia. A tetminar, serao apresentados alguns exemplos de aplicacao da matéria abordada, com alguns casos, de applets que o leitor poderd utilizar. 2.1 APPLETS: CONCEITOS BASICOS A popularidade do Java deve-se, sobretudo, a sua utilizagao no ambito da World Wide Web. Desde 0 aparecimento dos primeiros browsers com capacidades de interpretacao Java que a comunidade Internet aderiu de forma entusidstica a tudo 0 que se relacione com a linguagem Java A criago de applets — pequenos programas que sao executados em paginas WWW - foi uma das primeiras facelas da linguagem Java, Mesmo sendo, atualmente, na Web, a apenas uma das varias formas como o Java pode aparecer em sifes © port: execugdo de programas Java em modo local nos clientes (browsers) ainda é uma forma segura ¢ fidvel de distribuicéo remota de software, mesmo que o dinamismo e a interatividade que levaram muitos autores de sites a criar applets ha alguns anos tenham sido preteridos por outras tecnologias, como o Flash ou o HTMLS. Tendo como fundamento a sintaxe basica do Java, a criacao de applets combina a aplicacao de alguns dos conceitos aprendidos com a utilizacao de determinadas classes e métodos das bibliotecas de classes do Java. Neste capitulo vamos aprender os conceitos base da criacao de applets, bem como alguns exemplos praticos de utilizagao. © FOA~ Edilora de Informatica 118 | PROGRAMAGAO EM JAVA — CURSO COMPLETO Uma applet € um programa Java compilado que se integra numa pagina WWW. Ao ser realizado 0 acesso com um browser aquela pagina, o ficheiro binério que contém a applet 6 carregado através da Web, sendo em seguida executado na maquina local onde reside o browser. Uma das regras de seguranca que se implementaram desde o inicio, 6 que as applets Java nao tém acesso de escrita ao sistema de ficheiros da maquina local, nem podem executar programas ou carregar bibliotecas residentes naquela Num programa Java tradicional, baseamos 0 cédigo na utilizagao incondicional de um método principal main), que se encarrega de criar objetos e executar alguns outros métodos importantes, O controlo de fluxo geral do programa é sempre baseado no cédigo contido no main(), uma vez que se trata da primeira seccio de cédigo a ser executada na altura da execugao do programa. Como veremos, as applets tm uma forma distinta de serem utilizadas. Para criar uma applet, é criada uma subclasse de uma classe existente na biblioteca “java.applet” chamada “java.applet. Applet”. Nesta classe esta definido todo 0 comportamento de uma applet, nao s6 0 seu funcionamento, como também a capacidade de reagir ao teclado e ao rato Numa applet estéo, a partida, definidos alguns métodos fundamentais para determinar 0 seu comportamento. Uma vez que nao hd nenhum método maind, existe na applet um conjunto de métodos que representam as fases mais importantes na vida de uma applet: Inicializagio — Esta é a fase em que a applet é, pela primeira vez, carregada. Nesta fase podem ser realizadas agoes, tais como a criagio de objetos, a inicializacao de varidveis, etc. O método correspondente a este estado é 0 init. Uma applet s6 passa por esta fase uma vez; Comecar ~ Esta fase ocorre a seguir A da Inicializagio ou, entio, depois de a applet ter sofrido uma paragem. Ao contrério da fase anterior, uma applet pode passar varias vezes pela fase Comecar. 0 método correspondente ¢ 0 start; Parar — Esta fase implica uma paragem na execucao da applet. E, muitas vezes, utilizada em conjunto com a fase Comesar para certos tipos de comportamento de applets. O método correspondente é 0 stopQ; Destruir — Esta é fase terminal de uma applet. O método correspondente é 0 destroy(). Estes quatro métodos, entre muitos outros, esto definidos na classe “applet”. Contudo, se for definida uma applet vazia, o seu comportamento também sera nulo, uma vez que nenhum dos métodos faz nada Para criar comportamentos, € necessario reeserever os métodos (override). Para isso, basta declarar os métodos no interior do cédigo das applets, tendo 0 cuidado de os © FOA— Editora de Informatica Appiets 119 declarar como public. Por exemplo, se o leitor quisesse definir um comportamento inicial para uma determinada applet, faria uma declaracao do método init) public void init(} { codigo de def, amento */ © comportamento de uma applet é, normalmente, definido a custa da reescrita dos métodos init), start() e stop(). Nao é habitual associar comportamentos ao método destroy(), a nao ser em casos especiais. Também devera ser claramente compreendido pelo leitor que 0 cédigo destes métodos s6 sera executado quando a applet estiver no estado correspondente. Em todos os casos em que tenhamos desenhos ou operacées graficas sobre applets, iremos recorrer a um método designado paint(. Este ser utilizado varias vezes durante a execucéo de uma applet, por exemplo, para gerar uma animacio (repetidos envios de imagens para uma janela) ou mesmo para regenerar uma imagem que foi tapada por outra janela Como argumentos utilizaremos um objeto de uma classe definida numa biblioteca de classes e que tem o nome de “java.awt.Graphics”, 0 qual tem acesso a uma série de métodos relacionados com atividades gréficas das applets. A sintaxe a utilizar é a seguinte: public void paint (Graphica p) { aficos da applet * Um exemplo de utilizagéo deste tipo de sintaxe (cuja execucio pode ser visualizada na Figura 2.1), é 0 desenho no ecra de uma string com recurso a um método da classe “Graphics” (drawString0): import java.awt Graphics: public class Testel extends java.applet Applet { public void paint (Graphica a) { q.drawString("Teste de Applet! ",20,55); © FOA~ Editora de Informatica 120)) ProGramacio em Java - Curso COMPLETO (6) Applet view., r/c) Applet Testo do Applot [Applet started Figura 2.1 - Importacéo do Eclipse 2.1.1 APPLETS E PAGINAS WWW A inclusio de uma applet Java numa pagina WWW faz-se utilizando para tal o elemento HTML ( desde a especificacao HTML4). A sintaxe utilizada para fazer é construida da seguinte forma Texto altemativo. Este elemento esta obsoleto desde a especificagio HTML4, mas ainda hoje ¢ interpretado por todos os browsers que mantém a compatibilidade. Pelo contrério, 0 leitor poderd ter problemas se utilizar simplesmente uma substituigao do elemento pelo , como manda a especificagéo HTML5, porque alguns browsers, como 0 Chrome, podem nao identificar 0 objeto como uma applet e apresentar 0 espago em branco © FCA - Editora de Informanca PARTE III JAVA NA WEB A terceira parte do livro ¢ totalmente dedicada 4 forma como se utiliza o Java na Web nos dias de hoje, seja em sites, seja em apli- cages dos mais variados tipos. CAP.1 Introdusio ao Java na Web CAP.2 Servlets CAP.3 Java Server Pages CAP.4 Arquitetura de Aplicagies Java CAP.5 Java Server Faces FD 0 contetido destes capitules encontra:se também dispontoel emformeto Book. “3 Visite a nossa prigina www feat. SERVLETS As servlets sio programas Java compilados e que sao execttados do lado do servidor. Para além de serem a forma preferencial de disponibilizagao de servigos Java na Web, as serulets so parte importantissima da maioria das frameworks de desenvolvimento Java e uma das pecas da tecnologia JER, pelo que neste capitulo procuraremos descrever com algum. pormenor a forma como podem ser construidas, instaladas e executadas, bem como identificar as circunstancias em que devem ser utilizadas. 2.1 INTRODUGAO As servlets funcionam num modelo de pedido/resposta, como muitos outros obje- tos em utilizagao na Web. O cliente efetua um pedido (habitualmente HTTP) que invoca a servlet no servidor e depois recebe como retorno o resultado da sua execucdo (Figura 2.1) Web container — Browser Servidor > <—— |wo ~~ @ NY ~~ Servic Base de Contenido waetes estético Ficura 2.1 — Execugio de uma servlet O servidor Web tradicional continua a poder servir contetido estatico ou dina- mico, mas é complementado com uma nova entidade légica: 0 Web container (contentor de componentes Web), uma peca JEE que até pode funcionar na mesma maquina em que ‘o servidor Web se situa. Este processo funciona bem, mas surge a partida uma questo de fundo: numa aplicacao de qualquer tipo, é suposto que o cliente seja mantido num determinado contexto de sesso, ou seja, é expectavel que as respostas que a aplicacdo Web Ihe da sejam dependentes de varios fatores, como o seu perfil de utilizador, as escolhas que jé © FOA~ Edilora de Informatica 294 PROGRAMAGAO EM JAVA — CURSO COMPLETO. introduziu ou percurso que ja efetuou no site? Neste pressuposto (indispensdvel em aplicagées Web dinamicas), a resposta que a servlet tem de dar a um determinado pedido deve refletir o estado do cliente e do servidor no momento do pedido, o que é conseguido através da manipulagdo da chamada informacao de sesso (referida mais adiante, na seco 2.3). Para iniciar a construgao de servlets, o leitor necesita de mais de um simples servidor Web. Precisa do servlet container, que pode encontrar com facilidade na Web e do qual hé versdes gratuitas. O mais popular e simples de utilizar é 0 Tomcat (http://tomeat.apache.org/), um servidor aplicacional open source que é uma referéncia de mercado, a par de solugbes comerciais como as da Oracle (Weblogic) ou IBM (Websphere). Contudo, para criar e experimentar servlets, pode-se usar 0 editor Eclipse que tem a possibilidade de incluir 0 Tomcat. Para executar em ambiente de produgao aplicagées baseadas em servlets que desenvolva, a solugdo mais comum passa por utilizar uma configuragao baseada em Linux, Apache Web Server e Apache Tomcat. As servlets podem ser utilizadas quer para efetuar processamentos diversos (ao nivel da camada aplicacional em aplicagées Web), quer para ligar clientes a aplicacdes (a chamada fungéo de proxy). Neste ultimo caso, a servlet pode ser utilizada para gerar dinamicamente uma pagina HTML, com informagio que tenha sido processada pela propria, ou mais vulgarmente, por outra servlet (ver exemplo da seccao 4.1), Neste cendrio so um substituto direto dos antigos CGH, podendo ser acedidas diretamente a partir de um URL, embora habitualmente este seja escondido no HTML de uma pagina Web estatica ou dinamica Ao chegar um pedido HTTP ao servidor Web, este ter de entender que se trata de um pedido para o Web container e encaminhélo utilizando informagéo que foi declarada aquando da instalagéo do componente (descritor). Este decidird, entdo, a execugéo do componente correspondente, que pode ser uma servlet, uma JSP ou mesmo contetido estatico. A decisdo é tomada com base no descritor. Cada servlet ou JSP que exista deverd ter um descritor associado, contendo: Nome do elemento; Classe Java do elemento; Descricao. 1 Com uma grande diferes terminar a sua execucao quando o pet a! as sevalets poder ser executadas em modo permanente, podendo no HTTP termina. © FOA— Editora de Informatica Serviets 295 Este descritor pode também ser utilizado para descrever outros elementos, como paginas de erro ou informagio de sessao. Na secgao seguinte vamos ver com algum detalhe como construir ¢ instalar servlets com todos estes requisitos. 2.2 IMPLEMENTAGAO DE SERVLETS Uma aplicacao Web corretamente instalada em JEE é composta por quatro partes: ‘Um diretério puiblico — Com o contetido estatico da aplicacao (ficheiros); Um ficheiro “WEB-INF/web.xml” — O descritor, em formato XML; ‘Um diretério “WEB-INF/classes” ~ Onde se guardam as servlets compiladas; Um diretério “WEB-INF/lib” ~ Onde se guardam eventuais bibliotecas JAR que fagam parte da aplicagio. Antes de entrar em mais detalhes sobre a construcao das servlets, vamos des- crever um exemplo muito basico. Imagine o leitor que tem de fazer uma servlet que simplesmente mande para o ecrd a jé mitica frase “Hello World!” (Olé Mundo!) A primeira coisa a fazer sera construir a servlet. Neste caso, utilizando 0 Eclipse como nosso editor, criamos uma nova servlet num projeto Web dindmico, recorrendo & entrada ‘New Servlet’. Procedemos a edicao do ficheiro “Teste Servlet java”, contendo a classe que implementa a servlet Ficheiro “TesteServlet.java” package pac: import java.io. *; import javax.serviet.*; import javax. servlet. http. *; public class TesteServlet extends HitpServlet [ public void doGet(HtpServietRequest req, HttpServiet Response res) throws Servlet Exception, IOException { res. set Content Type("text/ ht nil"); PrintWiter out = res. getWiter(); out. printIn(""); out. print 1n(”Ol a Mindo") ; out. print 1n(" "); © FOA~ Edilora de Informatica 296) PRoGRAMACAO EM JAVA ~ CURSO COMPLETO out .printIn("

0la Mundo

") ; out .printIn("") Para executar a servlet é necessdrio que haja um ficheiro descri-tor designado “web.xml”, no qual deverd estar mapeado o nome das classes das servlets com 0 caminho para as invocar quando se executam no servidor. Este descritor é importante porque, ao instalar a nossa aplicacao Web num servidor aplicacional remoto, vai dar informacao ao servidor de qual o URL relativo em que pretendemos que a nossa servlet seja executada. Neste exemplo, procuramos o ficheiro “web.xml”, que podemos encontrar em “WebContent/WEB-INF/” e editamos o seguinte (ver também Figura 2.2) Picheire ‘web.sml” Cap13 index.html index.htm< /welcome-file> index. jsp default .html default .htm Testeservlet Testeservlet pac TesteServlet s TesteServlet © FCA - Editora de Informanca Serviets 297 /Testeservlet Ficura 2.2 - Edigéo do “web.xml” Apés esta definigao, deverd existir um mapeamento explicito na entrada ‘Servlet Mappings’, mostrando o mapeamento da servlet que cridmos (Figura 2.3): 7 ia Deployment Descriptor Capi EY Contest Parameters G) vor Pages 2 Fite Mappings 7p Fites 46 Lienert 4 & Servet Mappines & MeteSeret > TesteSeret © Servet, Ficura 2,3 = Mapeamento da serviet Podemos executar agora a nossa servlet e ver 0 resultado da execugéo quer no Eclipse quer no browser, acedendo ao URL que o Eclipse nos mostra (Figura 2.4). ovine x © 2 © i Dicaion Ola Mundo Ficura 2.4 - Execugao da servlet Repare-se no URL que ¢ utilizado, que termina com 0 mapeamento da servlet que efetudmos. Com base nesta designagao, 0 servidor aplicacional (neste caso, 0 Tomcat) identifica e executa a servlet correspondente. © FOA~ Editora de Informatica PARTE IV JAVA EMPRESARIAL A quarta parte do livro descreve a forma como 0 Java ¢ utilizado para implementar aplicagées no contexto empresarial. CAP.1 Introducao ao Java Empresarial CAP.2 Comunicaces e Dados CAP.3 Expressées Lambda e Interfaces Funcionais CAP.4 Core JEE: Enterprise Java Beans CAP.5 Messaging CAP.6 WebServices CAP.7 Tecnologias de Suporte CAP.8 Java Mével FT 0 contesido destes eapitulos encontra-se também Aisponivel emfornate eBook. Visite a nossa prigina wie feast JAVA MOVEL No universo do Java vamos fazer agora uma breve introducao a um dos temas em maior expansao nos tiltimos anos: a execugdo de Java em dispositivos méveis e portiteis. O assunto nao é novo, e para quem tenha acompanhado a evolucéo do Java desde o inicio & mesmo um regresso as origens da prépria tecnologia. Nao deixa, contudo, de ser inte- ressante que as abordagens referidas nas trés seccoes deste capitulo sejam muito distintas, e de alguma forma alternativas, na mobilizagio de aplicagées para execucio em tele- méveis, tablets e smartphones. 8.1 JAVA MICRO EDITION (JME) Inicialmente, as caracteristicas de portabilidade da linguagem e tecnologia Java estavam associadas 4 necessidade de execular programas em qualquer tipo de plataforma © dispositivo, especialmente em cletrénica de consumo, tendo sido casual 0 aproveita- mento que acabou por se fazer da tecnologia Java para adaptar a WWW, onde acabou por ter a sua grande explosio de utilizag4o. Quis a historia que a utilizagao do Java em dispositivos eletrénicos que nao computadores voltasse a estar na ordem do dia com a revolucao da telefonia mével, especialmente a partir do ano 2001, em que apareceram os primeiros telefones comerciais com maquinas virtuais Java instaladas. A tecnologia de que falamos é uma das versdes do Java: Java ME ou JME, anteriormente designado por J2ME, uma versao pensada e desenhada para ser executada em dispositivos de hardware modestos e com poucos recursos de meméria e processa- mento, Esta tecnologia ja existe ha alguns anos e estd neste momento num ponto de estagnagao, nao tendo havido evolucées de relevo desde 2008, nomeadamente nao incor- porando sequer compatibilidades com as versées 5 ¢ 6 do Java. Isto aconteceu porque, com 0 advento dos smartphones e 0 desenvolvimento muito significativo do seu hardware (os mais recentes smartphones e tablets trazem mais meméria e processamento do que os computadores portateis tinham em 2008), deixou de fazer sentido trabalhar com base nas limitacdes de hardware nas quais se baseia a filosofia do JME, tendo surgido outras tecnologias para o desenvolvimento de aplicagées méveis (Java Android ADK para Android, Objective C para iPhone e C# para Windows Mobile) © FOA~ Edilora de Informatica 492 PROGRAMAGAO EM JAVA — CURSO COMPLETO. No entanto, as aplicagdes méveis do Java estao longe de se cingir a estes dispo- sitivos, estendendo-se a miiltiplos fins e tecnologias fisicas, continuando a fazer sentido disponibilizar tecnologias que possam correr com recursos de hardzoare muito limitados. Ou seja, apesar de ainda serem uma das principais ulilizagdes do JME nos dias de hoje, os telefones méveis estao longe de ser a tinica aplicagdo de JME no mercado. Entre as utili- zagdes que jd se fazem desta tecnologia, podemos destacar as seguintes formas e dispo- sitivos: Telefones méveis (2.5G e 3G); PDA; Cartées inteligentes (SIM, de crédito, de acumulagdo de pontos, para paga~ mentos e para controlo de acessos); Equipamentos de televisao interativa; Equipamentos de automéveis; Eletrodomésticos. Para poder implementar uma maquina virtual Java (JVM) em dispositivos de tamanho por vezes muito reduzido e com capacidade de processamento pequena, os implementadores recorreram a versdes reduzidas e elementares da tecnologia Java e a algumas otimizacées, mantendo, no entanto, a coeréncia de arquitetura cliente-servidor Java. Ha varias variantes de Java em utilizacao nestas induistrias 8.1.1 JAVA CARD Trata-se da versdo mais reduzida para dispositivos extremamente pequenos de que destacamos os cartées SIM dos telefones méveis ou os mais modernos cartdes inte- ligentes (de crédito, para pagamentos ou de acumulagao de pontos). Para o leitor ter uma ideia, estamos a falar de dispositivos que tém tipicamente meméria RAM de 1 Kbyte (!), usada somente para dados e aplicagdes, e de meméria ROM e/ou EPROM de 32 Kbytes, onde residird a JVM. Muiltiplas aplicagées podem correr num sé cartao inteligente, podendo estas apli- cagées ser substituidas ou modificadas apés 0 carto estar em utilizagao (nos operadores de teleméveis, as aplicagdes podem ser descarregadas diretamente utilizando uma tecno- logia denominada Over The Air ~ OTA) ou importadas a partir de software que corra nos PC e transferidas por infravermelhos ou biuetooth, uma tecnologia radio de curta distin- cia com grande utilizacao. Também podem ser invocadas aplicagées Java em servidores remotos através da rede, aumentando o poder da tecnologia, dado que as aplicacées a correr nos mintisculos © FOA— Editora de Informatica Java Mover 493 dispositivos sao, na pratica, clientes Java de componentes e servicos JEE. No entanto, a comunicaao no caso dos Java Cards nao é TCP/IP, mas sim um protocolo de comu- nicacées half duplex baseado em comandos e respostas. 8.1.2 EMBEDDED JAVA Esta variante é um subconjunto especifico de tecnologia Java que pode ser adaptado pelo implementador para conter somente as classes e API de que necesita a aplicacdo especifica que 14 vai correr. Sendo altamente configuraveis, estes ambientes constroem-se e otimizam-se caso a caso, podendo a JVM ocupar mais ou menos espaco conforme as necessidades das aplicagées que a usam. Tipicamente, utiliza-se esta variante em ambientes sem interacao com o utilizador como produtos de eletrénica de consumo ou da industria automével. 8.1.3 CONNATED LIMITED DEVICE CONFIGURATION (CLDC) Esta variante foi construida a pensar em dispositivos com recursos e conecti- vidade limitados, mas nao tao reduzidos como os cartes. Estamos aqui a falar de capacidades de meméria que, somando ROM e RAM, rondarao os 512 Kbytes e de veloci- dades de ligagao a rede de 9600 bps (as condigées de hardware ¢ comunicacées de um telefone mével GSM ou de um PDA com conectividade GSM). O CLDC implementa as bibliotecas base de Java (“java.lang” e “java.util”), as capacidades de I/O e de rede e os mecanismos de seguranca, mas deixa completamente de fora questées de interface com o utilizador, gestao de eventos e restantes funcionali- dades Java de suporte a interagao com o utilizador. As aplicagoes CLDC podem comunicar com outras aplicagdes e servigos Java em HTTP ou por TCP/IP sockets, mas nao por RMI. 8.1.4 MOBILE INFORMATION DEVICE PROFILE (MIDP) E a principal tecnologia do JME. Esta especificagao foi desenvolvida por um con- sércio de alguns dos maiores fabricantes mundiais de telefones méveis, PDA e operadores, e ndo € mais do que um perfil criado sobre 0 CLDC, mas acrescentando algu- mas funcionalidades de interagéo com o utilizador. O MIDP exige um minimo de 128 Kbytes de ROM e, pelo menos, 40 Kbytes de RAM para ser implementado, bem como de um dispositive com um minimo de possibilidade de interacao com o utilizador (teclado ou ecra tatil) e de comunicacdes via rede (TCP/IP) © FCA — Editora de Informatica PROGRAMAGAO MIAVA 5.° Edigao Atualizada Curso Completo Java uma das linguagens de programagao mais utilizadas hoje em dia. A sua versao mais re- cente (versa 8) introduz um nove paradigma de programagao que a relanca para a modernidade Nesta altura em que o Java se afirma em miiltiplos ambientes de desenvolvimento e em que as interfaces por plug-in comegam a ser descontinuadas nos browsers, surge esta obra com varios exemplos praticos, escrita de forma simples e acessivel, destinada a todos aqueles que possuem conhecimentos basicos de programagdo em outras linguagens e queiram aprender Java. A sua estrutura renovada foi igualmente pensada para a tornar util também aos leitores que, tendo conhecimentos elementares de Java, pretendam aprofundar temas especificos nas varias vertentes aqui cobertas: utilizagao Web, cliente-servidor e mével, JSE, JEE, Serviets, JSP e JSF, entre outras. Os exemplos apresentados suportam-se no Eclipse como editor de referén- cia, no entanto, 0 leitor pode utilizar qualquer outro ambiente de desenvolvimento Java. Este livro cobre as varias facetas do Java (nas suas versées mais recentes: 8 e EE 7), tendo sido incluldos diversos tépicos relevantes para a verso Java 8, e ensinando o leitor a construir desde os programas mais elementares as aplicagdes empresariais JEE, passando pelas inter- faces para paginas Web. Dividido em quatro partes (Introdugao ao Java; Criagdo de interfaces em Java; Java na Web; Java empresarial), este livro inclui temas atuais e de relevancia, como: +O que é 0 Java e como se utiliza; + Arquitetura de aplicagées JEE + Descrigao completa da sintaxe Java; e Enterprise Java Beans; + Filosofia de Programacao Orientada a Objetos; + Java Mével; + Construgao de Interfaces Web; + Expressées Lambda; + Utilizagéo avangada do Java: Serviets, JDBC, + Interfaces Funcionais. RMI, CORBA, Java Beans; No final do livro é disponibilizado um Anexo com referéncias online e lista de classes e um Glossério de correspondéncia dos principais termos técnicos para o Portugués do Brasil. Pedro Coelho ~ Consuitor e Gestor de Projetos de TI, efetua projetos nas éreas da Web e da Internet ha mais de 20 anos. Licenciado em Engenharia Eletrotécnica e de Computadores pelo Instituto Superior Técnico. Autor de varios livros sobre Sistemas de Informagéo, Internet, Web e Programagao, todos edita- dos pela FCA. Exemplos apresentados no lito disponivels em erwwica.pt até este se esgotar ou ser publicada nov Ivalzada ou com alteracées, wy

Você também pode gostar