Top Banner
15

00_net

Oct 08, 2015

Download

Documents

netbeans
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • DedicatriaEste livro dedicado minha filha Adriana Nina e ao meu genro Luciano, que me deram de pre-sente a mais linda neta que um homem poderia ter. Maria Ceclia acabou de completar um ano de vida no dia 2 de maio de 2008, anda com extrema desenvoltura, e se mostra dona de uma persona-lidade marcante. Quisera eu ter tempo de v-la transformar-se na bela mulher que um dia ser.

    Sobre o autorIvan Mecenas graduado em Cincias Econmicas pela Universidade Federal de Sergipe, pos-suindo cursos de extenso em Anlise Administrativa e Anlise de Sistemas.Trabalhou na Caixa Econmica Federal, como Analista de Organizao & Mtodos, e na Funda-o dos Economirios Federais - FUNCEF, exercendo as funes de Analista de Sistemas, Admi-nistrador de Dados e Administrador de Bancos de Dados. Atualmente trabalha como Analista de Sistemas na POLITEC e eventualmente realiza trabalhos como desenvolvedor independente.Escreve artigos periodicamente para revistas tcnicas, entre elas, Active Delphi e SQL Magazine.Desenvolveu duas ferramentas de trabalho freeware que esto disponveis h algum tempo na Internet: uma delas, a APFplus, gerencia projetos de contagem de pontos de funo; a outra, cha-mada MDOConsole, uma interface grfica para o banco de dados Firebird.Publicou os seguintes livros:Editora Book Express:Delphi 5 Objetos e HeranaDelphi 5 Anlise de Pontos de FunoInterBase 6 Guia do DesenvolvedorDelphi 6 & InterBase 6

    Editora Alta Books:Delphi 6 - Desenvolvendo ProjetosFirebird & Delphi 6 - Guia do DesenvolvedorJava 2 - Fundamentos, Swing e JDBCManual do Empregador DomsticoEclipse 3.0.1 - Programando com Visual EditorQualidade em Software - Uma Metodologia para Homologao de SistemasBanco de Dados - Do Modelo Conceitual Implementao FsicaEclipse 3.1 - Programando com Visual EditorRuby - Investigando a Linguagem

    Home Page:www.ivanmecenas.com

  • PrefcioEmbora Java tenha se consolidado como linguagem de programao, notadamente no ambiente In-ternet, a definio de ambientes adequados para produzir aplicaes ainda est em franca evoluo. A maior dificuldade dos principiantes saber por onde comear e, principalmente, que tipo de fer-ramenta utilizar. H muitos recursos disponveis e diversos frameworks, de forma que a composio de um ambiente de programao Java pode ser feita com inmeras combinaes de ferramentas.O NetBeans tem merecido diversos artigos em revistas especializadas no Brasil e no exterior, revelando-se como uma ferramenta capaz de satisfazer grande parte das exigncias do ambiente de programao Java.A motivao do livro justamente mostrar o que o ambiente integrado NetBeans capaz de fazer, e como ele pode ser uma ferramenta extremamente til no desenvolvimento de aplicaes Java, sejam convencionais, sejam para a Internet.James Gosling, o criador da linguagem Java, prefaciando o livro NetBeans IDE Field Guide, assegura que desenvolve todos os seus projetos utilizando o NetBeans. Fernando Lozano, editor-adjunto da revis-ta Java Magazine, afirma que o NetBeans tem lugar assegurado entre os melhores ambientes integrados para desenvolvimento em Java, tanto para principiantes, quanto para profissionais experientes.Com estrutura de projetos baseada na ferramenta Apache Ant, recurso considerado imprescind-vel em aplicaes Java, o NetBeans realmente se mostra como um software maduro e confivel, apto a se popularizar entre os desenvolvedores espalhados nos quatro cantos do mundo.Espero que este trabalho, escrito sem a pretenso de ser um guia de referncia, possa ajud-lo a entender melhor esse consagrado ambiente de programao.

    Ivan Mecenas - Braslia, julho/2005

    Prefcio Segunda EdioDesde o lanamento da primeira edio deste trabalho, quando o NetBeans estava na verso 4.1, a fer-ramenta continua em plena ascendncia e vem se tornando um dos ambientes de programao prefe-ridos pela comunidade de programadores em torno do globo. Prova de sua evoluo a capacidade de lidar com vrias linguagens de programao e diversos frameworks, culminando com Ruby e Rails.Esta segunda edio um texto completamente revisado e revigorado. Para facilitar o aprendiza-do, o Captulo 3 foi desdobrado em dois outros, um dos quais incorporou o contedo do nico apndice do livro, que foi eliminado.Os projetos-exemplos originais, EscolaDsk e EscolaWeb, permaneceram inclumes. Todavia, o projeto EscolaDsk foi ligeiramente adaptado e testado para ser utilizado com o servidor de banco de dados PostgreSQL, acrescendo sua habilidade anterior de trabalhar com o MySQL e o Fire-bird. O texto mostra como obter, instalar e utilizar o PostgreSQL.Para comprovar a facilidade do NetBeans em trabalhar com outras linguagens que no Java, o elemento predominante no texto, foi introduzido o Captulo 10 para mostrar como o projeto EscolaWeb, baseado em JSP/Java, poderia ser implementado com Ruby e o framework sensao do momento: Rails.Assim, espero que o novo contedo possa auxiliar os desenvolvedores a realizarem suas atividades sob o patrocnio deste importante e reconhecido ambiente integrado de desenvolvimento que o NetBeans.

    Ivan Mecenas - Braslia, maio/2008

  • Sumrio

    INTRODUO ................................................................................................................IX

    CAPTULO 1 ...................................................................................................................... 1

    O Que o NetBeans .................................................................................................. 1Distribuies .............................................................................................................. 1Instalao.................................................................................................................... 2A Interface ................................................................................................................. 4A Pequena Aplicao Al Mundo ............................................................................ 5O Editor de Cdigos .................................................................................................. 9Instant Name............................................................................................................ 16

    CAPTULO 2 .................................................................................................................... 17

    Aspectos Bsicos do NetBeans ................................................................................. 17Lidando com Projetos .............................................................................................. 17Configurando CLASSPATH ................................................................................... 19O Processo de Compilao ....................................................................................... 20Lidando com Pacotes ............................................................................................... 21Lidando com Arquivos ............................................................................................. 21Configurando o Ambiente ....................................................................................... 23

    CAPTULO 3 .................................................................................................................... 25

    Lidando com Banco de Dados (1) ............................................................................ 25O Arquivo netbeans6.zip .......................................................................................... 25Drivers ...................................................................................................................... 25Drivers/Firebird ........................................................................................................ 26Drivers/MySQL ....................................................................................................... 26Drivers/PostgreSQL................................................................................................. 26HTML ..................................................................................................................... 26ProjetoEclipse .......................................................................................................... 26Projetos/EscolaDsk .................................................................................................. 26Projetos/EscolaWeb ................................................................................................. 26Projetos/JSP ............................................................................................................. 26Testes/EscolaRuby ................................................................................................... 26Criando Bibliotecas (Conectores) ............................................................................ 27Abrindo os Projetos .................................................................................................. 29Utilizando os Conectores ......................................................................................... 30O N Drivers da Viso Services ............................................................................... 31Projetos do Eclipse ................................................................................................... 31

    CAPTULO 4 .................................................................................................................... 35

    Lidando com Banco de Dados (2) ............................................................................ 35

  • Sobre o MySQL ....................................................................................................... 35Sobre o PostgreSQL ................................................................................................. 37Sobre o Firebird ........................................................................................................ 38O Banco de Dados escola ......................................................................................... 40Criando o Banco no MySQL ................................................................................... 41O Script MySQLCreate.sql ..................................................................................... 42O Script EscolaInsert.sql......................................................................................... 43O Script PostgreSQL.sql.......................................................................................... 45Criando o Banco no Firebird .................................................................................... 46O Script FirebirdCreate.sql ...................................................................................... 47Utilizando o NetBeans para Conexo com o Banco de Dados escola ...................... 48

    CAPTULO 5 .................................................................................................................... 51

    O Projeto EscolaDsk ................................................................................................ 51A Criao do Projeto ................................................................................................ 51A Classe Configuracao ............................................................................................. 56O Arquivo escoladsk.properties ................................................................................ 58A Classe Conexao .................................................................................................... 59A Classe RegistrarMateria ....................................................................................... 61A Classe RegistrarProfessor ..................................................................................... 67A Classe RegistrarQualificacao ................................................................................ 71A Classe PesquisarMateria ....................................................................................... 76A Classe PesquisarProfessor ..................................................................................... 80A Classe PesquisarQualificacao ................................................................................ 84

    CAPTULO 6 .................................................................................................................... 89

    Depurando Aplicaes ............................................................................................. 89Iniciando no Mtodo Main ...................................................................................... 89Iniciando Fora do Mtodo Main .............................................................................. 91Usando Breakpoints ................................................................................................. 92Gerenciando Interrupes ........................................................................................ 93

    CAPTULO 7 .................................................................................................................... 97

    A Grande Rede ........................................................................................................ 97O Protocolo HTTP ................................................................................................. 98Uniform Resource Locator ....................................................................................... 98A Linguagem HTML .............................................................................................. 99A Estrutura de Uma Pgina Web ............................................................................. 99Comandos Bsicos ................................................................................................. 100Cabealho ............................................................................................................... 100Linha Horizontal ................................................................................................... 100Pargrafo ................................................................................................................ 101Quebra de Linha .................................................................................................... 101Comandos de Estilo ............................................................................................... 102Lista Ordenada ....................................................................................................... 103Lista Desordenada .................................................................................................. 103

  • Ligaes e ncoras ................................................................................................. 104Ligaes entre Servidores ....................................................................................... 105Tabelas.................................................................................................................... 106Formulrios ............................................................................................................ 106Java Server Pages .................................................................................................... 108Abreviaes para Pginas JSP ................................................................................. 110Servlets ................................................................................................................... 111Aplicaes Web ...................................................................................................... 112

    CAPTULO 8 .................................................................................................................. 113

    O Projeto EscolaWeb ............................................................................................. 113Arquitetura MVC .................................................................................................. 113JavaBeans ................................................................................................................ 114Tomcat ................................................................................................................... 114GlassFish ................................................................................................................ 115A Criao do Projeto .............................................................................................. 115A Estrutura do Projeto ........................................................................................... 118Classe de Conexo .................................................................................................. 120Classes de Exceo ................................................................................................. 121A Classe EscolaWebNegocioException ................................................................. 122A Classe EscolaWebPersistenciaException ............................................................ 123Classes Data Transfer Objects (DTO) ................................................................... 123A Classe ProfessorDTO ......................................................................................... 123A Classe MateriaDTO ........................................................................................... 125A Classe QualificacaoDTO ................................................................................... 125Classes Data Access Objects (DAO) ...................................................................... 126A Classe ProfessorDAO ......................................................................................... 127A Classe MateriaDAO ........................................................................................... 127A Classe QualificacaoDAO ................................................................................... 128A Classe FabricaDAO ............................................................................................ 128Classes IMPL (Implementation) ........................................................................... 128A Classe ProfessorIMPL ....................................................................................... 128A Classe MateriaIMPL ......................................................................................... 130A Classe QualificacaoIMPL .................................................................................. 132Classes BO (Business Objects) ............................................................................... 133A Classe ProfessorBO ............................................................................................ 133A Classe MateriaBO .............................................................................................. 134A Classe QualificacaoBO ....................................................................................... 134Controlador ............................................................................................................ 135A Classe ControladorServlet .................................................................................. 137Pginas JSP ............................................................................................................ 142A Pgina index.jsp .................................................................................................. 143A Pgina cabecalho.jsp ........................................................................................... 144A Pgina rodape.jsp ................................................................................................ 144A Pgina error.jsp ................................................................................................... 145A Pgina registrarProfessor.jsp ............................................................................... 146A Pgina alterarProfessor.jsp .................................................................................. 146A Pgina removerProfessor.jsp ............................................................................... 147

  • A Pgina listarProfessores.jsp ................................................................................. 147A Pgina registrarMateria.jsp ................................................................................. 148A Pgina registrarQualificacao.jsp .......................................................................... 149A Pgina consultarQualificacao.jsp ........................................................................ 149A Pgina listarQualificacao.jsp ............................................................................... 150Monitorao do Projeto ......................................................................................... 151Gerenciando Servidores ......................................................................................... 151Sobre a Arquitetura do Projeto ............................................................................... 152

    CAPTULO 9 .................................................................................................................. 153

    Passagem de Parmetros ......................................................................................... 153Sesses .................................................................................................................... 153Cookies .................................................................................................................. 153O Projeto JSP ......................................................................................................... 154A Pgina index.jsp .................................................................................................. 154A Pgina index2.jsp ................................................................................................ 155

    CAPTULO 10 ................................................................................................................ 159

    O Projeto EscolaRuby ............................................................................................ 159Ruby ....................................................................................................................... 159Rails ....................................................................................................................... 160Algumas Convenes ............................................................................................. 161WEBrick ................................................................................................................ 162Criando o Projeto ................................................................................................... 162Configurando a Base de Dados .............................................................................. 164Criando as Bases de Dados .................................................................................... 165Criando a Estrutura MVC ..................................................................................... 166Criando o Modelo Professor .................................................................................. 166A Classe CreateProfessors ...................................................................................... 167A Classe ProfessorsController ................................................................................ 168O Arquivo index.html.erb ...................................................................................... 170O Arquivo new.html.erb ........................................................................................ 171O Arquivo edit.html.erb ......................................................................................... 172O Arquivo show.html.erb ....................................................................................... 172O Arquivo professors.html.erb ............................................................................... 173Criando o Modelo Materia .................................................................................... 173Criando o Modelo Materia_Professor .................................................................... 174Configurando Rotas ............................................................................................... 175O Controlador principal_controller........................................................................ 176O Arquivo Views/principal/index.html.erb ............................................................ 176O Arquivo routes.rb ............................................................................................... 177O Framework ActiveRecord ................................................................................... 177Migrao ................................................................................................................ 178Testando o Projeto ................................................................................................. 179Consideraes Sobre o Rails .................................................................................. 180

    REFERNCIAS BIBLIOGRFICAS ........................................................................... 181

  • Introduo

    OBJETIVO

    O livro pretende mostrar os principais aspectos do ambiente de desenvolvimento integrado. NetBeans, uma ferramenta que vem se consolidando como instrumento de trabalho de milhares de desenvolvedores.

    REQUISITOS

    Embora se refira essencialmente programao Java, o livro no pretende ensinar o uso da lin-guagem, j que se parte do princpio de que o leitor j tenha conhecimentos suficientes sobre ela, dominando, tambm, conceitos como classes, mtodos, interfaces, propriedades, construtores, dentre outras. Tambm so necessrios conhecimentos rudimentares da linguagem Ruby, que ora revoluciona o desenvolvimento de aplicaes Web sob o escudo do framework Rails. Portan-to, espera-se que o leitor seja capaz de absorver sem dificuldade qualquer trecho de cdigo Java presente no texto e entenda pelo menos a formatao de Ruby.

    ORGANIZAO

    O livro est organizado em 10 captulos, trs dos quais dedicados a aplicaes-exemplos, constru-das para estimular o leitor a criar os seus prprios projetos.O Captulo 1, O Ambiente de Desenvolvimento Integrado NetBeans, faz uma primeira apro-ximao com o ambiente, detalha os pacotes disponveis, mostra a instalao e ensina o leitor a produzir a aplicao-modelo dos livros de informtica: Al Mundo!.O Captulo 2, Aspectos Bsicos do NetBeans, aborda os detalhes mais importantes do NetBeans, aqueles considerados essenciais para quem est utilizando o ambiente pela primeira vez.No Captulo 3, Lidando com Banco de Dados (1), so feitas consideraes sobre como utilizar o arquivo netbeans6.zip, que acompanha o livro, e detalha a criao de conectores para os bancos de dados MySQL, Firebird e PostgreSQL. Tambm mostra como fazer a importao de projeto do Eclipse para o NetBeans.

  • Netbeans 6.1: Desenvolvendo em Java e Ruby10

    No Captulo 4, Lidando com Banco de Dados (2), so apresentados os servidores de bancos de dados MySQL, Firebird e PostgreSQL, conhecidos e aprovados pela comunidade de informtica, sobre os quais se assentaro as aplicaes-exemplos apresentadas no texto.A primeira aplicao-exemplo faz parte do Captulo 5, com o ttulo O Projeto EscolaDsk. Trata-se de uma aplicao desktop, construda com os tradicionais componentes Swing de Java. Com-plementando o Captulo 5, o Captulo 6, Depurando Aplicaes, mostra os recursos do NetBeans que apiam a depurao de aplicaes.No Captulo 7, intitulado A Grande Rede, faz-se uma abordagem sobre a World Web Wide e como ela se tornou pea fundamental para aplicaes Internet. Nele so tambm mostradas as tecnologias presentes nestas aplicaes como: HTML, JSP e Servlets.A segunda aplicao-exemplo mostrada no Captulo 8, O Projeto EscolaWeb, onde um projeto construdo com a arquitetura MVC (Modelo-Visualizao-Controlador) estudado detalhadamente.O Captulo 9, Passagem de Parmetros, complementa o captulo anterior, mostrando como par-metros podem ser enviados de uma pgina para outra com o uso de sesses e cookies.Por fim, o Captulo 10, O Projeto EscolaRuby, a novidade desta segunda edio, mostra o fra-mework Rails em ao na criao de um projeto para Internet, similar ao projeto EscolaWeb, com a mesma filosofia Modelo-Visualizao-Controlador.Todos os exemplos e projetos do livro fazem parte do arquivo netbeans6.zip, disponvel no site da editora. O contedo do arquivo apresentado no Captulo 3.

  • CAPTULO 1

    O Ambiente de Desenvolvimento Integrado NetBeans

    O NetBeans, um dos mais antigos projetos criados para suportar a linguagem Java, tem sido alinhado entre os melhores ambientes integrados de desenvolvimento e sua popularidade avana a cada dia entre os profissionais de informtica. Este captulo tem a misso de tecer as primeiras consideraes sobre essa ferramenta, que vem exibindo um notvel grau de maturidade e um con-junto de recursos e facilidades mpares.

    O Que o NetBeansEscrito completamente em Java, o NetBeans nasceu de uma pequena empresa da Repblica Tche-ca, que foi adquirida pela Sun Microsystems. Apesar de ser, talvez, o mais antigo dos projetos livres de ambientes de desenvolvimento integrado, o NetBeans somente agora comea a atingir a popularidade que merece, principalmente a partir da verso 3.6, quando ganhou uma nova inter-face com o usurio, abandonando a estrutura MDI (Multiple Document Interface), e da verso 4.0, ao adotar estrutura de projetos baseada na ferramenta Apache Ant, atualmente considerada indispensvel em qualquer projeto Java.

    DistribuiesEste livro est baseado na verso 6.1 do NetBeans. A Figura 1.1 mostra a pgina de onde foi efetu-ado o download do programa de instalao. Pode-se ver que so oferecidos diversos pacotes (sete, ao todo) que podem ser baixados de acordo com as necessidades do usurio. Para atender aos seus objetivos didticos, o livro utilizou o pacote completo (All). Um detalhe importante a destacar na Figura 1.1 que o NetBeans pode servir de ambiente de desenvolvimento para diversas linguagem alm de Java. C, C++ e Ruby esto entre elas. Outro detalhe que o pacote Web & Java EE inclui os servidores GlassFish e Apache Tomcat, necessrios a aplicaes Web desenvolvidas em Java. O pacote All, obviamente, tambm inclui os citados servidores.

  • Netbeans 6.1: Desenvolvendo em Java e Ruby12

    FIGURA 1.1 Tela de download do NetBeans 6.1.

    InstalaoPara usar o NetBeans, a mquina virtual Java ( JDK 6 ou JDK 5) precisa estar instalada na mquina usuria. Para os propsitos do livro, foi utilizada a distribuio JDK 6 Update 6, como indica a Figura 1.2.

    FIGURA 1.2 Tela de download do JDK 6 Update 6.

  • Captulo 1: O Ambiente de Desenvolvimento Integrado NetBeans 13

    A instalao do NetBeans no oferece dificuldade. A Figura 1.3 mostra como se apresenta a tela inicial do instalador.

    FIGURA 1.3 Tela de instalao do NetBeans 6.1.

    Observando-se a Figura 1.3, percebe-se que a instalao pode ser adaptada aos interesses do desenvolvedor. Acionando o boto Customize, o leitor obter a tela indicada na Figura 1.4, onde so oferecidas diversas opes (pacotes). Por exemplo, possvel desmarcar o pacote Ruby e as-sinalar o pacote Apache Tomcat 6.0.16. A Figura revela que o continer Tomcat foi selecionado para instalao, o que no ocorre por padro.

    FIGURA 1.4 Selecionando pacotes de instalao do NetBeans.

    Caso o pacote GlassFish seja selecionado para instalao, como foi feito para os objetivos do livro, a tela indicada na Figura 1.5 aparecer ao longo do processo. Atente para as portas HTTP, HTTPS e Admin, bem como para o nome do administrador do servidor (admin) e a senha pa-dro (adminadmin).

  • Netbeans 6.1: Desenvolvendo em Java e Ruby14

    Se o continer Tomcat for marcado para instalao, o programa instalador permitir que o usurio escolha a pasta que desejar.

    FIGURA 1.5 Detalhes da instalao do servidor GlassFish.

    A Interface

    A interface do NetBeans pode ser vista na Figura 1.6. A pgina inicial (Start Page) traz duas guias (abas): Welcome to NetBeans Ide 6.1 e My NetBeans. A primeira guia oferece acesso a documentao, tutoriais, entre outras opes, alm de permitir a criao de projetos baseados em templates (modelos) para diversos tipos de aplicao (Web, Mobility etc.). Abaixo da barra de ferramentas, esquerda, podem ser vistos trs botes que oferecem vises distintas: Projects (Projetos), Files (Arquivos) e Services (Servios). As vises Projects e Files exibem as classes e os arquivos dos projetos em desenvolvimento, enquanto a viso Services exibe configuraes globais do ambiente como, por exemplo, servidores J2EE preparados para execuo de projetos Web, processos em execuo na ferramenta e conexes a banco de dados via JDBC.Um detalhe importante da viso Services diz respeito a drivers de conexo com bancos de da-dos. Como ilustra a Figura 1.7, a instalao do NetBeans disponibiliza drivers de conexo para os bancos Java DB, MySQL e PostgreSQL. Outras conexes, contudo, podem ser facilmente obtidas com a utilizao da tecnologia JDBC-ODBC.A ttulo de esclarecimento, Java DB uma distribuio Sun do banco de dados relacional Apache Derby, um produto de cdigo-fonte aberto escrito em Java. Por ser um banco leve, poderoso e fcil de usar, tem sido muito utilizado por desenvolvedores para testar suas aplicaes.

  • Captulo 1: O Ambiente de Desenvolvimento Integrado NetBeans 15

    FIGURA 1.6 Tela de apresentao do NetBeans 6.1.

    FIGURA 1.7 O n Drivers da viso Services do NetBeans.

    A Pequena Aplicao Al Mundo

    Para uma primeira aproximao com o ambiente integrado NetBeans, nada mais natural que come-ar com a consagrada aplicao Al Mundo, to presente em diversos livros de informtica.Visto que qualquer trabalho com o NetBeans orientado a projetos, a primeira coisa a se fazer criar um. A partir da tela inicial (Figura 1.6), existem quatro opes para se criar um projeto: acionar o boto New Project (o segundo, da esquerda para a direita, na barra de ferramentas), acionar a opo File > New Project do menu, utilizar a combinao de teclas Ctrl+Shift+N ou selecionar uma das opes da rea de modelos de projetos Try a Sample Project. Qualquer uma dessas opes habilita a tela New Project ilustrada na Figura 1.8. Como mostra a figura, existe a possibilidade de serem criados vrios tipos de projeto como, para citar alguns, Java, Web, En-terprise e Mobility. Tambm possvel, como mencionado acima, a criao de projetos baseados em exemplos (Samples) disponibilizados pela ferramenta.