apostila netbeans

Upload: nagela-aguiar

Post on 11-Jul-2015

754 views

Category:

Documents


1 download

TRANSCRIPT

EDSON GONALVES

AGRADECIMENTOSPrimeiramente gostaria de agradecer os inmeros e-mails de leitores elogiando a primeira edio deste livro e tambm os que criticaram, pedindo mais detalhes a respeito de determinados assuntos. Tambm agradeo o apoio dado pela Editora Cincia Moderna para o desenvolvimento desta segunda edio. Um agradecimento especial ao apoio do JUG Leader e Founding Java Champion, Daniel deOliveira, do DFJUG.

INTRODUOMais uma verso e, novamente, o NetBeans amadurece e surpreende com novas caractersticas que tornam o desenvolvimento mais agradvel e gil. A verso 6 desta fantstica IDE no poderia ser diferente de seus lanamentos anteriores, onde vemos que a inteno tornar a ferramenta uma plataforma de desenvolvimento para vrias linguagens. Esta nova verso, alm de aproveitar melhor as facilidades incorporadas nas especificaes Java EE 5, conta tambm com as caractersticas que vem mudando o mundo do desenvolvimento Web, como o framework Rails da linguagem Ruby. Mais ainda, possvel, atravs do uso de JRuby, rodar aplicaes Ruby on Rails (RoR) sobre uma Java Virtual Machine, agregando as facilidades do desenvolvimento com RoR, aliados a estabilidade e integrao com sistemas Java rodando sobre os servidores de aplicaes. Alm do Ruby, a linguagem PHP tida como plu, gin adicional na verso 6.0, tambm ganhou seu lugar na IDE definitivamente na verso 6.1, ainda em desenvolvimento no momento em que este livro escrito. Com um nmero maior de linguagens e frameworks suportados, o desenvolvedor pode contar com assistentes que se integram tanto para o desenvolvimento de aplicaes Java, como tambm na integrao com o poderoso framework Rails (RoR) para o mesmo principio. Outra novidade a incorporao do editor visual ao NetBeans IDE 6.x, tido antes como um pacote separado, para gerao de aplicaes Web que utilizam o framework JavaServer Faces. Seu nome foi rebatizado para Visual Web JavaServer Faces Applications e mais uma das diversas facilidades que o desenvolvedor Java conta na construo de aplicaes Web. Para este livro, nesta nova edio, cerca de 50% do material foi reescrito e ampliado. O leitor agora tem em suas mos informaes que vo desde a construo de aplicaes Web bsicas, contendo pginas JSP e Servlets, como tambm o foco na utilizao de JavaServer Faces, incluindo Facelets. O uso de JPA (Java Persistence API) e EJB 3 foram adicionados, tendo em vista os leitores que esto aproveitando as facilidades que ambos incorporam no desenvolvimento de aplicaes Web.

VIII

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

O uso de Ruby on Rails foi adicionado, incluindo o JRuby on Rails para programadores Java, focado na verso 2.0.2 do framework. Neste caso, no s um CRUD feito atravs da IDE, mas tambm h muitas explicaes sobre sua arquitetura e um exemplo com relacionamento. A grande novidade neste livro est no aprimoramento dos captulos sobre Visual Web JavaServer Faces. Para aqueles que desejam trabalhar com esta ferramenta, fora elaborado em dois captulos um aplicativo completo, utilizando seus principais componentes com acesso a dados. E para aqueles que desejam utilizar JPA e Hibernate com Visual Web JavaServer Faces, um captulo especial fora dedicado a este assunto, incluindo o uso de Spring. Por fim, h no CD-ROM como brinde, diversos Captulos Extras que contm o trabalho com Struts, criando um CRUD completo, a utilizao do novssimo plugin iReport for NetBeans, integrando-se a ferramenta e facilitando a criao de relatrios JasperReports e dois estudos de caso completos, envolvendo o Visual Web JSF, incluindo o uso de DAO genrico, injeo de dependncias com Spring Framework e a JPA com o Hibernate como provider.

QUEM DEVE LER ESTE LIVRO? Este livro foi escrito para desenvolvedores com pouca ou nenhuma experincia na utilizao do NetBeans IDE. Embora sejam apresentados alguns conceitos sobre as tecnologias Java, para a criao de aplicaes Web, de suma importncia que o leitor tenha conhecimento de lgica e da estrutura da linguagem Java. O mesmo vale para os desenvolvedores que desejam trabalhar com aplicaes Ruby on Rails, ao qual necessrio um prvio conhecimento de Ruby, facilitando assim sua compreenso. desejvel tambm um conhecimento sobre o desenvolvimento Web com a linguagem Java, tais como pginas JSP ou Servlets, assim como acesso e utilizao de um banco de dados.

INTRODUO

IX

ANTES DE COMEAR Em algumas partes desse livro voc encontrar um smbolo, que o ajudar a entender o cdigo proposto e desenvolvido, mostrado a seguir: ... - Indica que acima ou abaixo contm mais cdigo, mas que no est sendo exibido por no ter sido alterado e que o mesmo pode ser acessado pelo CD-ROM, em anexo ao livro.

OS SOFTWARES REQUERIDOS Os aplicativos criados nesse livro no exigem software proprietrio. Portanto ao longo dos captulos voc no s aprender como us-los como tambm onde encontr-los na Internet, caso precise de uma atualizao. Esse livro no est focado especialmente em um sistema operacional, portanto a sua escolha livre nesse ponto.

HARDWARE REQUERIDO Uma boa configurao de hardware se faz necessrio para trabalhar com aplicaes escritas em Java. Um computador para rodar bem o NetBeans na verso 6.0 deve ter as seguintes configuraes para uma confortvel utilizao, segundo o autor: Processador: Pentium 4 ou similar (recomendo um Dual Core ou Core 2 Duo) Memria: 1 GB de RAM mnimo (recomendo 2GB de RAM) HD: 10GB de espao livre Monitor: 17 polegadas ou superior

Alguns testes foram executados em Pentium 4 com 1 GB de memria, no qual houve certa lentido na inicializao da IDE, mas no a inviabilidade de seu uso. O maior problema na utilizao da IDE com relao exigncia do Hardware est no trabalho com o Visual Web JavaServer Faces e com servidores de aplicaes como o Glassfish.

X

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Para a criao deste livro, um Core 2 Duo com 4 MB de cache e 2GB de RAM fora utilizado. CDIGOS DOS EXEMPLOS CRIADOS NO LIVRO Todos os cdigos dos exemplos criados no livro, bem como a IDE e outros, se encontram no CD-ROM anexo. Caso no encontre algum exemplo, entre em contato com o autor pelo site http:// www.integrator.com.br.

VISO GERAL DOS CAPTULOS Embora este livro esteja completamente focado no NetBeans IDE, ainda assim voc ter ao longo do livro, muitos cdigos para desenvolver. Todos os detalhes, em sua maioria, se encontram na ntegra, para que sejam digitados por voc mesmo. Em todo caso, dvidas podero surgir, o que pode requerer a viso do arquivo em geral. Para este caso, o CD-ROM em anexo possui o projeto com seu nome proposto em livro para ser analisado.

ATENO: Em caso de erro, recomendado a visualizao dos exemplos contidos no CD-ROM anexo ao livro, antes de entrar em contato com o autor. Com um contedo completamente ilustrado, o livro possui diversas imagens, espalhadas por todos os captulos e sempre com foco em detalhes quando necessrio. Em seu longo, dicas so dadas para uma melhor produtividade do que est sendo feito, aproveitando melhor os recursos que a IDE tem a oferecer.

PARTE 1: INTRODUO: DESENVOLVIMENTO DE APLICAES WEB COM JAVA CAPTULO 1: OBTENDO E INSTALANDO O NETBEANS IDE 6 Como obter e instalar a NetBeans IDE na verso 6.x. CAPTULO 2: SERVIDORES DE APLICAES E SERVLETS Viso geral, uso e aprofundamento do NetBeans IDE com o desenvolvimento de aplicaes Web escritas em Java, utilizando servidores de aplicaes, monitoramento e distribuio para produo.

INTRODUO

XI

CAPTULO 3: DESENVOLVENDO PGINAS DINMICAS NO NETBEANS - Dedicado ao trabalho com pginas dinmicas usando Java, envolvendo JSP JSTL, Custom Tags, as confi, gurao da sua aplicao e o Deployment Descriptor usando o NetBeans IDE. CAPTULO 4: TRABALHANDO COM BANCO DE DADOS Desenvolvido para o contato inicial com o banco de dados, usando JDBC, em aplicaes Web atravs Servlets e pginas JSP utilizando NetBeans IDE. Os padres de desenvolvimento MVC e , DAO so apresentados, integrando o JSP e JSTL com acesso a dados atravs do MySQL.

PARTE 2: JAVA EE5: AVANANDO NO DESENVOLVIMENTO DE APLICAES WEB CAPTULO 5: JAVASERVER FACES Viso geral e tcnica do framework JavaServer Faces trabalhado atravs do NetBeans IDE, com configuraes e acesso a banco de dados e Web 2.0 com Facelets. CAPTULO 6: EJB 3 E JAVA PERSISTENCE API Apresenta o desenvolvimento de aplicaes Enterprise utilizando o NetBeans. CAPTULO 7: O VISUAL WEB JAVASERVER FACES A primeira parte de um estudo de caso detalhado, ensinando o uso do Visual Web JSF atravs do desenvolvimento de uma aplicao, focando na etapa visual sem acesso a banco de dados. CAPTULO 8: DESENVOLVENDO NO VISUAL WEB JSF COM BANCO DE DADOS Continuao do estudo de caso usando Visual Web JSF com acesso a dados, incluindo uma rea administrativa. CAPTULO 9: TRABALHANDO COM WEB SERVICES NO NETBEANS IDE Desenvolve e consome Web Services usando o NetBeans IDE, incluindo a integrao com EJB 3, acesso a dados e o uso de Visual Web JavaServer Faces. CAPTULO 10: VISUAL WEB JSF COM JPA, SPRING E HIBERNATE Finaliza o trabalho com Visual Web JSF integrando um CRUD com Spring 2.5 e Hibernate 3, atravs do uso de Java Persistence API (JPA).

PARTE 3: DESENVOLVIMENTO COM LINGUAGENS DINMICAS E AJAX CAPTULO 11: RAILS 2 COM NETBEANS IDE Cria um estudo de caso usando o NetBeans como ferramenta para desenvolver aplicaes Ruby on Rails.

XII

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

CAPTULO 12: JRUBY ON RAILS Recria o projeto do Captulo 11, adicionando as caractersticas individuais do JRuby, que roda sobre a Java Virtual Machine, incluindo acesso a dados via JDBC e deploy no Application Server GlassFish. CAPTULO 13: TRABALHANDO COM AJAX NO NETBEANS IDE Utiliza o NetBeans para trabalhar com AJAX atravs de plug-ins, integrando frameworks conhecidos como jMaki, GWT e ICEfaces.

APNDICE A: Ruby para desenvolvedores Java Explica de forma comparativa a linguagem Ruby com Java para um suave entendimento.

NO CD-ROM CAPTULO EXTRA 1: TRABALHANDO utilizando o NetBeans IDE.COM

TOMCAT 5.5 Introduz ao uso do Tomcat 5.5

CAPTULO EXTRA 2: APLICAES WEB COM ACESSO A DADOS SEM PADRO Indicado para iniciantes com baixa experincia em aplicaes Web Java, ensina a acessar dados via JDBC diretamente atravs de scriptlets sem o padro DAO. CAPTULO EXTRA 3: STRUTS - Viso geral e tcnica do framework Struts trabalhado atravs do NetBeans IDE, com configuraes e acesso a banco de dados. CAPTULO EXTRA 4: DESENVOLVENDO RELATRIOS COM NETBEANS IDE Utilizao do plugin iReport for NetBeans para construir relatrios visualmente na IDE. CAPTULO EXTRA 5: Estudo de caso completo com Visual Web JSF Continua a aplicao criada no livro atravs dos captulos 7 e 8, criando todos os relacionamentos e acesso ao banco de dados, incluindo o uso de novos componentes. CAPTULO EXTRA 6: Estudo de caso completo com Visual Web JSF, Spring e Hibernate utilizando JPA Criao da mesma aplicao gerada atravs dos captulos 7, 8 e Extra 5, criando todos os relacionamentos e acesso ao banco de dados, utilizando DAO genrico, Spring framework e Hibernate com JPA, incluindo o uso de novos componentes. APNDICE B: O MYSQL Explica o MySQL mais detalhadamente para desenvolvedores que no o conhecem.

SUMRIOPARTE 1 - INTRODUO: DESENVOLVIMENTO DE APLICAES WEB COM JAVA .................................. 1 Captulo 1 - Obtendo e instalando o NetBeans IDE 6 ................................................. 3 Os pacotes..................................................................................................................... 5 O pacote sem instalador e o JDK requerido ................................................................... 6 A instalao ................................................................................................................... 6 A desinstalao ............................................................................................................ 1 3

Captulo 2 - Servidores de Aplicaes e Servlets ....................................................... 1 5 Criando um projeto ..................................................................................................... 1 6 Viso geral do NetBeans IDE ........................................................................................ 2 0 Explorando seu projeto ................................................................................................ 2 1 Desenvolvendo Servlets ............................................................................................... 2 5 Como alterar o navegador no NetBeans ....................................................................... 3 4 Entendendo como funciona um Servlet........................................................................ 3 6 Servidores de Aplicaes Web ..................................................................................... 3 9 Monitorando transaes HTTP ..................................................................................... 5 1 Distribuindo sua aplicao em arquivos WAR .............................................................. 5 4

Captulo 3 - Desenvolvendo pginas dinmicas no NetBeans ................................... 5 7 Trabalhando com pginas JSP ....................................................................................... 5 7 Um pouco mais sobre o Deployment Descriptor .......................................................... 5 9 A estrutura de JavaServer Pages .................................................................................... 6 1

XIV

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Diretivas ...................................................................................................................... 6 1 O controle de erros configurado atravs da IDE ........................................................... 6 3 Recebendo dados de um formulrio com JSP............................................................... 6 8 O auto-completar do editor ......................................................................................... 7 1 Rodando uma pgina ou Servlet como inicial ............................................................... 7 2 Objetos implcitos ....................................................................................................... 7 3 Criando JavaBeans ....................................................................................................... 7 5 Outros atalhos do Editor de Cdigos do NetBeans IDE ................................................. 8 2 Utilizando JSTL em suas pginas .................................................................................. 8 7 Desenvolvendo tags customizadas ............................................................................. 1 1 1 Dinamizando Tag Files ............................................................................................... 1 1 6

Captulo 4 - Trabalhando com Banco de Dados ...................................................... 1 1 9 Introduo ao JDBC ................................................................................................... 1 1 9 MySQL e o JDBC ....................................................................................................... 1 2 0 A instalao e utilizao do MySQL ........................................................................... 1 2 0 Comandos bsicos de utilizao do MySQL ............................................................... 1 2 2 Acessando o banco de dados MySQL ........................................................................ 1 2 2 O comando CREATE .................................................................................................. 1 2 3 O comando USE ....................................................................................................... 1 2 4 Criando tabelas .......................................................................................................... 1 2 4 O comando SHOW ................................................................................................... 1 2 5 Configurando usurios ............................................................................................... 1 2 5 Inserindo um registro ................................................................................................. 1 2 6

SUMRIO

XV

Baixando o driver JDBC ............................................................................................. 1 2 6 Utilizando o driver JDBC no NetBeans ....................................................................... 1 2 7 As APIs JDBC ............................................................................................................. 1 3 4 Os tipos de dados no Java e na SQL........................................................................... 1 3 7 Utilizando o Design Query ........................................................................................ 1 4 0 Utilizando padres de desenvolvimento..................................................................... 1 4 1 O que MVC?........................................................................................................... 1 4 1 O Padro DAO (Data Access Object) ......................................................................... 1 4 5 Pool de conexes....................................................................................................... 1 8 6 O aperfeioamento.................................................................................................... 1 9 3

PARTE 2 - JAVA EE5: AVANANDO NO DESENVOLVIMENTO DE APLICAES WEB............................ 1 9 5

Captulo 5 - JavaServer Faces ................................................................................... 1 9 7 Um projeto JavaServer Faces ...................................................................................... 1 9 8 Conhecendo melhor o JavaServer Faces ..................................................................... 2 1 3 As tags padres de JavaServer Faces ........................................................................... 2 1 5 Criando um exemplo utilizando banco de dados e JSF ............................................... 2 2 2 Personalizando mensagens padro do JavaServer Faces .............................................. 2 3 8 Facelets e Web 2.0 .................................................................................................... 2 4 1 Instalando um plugin com suporte a Facelets ............................................................. 2 4 2 Criando um CRUD nos padres de Facelets ............................................................... 2 4 7

XVI

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Captulo 6 - EJB 3 e Java Persistence API ................................................................. 2 5 9 Criando um projeto Java EE 5 .................................................................................... 2 6 0 Seu primeiro EJB 3 ..................................................................................................... 2 6 3 Session Bean.............................................................................................................. 2 6 9 As interfaces EJB ........................................................................................................ 2 7 1 EJB 3 com acesso a dados .......................................................................................... 2 7 2 Utilizando JavaServer Faces para acessar o EJB ........................................................... 2 8 4

Captulo 7 - O Visual Web JavaServer Faces ............................................................ 2 9 1 Criando uma aplicao .............................................................................................. 2 9 3 Definindo o layout da pgina principal ...................................................................... 2 9 6 A pgina de contato ................................................................................................... 3 0 2 Criando a primeira navegao ................................................................................... 3 1 4

Captulo 8 - Desenvolvendo com Visual Web JSF usando banco de dados ............. 3 1 7 O acesso a banco de dados ....................................................................................... 3 1 7 Desenvolvendo uma rea administrativa .................................................................... 3 2 6 O acesso a rea administrativa ................................................................................... 3 4 6 Assegurando o acesso a rea administrativa ................................................................ 3 5 5 Alterando as mensagens da sua aplicao .................................................................. 3 6 2 Adicionando o sistema de pesquisa no site................................................................. 3 6 3 Adicionando Cdigo a SessionBean1 ......................................................................... 3 6 6

Captulo 9 - Trabalhando com Web Services no NetBeans IDE ............................... 3 7 1 Web Services ............................................................................................................. 3 7 1

SUMRIO

XVII

Entendendo a estrutura do documento WSDL ........................................................... 3 8 1 Consumindo o Web Service criado ............................................................................ 3 8 6 Um Web Service mais complexo ............................................................................... 3 9 0 Acessando o Web Service com Visual Web JSF........................................................... 3 9 5 Criando um Data Provider ......................................................................................... 3 9 6

Captulo 10 - Visual Web JSF com JPA, Spring e Hibernate ..................................... 4 0 1 A aplicao que ser construda ................................................................................. 4 0 1 O Hibernate .............................................................................................................. 4 0 2 Onde baixar a ltima verso ...................................................................................... 4 0 3 O Spring .................................................................................................................... 4 0 4 O plugin do Spring Framework para o NetBeans ........................................................ 4 0 5 Criando o projeto Visual Web JSF com Spring Framework .......................................... 4 0 6 Criando o DAO genrico ........................................................................................... 4 1 0 Configurando o Spring atravs de applicationContext.xml .......................................... 4 1 5 Configurando o Spring no deployment descriptor ...................................................... 4 1 7 Criando a classe que controlar o CRUD ................................................................... 4 1 8 Configurando o Spring para trabalhar com JSF ........................................................... 4 1 9 Configurando o arquivo persistence.xml .................................................................... 4 2 2 O Log4j ..................................................................................................................... 4 2 4 Alterando a classe SessionBean1 ................................................................................ 4 2 7 Configurando o componente Table na pgina ............................................................ 4 2 9 Adicionando os mtodos a Page1.java ....................................................................... 4 3 0

XVIII

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

PARTE 3 - DESENVOLVIMENTO COM LINGUAGENS DINMICAS E AJAX ........................................ 4 3 9

Captulo 11 - Rails 2 com NetBeans IDE ................................................................. 4 4 1 O que Ruby?........................................................................................................... 4 4 2 O que Ruby on Rails?.............................................................................................. 4 4 2 Onde baixar o Ruby .................................................................................................. 4 4 2 Configurando o Ruby no NetBeans IDE 6.0 ............................................................... 4 4 4 Desenvolvendo com Ruby on Rails ........................................................................... 4 4 4 A Camada Modelo..................................................................................................... 4 5 7 A Camada Controle ................................................................................................... 4 6 0 A Camada Apresentao ............................................................................................ 4 6 2 Adicionando relacionamentos .................................................................................... 4 6 3 Mais sobre Ruby on Rails ........................................................................................... 4 7 4

Captulo 12 - JRuby on Rails .................................................................................... 4 7 5 O que JRuby?.......................................................................................................... 4 7 5 Baixando e instalando a ltima verso do JRuby ......................................................... 4 7 6 Configurando o JRuby no NetBeans ........................................................................... 4 7 7 Instalando os Ruby Gems no NetBeans ..................................................................... 4 7 8 Criando um projeto JRuby on Rails ............................................................................ 4 8 1 Colocando sua aplicao Rails no Application Server ................................................. 4 8 4

Captulo 13 - Trabalhando com AJAX no NetBeans IDE .......................................... 4 9 1 AJAX .......................................................................................................................... 4 9 1 Utilizando a tecnologia jMaki..................................................................................... 4 9 5

SUMRIO

XIX

Criando um projeto utilizando jMaki ......................................................................... 4 9 9 Mas o que JSON?.................................................................................................... 5 0 1 Ajax com GWT .......................................................................................................... 5 1 1 Utilizando Ajax com Visual Web JSF .......................................................................... 5 2 5 Outros frameworks AJAX............................................................................................ 5 3 0

Apndice A - Ruby para desenvolvedores Java ....................................................... 5 3 1 Recursos do Ruby ...................................................................................................... 5 3 1 Desenvolvendo com Ruby no NetBeans IDE .............................................................. 5 3 2 Conhecendo o bsico sobre Ruby .............................................................................. 5 3 4

Bibliografia ............................................................................................................... 5 7 9

Captulo Extra 1 Trabalhando com Tomcat 5.5 .............................................CD-ROM

Captulo Extra 2 Aplicaes Web com acesso a dados sem padro ............CD-ROM

Captulo Extra 3 Struts .................................................................................CD-ROM

Captulo Extra 4 Desenvolvendo relatrios com NetBeans IDE ...................CD-ROM

Captulo Extra 5 Estudo de caso completo com Visual Web JSF ...................CD-ROM

Captulo Extra 6 Estudo de caso completo com Visual Web JSF, Spring e Hibernate utilizando JPA .....................................................................................................CD-ROM

Apndice B O MySQL ..................................................................................CD-ROM

PARTE 1

DESENVOLVIMENTO DE APLICAES WEB COM JAVA

INTRODUO:

OBTENDO E INSTALANDO O NETBEANS IDE 6

CAPTULO 1

O NetBeans uma IDE criada em Java Swing e portanto, depende da Java Virtual Machine (JVM) instalada em sua mquina. Alm disso, voc ver que h vrias opes da IDE, onde cada uma contm mdulos de instalao diferentes para cada necessidade do desenvolvedor. Neste Captulo voc aprender a obter e instalar o NetBeans IDE na verso 6.x.

OBSERVAO: Apesar de abordar onde obter o NetBeans IDE, o CD-ROM anexo contm todos os arquivos que esto sendo ilustrados para a instalao.

BAIXANDO O NETBEANS NA INTERNETExistem dois sites que oficialmente do ao usurio a possibilidade de obter o NetBeans na verso 6.0. Um o site oficial da prpria IDE, que se encontra no endereo http://www.netbeans.org. O outro site o oficial do Java, da prpria Sun Microsystems, criadora da linguagem e principal mantenedora do NetBeans. O site neste caso http://java.sun.com. Em ambos os casos, a obteno da IDE est correta.

4

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 1.1 SITE OFICIAL DO NETBEANS IDE

Assim que voc entra no site oficial do NetBeans, h um grande boto escrito Download NetBeans IDE 6.0. Dando um clique neste boto, voc ir at a pgina de downloads da IDE.

OBSERVAO: Voc pode notar que existe ao lado do boto Download NetBeans IDE 6.0 um cone de uma mdia CD/DVD escrito em seu rtulo Get Free DVD. Caso voc queira, basta pedir o DVD pelo site que eles o enviaro sem custo algum. O tempo necessrio para receb-lo depende de sua localizao.

ATENO: No momento em que este livro est sendo escrito, ainda no existe disponvel uma verso traduzida em nosso idioma.

OBTENDO E INSTALANDO O NETBEANS IDE 6

5

OS PACOTESAo clicar no boto Download NetBeans IDE 6.0, voc ser levado rea de download, contendo os diversos pacotes que a IDE atualmente oferece.

FIGURA 1.2 NETBEANS PACKS

Se voc for desenvolver para a Web, como o caso, selecione a opo Web & Java EE para uma opo enxuta ou All para todas as solues. Como pretendemos trabalhar tambm com Ruby on Rails, a opo All mais atrativa, embora voc possa instalar os pacotes separadamente aps a instalao.

6

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

O PACOTE SEM INSTALADOR E O JDK REQUERIDOAbaixo das opes mostradas anteriormente, voc tem o link para o NetBeans compactado sem instalador (zip file format) e o link para o JDK requerido (download the JDK here).

FIGURA 1.3 A OPO COMPACTADA SEM ASSISTENTE

Sem o assistente, voc tem uma listagem dos arquivos compactados no formato .zip, onde o maior o All.

A INSTALAOEste livro est baseado em um pacote independente da sua escolha, mas focado no ambiente Web. O servidor de aplicaes oficialmente suportado pelo NetBeans o GlassFish V2 e o container Web o Tomcat 6, ambos compatveis com a verso Java EE 5. O JBoss possui suporte a EJB 3, tanto na verso 4 como na 5, mas que deve ser instalado at o momento separadamente e incluso logo aps (veremos isso mais adiante).

NO WINDOWSA instalao do NetBeans tranqila, quando utilizamos assistente, como a maioria dos programas existentes para este sistema operacional. Para o exemplo, a instalao do pacote contendo todos os aplicativos ser usado (All). Assim que baixar o programa (ou peg-lo no CD em anexo) d um duplo clique sobre o arquivo que iniciar o processo de instalao.

OBTENDO E INSTALANDO O NETBEANS IDE 6

7

FIGURA 1.4 INICIO DO ASSISTENTE DE INSTALAO

No boto Customize, marque ou desmarque os itens que no deseja instalar. Como o Tomcat 6 no est selecionado por padro, caso no o tenha em sua mquina, selecione-o. Pacotes como C/C++ e Mobility so desnecessrios para o nosso trabalho. Instale-os apenas se voc for usar. Cada pacote a mais implicar em maior consumo de memria e portanto uma maior lentido em seu uso em mquinas menos poderosas. Confirme a customizao e clique logo aps no boto Next para prosseguir segunda parte do assistente.

8

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 1.5 CUSTOMIZANDO A INSTALAO

No assistente de instalao, leia a licena se no a conhecer e aceite marcando a opo I accept the terms in the license agreement. Para prosseguir, clique em Next.

FIGURA 1.6 TERMOS DE LICENA

OBTENDO E INSTALANDO O NETBEANS IDE 6

9

Especifique um diretrio vazio dentro do qual ser instalado o NetBeans IDE. Esta instalao da IDE no alterar as configuraes de outras instalaes do NetBeans, caso voc as tenha. Isso ocorre porque a IDE cria automaticamente um novo diretrio de usurio quando aberto. Para modificar o local da instalao, no campo Install the NetBeans IDE to digite ou clique no boto Browse e selecione.

FIGURA 1.7 DETERMINANDO O LOCAL DA INSTALAO E O JDK ENCONTRADO

Caso voc tenha mais de um JDK instalado em sua mquina, este aparecer em uma lista, no qual voc dever escolher o compatvel com a IDE. No caso somente poder ser as verses Java SE 5 ou 6. Clique no boto Next. Na etapa seguinte voc define o local da instalao do GlassFish (Install GlassFish to), o JDK e o usurio e senhas administrativas. Mais abaixo existe as portas para rodar o GlassFish em sua mquina. ATENO: Caso mantenha como est, observe que a senha padro adminadmin.

10

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 1.8 CONFIGURAO DO GLASSFISH V2

A senha do usurio administrativo ser guardada em um arquivo chamado .asadminpass. Este arquivo se encontra no diretrio do usurio de seu sistema operacional. Se em sua instalao houver tambm o Tomcat, voc pode alterar o seu local de instalao no campo Install Apache Tomcat to.

OBTENDO E INSTALANDO O NETBEANS IDE 6

11

FIGURA 1.9 DEFININDO O LOCAL DE INSTALAO PARA O TOMCAT 6

OBSERVAO: O servidor GlassFish e o container Tomcat no tero suas telas apresentadas caso voc tenha optado por no instal-los. Por fim, veja os itens que sero instalados e clique no boto Install.

12

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 1.10 CONFIRMAO PARA A INSTALAO

Aguarde a instalao at o boto Finish.

NO LINUXA verso para Linux ligeiramente diferente do Windows. O arquivo vem em formato binrio, com assistente tambm, o que facilita sua instalao. Para iniciar o processo de instalao, v at o diretrio onde se encontra o arquivo do qual baixou. D a permisso necessria para que seja possvel a execuo do arquivo binrio: shell# chmod +x netbeans-6.0-linux.sh Vale lembrar que a verso descrita se trata da verso mais atual no momento em que este livro est sendo escrito.

OBTENDO E INSTALANDO O NETBEANS IDE 6

13

Para iniciar a instalao, execute o comando como demonstrado: shell# ./netbeans-6.0-linux.bin

FIGURA 1.11 INICIANDO A INSTALAO NO LINUX UBUNTU

As demais instrues so similares ao sistema operacional Windows.

A DESINSTALAODESINSTALANDO O NETBEANS NO WINDOWS XPPara desinstalar a IDE no Windows, v ao menu Iniciar do sistema e selecione o Painel de controle. D um duplo clique no cone Adicionar ou remover programas. Selecione o NetBeans IDE 6.0 na lista e clique em Remover. Surgir o desinstalador do NetBeans. Basta confirmar manter selecionados os servidores adicionados IDE e clicar no boto Uninstall.

14

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

DESINSTALANDO O NETBEANS NO LINUXPara desinstalar a IDE no Linux, v ao diretrio de instalao do NetBeans, geralmente netbeans-6.0, atravs do terminal. Digite a seqncia a seguir: shell# ./uninstall.sh O mesmo que ocorre com o Windows ocorrer com o Linux. Confirme no boto Uninstall para remover a IDE.

CAPTULO 2 SERVIDORES DE APLICAES E SERVLETS

Deste captulo em diante voc ser levado a compreender a IDE com relao ao desenvolvimento de aplicaes escritas para a Web. O seu fundamento criando e utilizando Servlets, trabalhar com os servidores de aplicaes Web para rodar seus cdigos desenvolvidos, monitorar sua aplicao e aprender como distribuda para um servidor de produo. Os tpicos apresentados neste captulo sero: Criao de um novo projeto Viso geral do NetBeans IDE Explorando seu projeto Desenvolvendo Servlets Entendendo como funciona um Servlet Servidores de Aplicaes Web Monitorando transaes HTTP Distribuindo sua aplicao em arquivos WAR

16

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

CRIANDO UM PROJETOComo o livro est focado em desenvolvimento Web, o seu primeiro projeto ser feito para construir aplicaes Web. Neste caso, mais especificamente para o desenvolvimento de um Servlet. Servlets e JSP assim como JavaServer Faces so tecnologias desenvolvidas pela Sun , Microsystems para a construo de aplicaes Web. Para criar seu primeiro projeto Web, v ao menu File e clique em New Project. Alternativamente, na janela Projects, voc pode dar um clique com o boto direito do mouse e selecionar a opo New Project (Ctrl+Shift+N) no menu de contexto.

FIGURA 2.1 SELECIONANDO A OPO NEW PROJECT

A caixa de dilogo New Project surgir. O desenvolvimento de projetos para aplicaes Web se encontra na categoria (Categories) Web. Como a aplicao trata-se de um desenvolvimento sem informaes anteriores, ou seja, limpo, voc seleciona Web Application em Projects. Aps selecionar a opo em Projects clique no boto Next.

SERVIDORES DE APLICAES E SERVLETS

17

FIGURA 2.2 SELEO DO ITEM WEB APPLICATION EM PROJECTS

Na segunda etapa do assistente, voc possui vrias opes para a construo do seu projeto.

FIGURA 2.3 NOME E LOCALIZAO DO PROJETO

18

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Em Project Name voc digita o nome do seu projeto. No caso do livro DesvComServlets. Em Project Location o NetBeans coloca seus projetos geralmente no diretrio do usurio do seu sistema operacional. Para mudar a localizao, clique no boto Browse e selecione ou crie um novo diretrio para salvar seus projetos. Perceba que o seu projeto gerar um novo diretrio, e este mostrado em Project Folder.

FIGURA 2.4 DETALHE DO PASSO NAME AND LOCATION

Na parte inferior da caixa de dilogo voc tem como principais pontos o Servidor, que pode ser selecionado em Server. Os servidores possuem caractersticas prprias, embora, no geral, sejam parecidos em suas administraes, desde que sigam rigorosamente regras impostas pela Sun Microsystems. Um exemplo de servidores que trabalhem com Java EE na verso 5 o Sun Java System Application Server, GlassFish, Geronimo e etc.

FIGURA 2.5 DETALHE DO SERVIDOR, VERSO E CAMINHO DO CONTEXTO

SERVIDORES DE APLICAES E SERVLETS

19

Caso voc precise trabalhar com a verso 1.4, basta selecionar em Java EE Version a opo J2EE 1.4.

FIGURA 2.6 SELEO DO JAVA EE VERSION INFERIOR A 5

Outra forma seria clicar no boto Add e adicionar um novo servidor (ou container) para uma verso inferior a 5. No caso do livro, vamos utilizar o GlassFish V2 como Server para o primeiro projeto. E com a verso de Java EE 5 selecionada em Java EE Version. Em Context Path voc possui o nome do contexto de acesso ao projeto, o que na realidade ser a sua aplicao. Em caso de utilizar a verso J2EE 1.4, haver a opo Set Source Level to ..., onde voc possui o nvel dos arquivos desenvolvidos no projeto. Em alguns casos (principalmente no uso de annotations) voc deve desmarcar esta opo. A opo Set as Main Project indica qual o projeto que ser compilado toda vez que voc mandar rodar para exibir no browser. A terceira etapa seria para a seleo de um framework, no qual veremos mais adiante. Para o momento, apenas clique no boto Finish para completar as configuraes e criar o projeto.

20

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

VISO GERAL DO NETBEANS IDEO NetBeans possui muitos menus, ferramentas e janelas que o auxiliam no desenvolvimento de uma aplicao Web. A seguir a Figura 2.7 que demonstra os principais componentes que existem na IDE quando voc cria um projeto.

FIGURA 2.7 CARACTERSTICAS GERAIS DO NETBEANS IDE 6.0

BARRA DE TTULO: A barra de ttulo sempre exibe o nome do projeto. BARRA DE MENUS: Esta a barra de menu global, que lhe permite fazer todas as tarefas gerais. As opes disponveis em cada menu tambm mudaro dependendo do que estiver selecionado. BARRA DE FERRAMENTAS: Esta a barra de ferramentas global da IDE que tambm lhe permite executar tarefas gerais e tarefas especficas para itens selecionados. BARRA DE STATUS: Esta linha exibe tipicamente informaes que dependem da tarefa voc est executando atualmente. SOURCE EDITOR: exatamente o que o seu nome diz: um painel para editar documentos. Aqui voc escreve seus cdigos Java. JANELAS: Mostram grupos de objetos relacionados, propriedades, componentes e at mesmo a sada da execuo de um cdigo Java.

SERVIDORES DE APLICAES E SERVLETS

21

EXPLORANDO SEU PROJETOA janela Projects ser com certeza a que voc mais vai utilizar, aps o Source Editor. Nesta janela voc possui diversos atalhos, com o menu de contexto, que podem ser muito teis, passando desde a execuo de um projeto como at mesmo adicionar novas bibliotecas, criar novos arquivos, alterar seus nomes e etc. Na construo de uma aplicao Web, voc possui diversos elementos. Estes elementos esto dispostos em forma de diretrios que podem ser expandidos clicando em seus ns. O diretrio Web Pages representa o diretrio principal (raiz) de uma aplicao Web normal. Dentro deste n voc encontra o diretrio WEB-INF, que contm o arquivo obrigatrio web.xml, conhecido como deployment descriptor. Junto a este diretrio, h tambm um arquivo inicial, chamado de index.jsp, que aberto inicialmente assim que concludo o projeto. Veremos isto mais adiante. Expandindo o n de Configuration Files voc encontra os arquivos MANIFEST. MF, sun-web.xml e web.xml. Evidentemente pode haver mais arquivos, pois neste diretrio se encontram todos os arquivos referentes configurao da aplicao Web que voc est desenvolvendo. Em Source Packages voc encontra pacotes e classes Java e Servlets, criados no processo de desenvolvimento da sua aplicao. Para testes unitrios voc tem Test Packages. As bibliotecas utilizadas no seu projeto se encontram em Libraries. Em Test Libraries voc adiciona as bibliotecas necessrias para criar os testes necessrios para a sua aplicao (por padro, j esto contidas as bibliotecas do JUnit 3.8.2 e 4.1).

22

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 2.8 DIRETRIOS EXPANDIDOS DO PROJETO NA JANELA PROJECTS

Esta estrutura utiliza o padro Java BluePrints. No caso de uma aplicao criada para trabalhar com o Tomcat, por exemplo, o padro Jakarta entra em ao. A Apache Jakarta fornece diretrizes de como estruturar suas aplicaes Web para assegurar que elas trabalhem corretamente com o servidor Tomcat. Quando voc cria um projeto na IDE e seleciona o Tomcat, esta estrutura respeitada. A seguir voc tem a imagem da janela Projects com a estrutura de sua aplicao utilizando a Apache Jakarta para um projeto com o container Servlet Tomcat 6:

SERVIDORES DE APLICAES E SERVLETS

23

FIGURA 2.9 ESTRUTURA DO PROJETO UTILIZADO PELO TOMCAT

Clicando na janela Files, ao lado de Projects, voc v a estrutura do seu projeto como se encontra no sistema operacional.

FIGURA 2.10 ARQUIVOS ENCONTRADOS EM UM PROJETO NO NETBEANS IDE 6.0

24

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

A Tabela 2.1 a seguir compara a estrutura de um projeto Web criado no NetBeans e a estrutura real da aplicao no GlassFish ou Tomcat.

TABELA 2.1 COMPARAO DA APLICAO REAL VERSUS NO NETBEANS CONTEDO Pginas Web REPRESENTAO NA JANELA PROJECTS N Web Pages REPRESENTAO NA JANELA FILES Diretrio web Diretrio src NO ARQUIVO WAR Na raiz do arquivo Diretrio classes dentro de WEB-INF N/A

Arquivos Java no com- N Source Packages pilados, servlets, entre outros testes unitrios N Test Packages deployment descriptor N Configuration Files (web.xml) GlassFish(sun-web.xml) N Configuration Files

Diretrio test

Diretrio WEB-INF em Diretrio WEB-INF web Diretrio WEB-INF em Diretrio WEB-INF web Diretrio META-INF em Diretrio META-INF web

Arquivo de configura- N Configuration Files o do Tomcat e GlassFish V2 ou superior (context configuration) (context.xml) Bibliotecas Testes Metadata do projeto incluindo script build N Libraries N Test Libraries Propriedade do projeto na caixa de dilogo Project Properties, que pode ser aberta com um clique com o direito do mouse sobre o projeto, selecionando a opo Properties no menu de contexto.

Diretrio lib em web/ Diretrio WEB-INF/lib WEB-INF Diretrio test N/A

ATENO: Nem todos os itens apresentados na Tabela 2.1 aparecem em um projeto utilizando o Application Server GlassFish.

SERVIDORES DE APLICAES E SERVLETS

25

DESENVOLVENDO SERVLETSComo voc pde ver, o NetBeans criou na concluso do projeto, um arquivo JSP (JavaServer Pages). O que voc vai fazer agora um Servlet, que receber de um formulrio vindo deste arquivo criado na concluso do projeto, para imprimir um determinado valor, que no seu caso, ser seu nome. V ao menu File e clique em New File. Alternativamente voc pode clicar com o direito do mouse e selecionar, no menu de contexto, em New, o item em Servlet. Caso Servlet no esteja aparecendo, clique em New File. O atalho para um novo arquivo Ctrl + N. Na caixa de dilogo New File selecione em Categories o item Web e em File Types o item Servlet. Clique no boto Next para prosseguir.

FIGURA 2.11 CRIANDO UM SERVLET

26

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Na segunda etapa do assistente, em New Servlet, digite MeuPrimeiroServlet em Class Name. Toda classe Java, assim como Servlets, devem ter um pacote. Como voc ainda no fez nenhum pacote, digite em Package o nome do seu pacote. Caso queira seguir o livro, seria br.com.integrator. Perceba que o assistente lhe mostra a localizao da classe Servlet que ser gerada, em Source Packages, bem como onde ser criado, em Created File. Clique no boto Next para a terceira e ltima etapa deste assistente.

FIGURA 2.12 DEFININDO UM NOME E UM PACOTE PARA O SERVLET

Na ltima etapa, mantenha como est. Esta etapa existe para que voc possa configurar o caminho do seu Servlet na chamada pela URL atravs de URL Pattern(s). Se voc possui alguma experincia com aplicaes Web construdas em Java, sabe que isto pode ser mudado, assim como o seu Name. Estas informaes devero ser gravadas no deployment descriptor (Add information to deployment descriptor), portanto, mantenha esta opo selecionada. Clique no boto Finish para completar o assistente.

SERVIDORES DE APLICAES E SERVLETS

27

FIGURA 2.13 LTIMA ETAPA PARA A CRIAO DO SERVLET

Perceba que o NetBeans criou para voc um arquivo, baseado em seu template, com parte do desenvolvimento de um Servlet. Vamos alter-lo para que voc o veja funcionando e ento explicarei melhor como tudo funciona. No Servlet pr-construdo, altere como mostrado na Listagem 2.1 a seguir, em destaque:

LISTAGEM 2.1 CDIGO DO ARQUIVO MEUPRIMEIROSERVLET.JAVA protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String nome = request.getParameter(nome); response.setContentType(text/html;charset=ISO-8859-1);

28

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

PrintWriter out = response.getWriter( ); // /* TODO output your page here out.println(); out.println(); out.println(Meu nome +nome+); out.println(); out.println(); out.println(Meu nome + nome + ); out.println(); out.println(); // */ out.close( ); } ...

Os demais itens permanecero exatamente como esto. No arquivo index.jsp, voc ir adicionar um formulrio HTML. Para fazer isso, voc possui duas formas: digitando ou utilizando a janela Palette como auxiliar. Vou ensinar pela janela Palette para simplificar sua digitao. Primeiramente, apague todo o contedo existente por entre as tags HTML ... . Mantenha o cursor por entre estas tags. V a janela Palette e d um duplo clique em Form, na categoria HTML Forms. Alternativamente voc pode arrastar desta janela para o Editor, por entre as tags HTML mencionadas.

SERVIDORES DE APLICAES E SERVLETS

29

FIGURA 2.14 O ITEM FORM SELECIONADO

Na caixa de dilogo Insert Form digite em Action o nome do seu Servlet, que no caso MeuPrimeiroServlet. Selecione em Method o mtodo POST de envio de dados e em Name voc pode dar um nome ao seu formulrio, alternativamente. Confirme a caixa de dilogo clicando no boto OK.

FIGURA 2.15 A CAIXA DE DILOGO INSERT FORM COM AS CONFIGURAES PREENCHIDAS

Perceba que o NetBeans construiu o formulrio, atravs das tags HTML no seu cdigo, por entre as tags .

30

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Coloque seu cursor por entre as tags ... . Novamente na janela Palette, na categoria HTML Forms, d um duplo clique no componente Text Input.

FIGURA 2.16 COMPONENTE TEXT INPUT SELECIONADO

Na caixa de dilogo Insert Text Input digite nome em Name. Mantenha text selecionado em Type e coloque 25 para a largura da sua caixa de texto, em Width. Confirme a caixa de dilogo clicando no boto OK.

FIGURA 2.17 CAIXA DE DILOGO INSERT TEXT INPUT COM O CAMPO NOME CONFIGURADO

SERVIDORES DE APLICAES E SERVLETS

31

Resta agora apenas adicionar um boto de envio (submisso) do formulrio. V janela Palette novamente, e d um duplo clique no componente Button, ainda na categoria HTML Forms.

FIGURA 2.18 COMPONENTE BUTTON EM DESTAQUE

Na caixa de dilogo Insert Button digite Enviar em Label e mantenha selecionada a opo submit em Type. D um nome ao seu boto em Name e confirme a caixa de dilogo no boto OK.

FIGURA 2.19 BOTO ENVIAR CONFIGURADO NA CAIXA DE DILOGO INSERT BUTTON

32

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Neste ponto, o NetBeans deve ter criado todo o cdigo necessrio do formulrio HTML para enviar seu nome ao Servlet desenvolvido. Com o formulrio construdo e o Servlet alterado, vamos compilar e rodar a aplicao criada, de uma s vez. Para compilar e rodar, voc tem mais do que duas formas, na qual voc pode escolher entre: 1. Clique no menu Run e selecione Run Main Project.

FIGURA 2.20 RUN MAIN PROJECT DO MENU RUN

2. Com o boto direito do mouse sobre o projeto, na janela Projects selecione no menu de contexto o item Run. Este modo de rodar seu projeto tambm muito usado quando queremos um projeto que no seja o padro do compilador e executor.

FIGURA 2.21 DETALHE NA SELEO RUN DO MENU DE CONTEXTO NA JANELA PROJECTS

SERVIDORES DE APLICAES E SERVLETS

33

3. A terceira forma clicando sobre o boto Run Main Project, na barra de ferramentas Build.

FIGURA 2.22 BOTO RUN MAIN PROJECT PRESSIONADO NA BARRA DE FERRAMENTAS BUILD

4. A quarta forma se encontra no atalho F6, que pode ser visto no menu Run quando voc o abre, em Run Main Project.

Ao comear a rodar a sua aplicao, note a janela Output que surgiu logo abaixo de sua IDE, acima da barra de status. Ela contm trs janelas. A primeira a exibio da compilao da sua aplicao Java (ferramenta Ant), a segunda o Java DB Database Process, que exibe a inicializao do banco de dados derby, embutido a IDE. O log do servidor de aplicaes ou Container Servlet a terceira a janela, contendo no caso o nome GlassFish V2, juntamente com botes de controle. Veremos isto com detalhes mais adiante.

FIGURA 2.23 SADAS ENCONTRADAS NA EXECUO DE UMA APLICAO WEB

O navegador abrir. O NetBeans usa o navegador padro do seu sistema operacional para abrir a pgina principal, no caso o index.jsp primeiramente. No formulrio, digite seu nome e clique no boto Enviar. O Servlet criado no exemplo, receber esta informao e a imprimir na tela, gerando um HTML.

34

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 2.24 FORMULRIO DE ENVIO E O RESULTADO IMPRESSO PELO SERVLET APS RECEBER OS DADOS

COMO ALTERAR O NAVEGADOR NO NETBEANSCaso voc queira alterar o navegador do NetBeans, v ao menu Tools e clique em Options. Na caixa de dilogo Options, em General, voc seleciona em Web Browser o navegador de sua preferncia para a exibio de suas pginas.

FIGURA 2.25 SELECIONANDO UM NOVO WEB BROWSER COMO PADRO

SERVIDORES DE APLICAES E SERVLETS

35

Caso voc queira adicionar um novo browser, que no esteja na lista, clique no boto Edit. Na caixa de dilogo Web Browsers clique no boto Add. Digite em Name o nome referente ao navegador que est adicionando, selecione em Process o executvel deste browser e coloque em Arguments o argumento necessrio para que a pgina da sua aplicao seja aberta quando o mesmo for chamado.

FIGURA 2.26 ADICIONANDO OU REMOVENDO UM WEB BROWSER

Ao preencher todos os itens necessrios clique no boto OK. Caso haja necessidade de configurar algum Proxy, em Proxy Settings voc pode definir de trs formas: No Proxy Sem Proxy. Use System Proxy Settings O padro. Ele utiliza as configuraes padro do sistema para a configurao do Proxy. Manual Proxy Settings Neste caso, voc deve configurar manualmente o Proxy a ser utilizado.

36

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

ENTENDENDO COMO FUNCIONA UM SERVLETAgora que voc j entende como se cria um projeto e um Servlet na IDE, basta apenas explicar como ele funciona e o que pode ser feito. Vamos comear pela sua localizao, na IDE. Expanda o n de Source Packages, na janela Projects e voc encontrar um pacote, que no exemplo dado ser br.com.integrator, ou o nome que voc deu, na gerao do Servlet. Expanda o n deste pacote e voc ver o Servlet criado.

FIGURA 2.27 O SERVLET CRIADO EM SOURCE PACKAGES

Observe que o Servlet possui a extenso .java. Portanto, Servlets so classes Java, desenvolvidas de acordo com uma estrutura bem definida e que, quando instaladas junto a um Servidor que implemente um Servidor de Aplicaes ou Servlet Container (um servidor que permita a execuo de Servlets), podem tratar requisies recebidas de clientes. Se voc analisar o cdigo, que foi gerado pela IDE, notar que contm dois mtodos importantes: doGet( ) e doPost( ). Ambos chamam processRequest( ), onde voc alterou o cdigo para receber os dados vindos do formulrio. Estes mtodos possuem a habilidade de resgatar informaes enviadas pelo usurio tanto pelo mtodo GET, como pelo mtodo POST. Na gerao do formulrio HTML, voc criou a tag selecionando em METHOD o item POST, o que, portanto, resgatado por este Servlet. Embora existam outros protocolos de envio, POST e GET so os mais usados.

SERVIDORES DE APLICAES E SERVLETS

37

Olhando atentamente a classe Servlet criada, notar que ela estende a classe javax.servlet.http.HttpServlet, uma classe abstrata que estende a javax.servlet. GenericServlet. A criao de Servlets exige as classes do pacote javax.servlet e javax.servlet.http, que pertencem a API Servlet do Java, que faz parte do Java EE. Perceba ento que h dois imports de pacotes nesta classe. A sada de informaes, para serem impressas no HTML de retorno ao usurio, feito pelo mtodo println, de java.io. PrintWriter. H tambm a importao desta biblioteca no Servlet criado pela IDE. Para compilar um Servlet manualmente, voc precisaria incluir no classpath o arquivo servlet-api.jar, que fica no diretrio lib do Tomcat, o que o NetBeans faz para voc, atravs do arquivo Ant pr-configurado build.xml (este arquivo s visvel atravs da janela Files). O Ant uma ferramenta que o NetBeans usa para rodar comando relacionados ao projeto. Se voc no conhece Ant e no possui nenhum interesse em conhecer, saiba que este pode ser ignorado em questo quase que completamente. Ant foi desenvolvido pela Apache Software Foundation para automatizar rotinas de desenvolvimento como compilar, testar e empacotar sua aplicao. Expandindo o n de Configuration Files, na janela Projects, voc encontra o deployment descriptor, como j foi dito, chamado de web.xml. Este deployment descriptor usado por Servlets Containers como o Tomcat e servidores de aplicao como o GlassFish. O GlassFish, utilizado no exemplo, utiliza tambm o Sun Deployment Descriptor, chamado de sun-web.xml. O arquivo descritor de contexto (Deployment Descriptor) o padro de uma aplicao Web, segundo a especificao Java Servlet/Java EE, em um arquivo chamado de web.xml. Em um Deployment Descriptor padro, voc ver as seguintes informaes nele contidas, que detm as configuraes especificas da aplicao: Informaes textuais de ttulo (elemento , nome para exibio no Manager) e comentrio da descrio () do contexto, teis para identificao e documentao. O elemento indica o nome do Servlet bem como sua classe. No elemento voc mapeia o Servlet para que seja melhor acessvel no navegador.

38

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Como ele possui muitos elementos, estes so separados por botes, pela IDE. Note que temos inicialmente General, para informaes gerais, como o tempo de durao de uma sesso, Servlets, onde so mapeados os servlets da sua aplicao, Pages que indica o arquivo inicial, quando em produo no Servidor e XML, onde voc pode visualizar toda a estrutura do arquivo web.xml.

FIGURA 2.28 O DEPLOYMENT DESCRIPTOR ABERTO PELO NETBEANS

Para compreender um pouco mais sobre os Servlets, vamos mapear um. Quando voc criou o Servlet, voc tinha como opo de digitao na construo pelo assistente o URL Pattern(s), lembra? Pois , tambm possua um nome para o Servlet. Estes so configuraes que o deployment descriptor precisa para saber qual Servlet utilizar, mesmo porque, colocar o caminho do pacote mais o nome do Servlet no muito inteligente.

40

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

O GLASSFISH E O TOMCATO GlassFish um servidor de aplicaes Web open source, baseado no Sun Java System Application Server Platform Edition, sendo 100% compatvel com as especificaes Java EE 5 robusto, de padro aberto, mantido pelo Projeto GlassFish, parte da comunidade OpenJava EE. Poderoso, este servidor contm itens que um Servlet Container como o Tomcat no possui, incluindo suporte a EJB (Enterprise JavaBeans) e JMS (Java Message Service). O Tomcat tem suas origens no incio da tecnologia Servlet. A Sun Microsystems criou o primeiro Servlet Container, o Java Web Server, para demonstrar a tecnologia, mas no era um servidor robusto, para uso na Web como se necessitava. Ao mesmo tempo, o Apache Software Foundation (ASF) criou JServ, um servlet engine que integrava com o servidor Web Apache. A verso Tomcat 6.x a atual e a RI de especificaes Servlet 2.5 e JSP 2.1, pertencentes ao Java EE 5.

TRABALHANDO COM OS SERVIDORES PELO NETBEANSNa janela Services, expanda o n do item Servers. Veja os servidores que existem configurados neste local. Voc pode iniciar o GlassFish V2 ou o Tomcat, clicando com o direito do mouse sobre ele e selecionando Start no menu de contexto.

FIGURA 2.30 INICIANDO O GLASSFISH

46

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 2.37 VISUALIZANDO OS WEB APPLICATIONS PELO ADMIN CONSOLE

Retornando ao NetBeans, com o uso do direito sobre GlassFish, no menu de contexto, selecione Refresh para refletir a alterao no servidor.

ADMINISTRANDO APLICAES PELO TOMCAT FORA DO NETBEANSPara acessar o administrador do Tomcat, abaixo da verso 6, Administration Tool, clique com o direito do mouse sobre o servidor, no NetBeans, janela Services, e selecione no menu de contexto o item View Admin Console.

ATENO: No momento em que este livro escrito, no havia aplicao Web administrativa do Tomcat 6.0.14 liberada pela Fundao Apache. Nos extras do livro, contido no CD-ROM anexo, voc encontra um captulo inteiro ensinando a trabalhar com a verso Admin do Tomcat 5.5. Outra maneira de administrar as aplicaes Web atravs do Tomcat pelo Manager. O Manager possui uma estrutura mais simples, pois apenas administra as aplicaes para o bsico como deploy, undeploy, reload da aplicao e etc.

SERVIDORES DE APLICAES E SERVLETS

47

Para isso, no seu browser, seguindo a porta padro, voc digita: http://localhost:8084/manager/html Ao que surgir uma caixa de dilogo pedindo o usurio e a senha. Aps o preenchimento, voc entrar no manager.

FIGURA 2.38 ACESSANDO O MANAGER PELO BROWSER

O Manager dividido em duas sesses principais: Applications e Deploy. Atravs de Applications voc pode dar desde Start, Stop e Reload em sua aplicao, como at mesmo fazer o undeploy, simplesmente com um clique. Ele tambm exibe as Sesses em execuo na aplicao, alm de poder modificar o tempo de sesso e expirar com o boto Expire sessions. Ou seja, se houver um navegador visualizando uma de suas aplicaes, ele conta uma sesso aberta. Clicando em Path voc abre a aplicao no navegador.

SERVIDORES DE APLICAES E SERVLETS

51

Com isso, voc tem a seguinte compatibilidade quanto aos servidores de aplicao: Sun Java System Application Server GlassFish V1 e V2 Tomcat 5.x e 6 JBoss 4 e 5 BEA WebLogic Server 9 e 10 IBM WebSphere Application Server V6.0 e 6.1 (NetBeans 6.1) Sailfin V1 (NetBeans 6.1)

Segundo as recomendaes da equipe do NetBeans.org, o uso de verses do JBoss, BEA WebLogic ou qualquer outra no seja especificada nesta lista, pode alterar o funcionamento da IDE de forma imprevisvel, uma vez que as interfaces externas no so controladas pela equipe do projeto.

MONITORANDO TRANSAES HTTPO NetBeans fornece um Monitor HTTP embutido para ajud-lo a isolar problemas com a fluncia de dados de pginas JSP e execuo de Servlets em um servidor Web. Quando a IDE configurada com um container ou application server, ou feito um deploy em uma aplicao web com o Monitor HTTP do NetBeans habilitado, este registrar todos os pedidos feitos neste container web. Para cada pedido HTTP que processado pelo servidor, o Monitor HTTP registra no s o pedido, mas tambm registros com informaes de estados mantidos no container Web. Por usar o Monitor HTTP voc pode analisar pedidos HTTP feitos pelo mtodo , GET e POST para uma futura analise. Voc tambm pode editar estes pedidos armazenados e tambm pode rev-los, em um replay. Os pedidos so armazenados at que voc encerre a IDE. Voc tambm pode salva-los de forma que estejam disponveis em sesses posteriores da IDE.

TRABALHANDO COM BANCO DE DADOS

CAPTULO 4

O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo das ltimas verses. O usurio pode criar desde suas tabelas como at mesmo instrues SQL de forma visual. Este captulo tratar do uso de banco de dados em aplicaes Web com Servlets e pginas JSP utilizando o NetBeans IDE. , Ao longo deste captulo ser apresentado: A instalao, configurao e acesso ao banco de dados MySQL; Como utilizar o NetBeans IDE para criar e modificar tabelas e instrues SQL; O trabalho com os padres MVC e DAO em suas aplicaes; A utilizao de refactor do cdigo e do histrico do NetBeans; Como criar testes usando JUnit; A criao de pginas JSP com uso de JSTL para acessar dados via JDBC;

INTRODUO AO JDBCJDBC uma API includa dentro da linguagem Java para o acesso a banco de dados. Consiste em um conjunto de classes e interfaces escritas em Java que oferecem uma completa API para a programao com banco de dados, por tanto uma soluo 100% Java. JDBC uma especificao formada por uma coleo de interfaces e classes abstratas, que devem implementar todos os fabricantes de drivers que queiram realizar uma implementao de seu driver 100% Java e compatvel com JDBC.

120

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Devido ao JDBC ser escrito completamente em Java tambm passa a ter a vantagem de ser independente de plataforma. Sendo assim, no ser necessrio escrever um programa para cada tipo de banco de dados, uma mesma aplicao escrita utilizando JDBC poder trabalhar com banco de dados como Oracle, Sybase, SQL Server, MySQL, Firebird, PostgreSQL e etc. Para que isso acontea, basta alterar o JDBC referente ao banco de dados usado e o seu sistema passar a se comunicar com o banco de dados configurado.

MYSQL E O JDBCSendo um dos sistemas de gerenciamento de bancos de dados mais usados do mundo, sua velocidade e capacidade de ser multiplataforma s poderiam chamar a ateno de quem desenvolve em Java. O driver JDBC escolhido para fazer os exemplos neste livro foi o Connector/J, suportado oficialmente pela mantenedora do MySQL. Usando o driver Connector/J, todos os tipos de aplicaes Java podem acessar um banco de dados e seus dados, desde que seja em MySQL, claro.

A INSTALAO E UTILIZAO DO MYSQLO MySQL tem diferentes formas de instalao quando se trata de sistemas operacionais. No caso do Windows, voc pode baixar a ltima distribuio atravs do site: http://www.mysql.com/downloads

INSTALANDO NO WINDOWSProcure pelo formato executvel. O arquivo vem compactado no formato .zip. Descompacte e instale. A instalao, como no poderia deixar de ser, feita por um assistente. Siga os passos at a finalizao.

TRABALHANDO COM BANCO DE DADOS

127

UTILIZANDO O DRIVER JDBC NO NETBEANSNa janela Services expanda o n do item Databases. Clique com o direito do mouse sobre o item Drivers e selecione no menu de contexto o nico item: New Driver.

FIGURA 4.1 MENU DE CONTEXTO PARA ADIO DE UM NOVO DRIVER

Na caixa de dilogo New JDBC Driver clique no boto Add e selecione no local onde voc descompactou o arquivo mysql-connector-java-5.1.5-bin.jar. Ao selecionar, note que os campos Driver Class e Name ficam preenchidos. Confirme a caixa de dilogo clicando no boto OK.

128

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 4.2 CONFIGURAO DO NOVO DRIVER JDBC

SE CONECTANDO AO BANCO DE DADOSO NetBeans possibilita a conexo ao banco de dados pela IDE, tornando acessvel sua manipulao. Na janela Services clique com o direito do mouse sobre o item Databases e selecione no menu de contexto o item New Connection.

FIGURA 4.3 CRIANDO UMA NOVA CONEXO

Na caixa de dilogo New Database Connection, na aba Basic setting, selecione em Name o driver do MySQL adicionado. No campo Driver aparecer classe de conexo.

TRABALHANDO COM BANCO DE DADOS

129

No campo Database URL perceba que por parte j est preenchido. Digite o restante como mostrado a seguir: jdbc:mysql://localhost:3306/livraria

No campo User Name use o usurio que voc adicionou ao criar o banco de dados e em Password a senha. Marque a opo Remember password se voc desejar manter a senha durante a execuo do NetBeans. Confirme clicando no boto OK.

FIGURA 4.4 BANCO DE DADOS LIVRARIA CONFIGURADO

A caixa de dilogo mudar o foco para a aba Advanced, onde no final aparecer uma mensagem - Connection established. Isso significa que a conexo foi estabelecida com sucesso. Confirme novamente no boto OK.

132

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 4.8 CRIAO DA TABELA LIVROS PELA IDE

Voc deve ter percebido que alguns tipos de dados (em Data type) no existem como os do MySQL. Por isso, para completar a criao da tabela, voc vai colocar os comandos a seguir, em SQL Command (menu de contexto, Execute Command): alter table livros modify id int auto_increment; Para confirmar a execuo, clique no boto Run SQL (Ctrl+Shift+E).

FIGURA 4.9 EXECUTANDO A INSTRUO PARA MODIFICAR A COLUNA ID

140

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

UTILIZANDO O DESIGN QUERYNa sexta verso do NetBeans, o Design Query foi adicionado nativamente a IDE graas a incorporao do Visual Web JavaServer Faces. Agora, voc pode criar instrues SQL visuais pelo Design Query antes de adicionar em suas aplicaes. Para acessar o Design Query, clique com o direito do mouse sobre a tabela livros. Selecione no menu de contexto o item Design Query. Nesta janela podemos criar instrues SQL para seleo de dados visualmente, o que garante uma velocidade maior no desenvolvimento de queries mais complexas. Mais adiante veremos com mais detalhes o seu uso.

FIGURA 4.12 DESIGN QUERY

TRABALHANDO COM BANCO DE DADOS

141

UTILIZANDO PADRES DE DESENVOLVIMENTOEm uma pgina JSP o correto conter apenas o mnimo possvel de scriptlets. A essa forma de desenvolver aplicaes chamamos de Padres de Desenvolvimento (Design Patterns). Um padro muito praticado no desenvolvimento de aplicaes Web escritas em Java o Model 2, baseado no paradigma MVC (Model-ViewController). Quanto ao acesso a banco de dados temos um padro popularmente usado, chamado de DAO (Data Access Object).

O QUE MVC?MVC um conceito (paradigma) de desenvolvimento e design que tenta separar uma aplicao em trs partes distintas. Uma parte, a Model, est relacionada ao trabalho atual que a aplicao administra, outra parte, a View, est relacionada a exibir os dados ou informaes dessa aplicao e a terceira parte, Controller, em coordenar os dois anteriores exibindo a interface correta ou executando algum trabalho que a aplicao precisa completar. A arquitetura MVC foi desenvolvida para ser usada no projeto de interface visual em Smalltalk. Estas partes so respectivamente: MODEL: O Model (Modelo) o objeto que representa os dados do programa. Maneja esses dados e controlam todas suas transformaes. Esse modelo no tem conhecimento especfico dos controladores (controller) e das apresentaes (views), nem sequer contm referncia a eles. Portanto, o Model so as classes que trabalham no armazenamento e busca de dados. Por exemplo, um cliente pode ser modelado em uma aplicao, e pode haver vrios modos de criar novos clientes ou mudar informaes de um relativo cliente. VIEW: A View (Apresentao) o que maneja a apresentao visual dos dados representados pelo Model. Em resumo, a responsvel por apresentar os dados resultantes do Model ao usurio. Por exemplo, uma Apresentao poder ser um local administrativo onde os administradores se logam em uma aplicao. Cada administrador poder visualizar uma parte do sistema que outro no v.

142

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

CONTROLLER: O Controller (Controlador) o objeto que responde as ordens executadas pelo usurio, atuando sobre os dados apresentados pelo modelo, decidindo como o Modelo devera ser alterado ou devera ser revisto e qual Apresentao devera ser exibida. Por exemplo, o Controlador recebe um pedido para exibir uma lista de clientes interagindo com o Modelo e entregando uma Apresentao onde esta lista poder ser exibida. O modelo MVC uma forma de desenvolvimento que ajuda na manuteno do sistema, um padro muito aceito no desenvolvimento de aplicaes Java, principalmente no de aplicaes escritas para a Web. A separao lgica da aplicao nestas partes assegura que a camada Modelo no sabe nada praticamente do que exibido; restringida por representar as partes de componentes do problema que resolvido pela aplicao. Igualmente, a camada de Apresentao s est relacionada a exibir os dados e no com o implementar lgica de negcios que controlada pela camada Modelo. O Controlador, como um gerenciador de trfego, dirige as apresentaes a serem exibidas e com as devidas mudanas de dados e recuperaes vindas da camada Modelo.

O MODEL 1A primeira arquitetura, conhecida como Model 1, muito comum no desenvolvimento de aplicaes Web, chamada de page-centric. Esta arquitetura fornece o modo mais fcil de reunir uma aplicao Web. Envolve simplesmente a construo de uma aplicao como um conjunto de pginas JSP . A sucesso de eventos explicada neste exemplo simples: 1. O usurio pede uma pgina de Webpor exemplo, a pgina principal, index. jsp. 2. O container Servlet executa a lgica contida na pgina index.jsp como tambm inclui pginas para que se possa apontar. Esta execuo pode incluir a recuperao de dados de um banco de dados ou outras funes que satisfaam lgica de negcios. Os JavaBeans fornecem as representaes de dados dentro da pgina JSP . 3. Unido junto lgica de negcios da pgina, sero confeccionadas e apresentadas o HTML ao usurio. 4. Como resultado do processo, construdo o HTML final e exibido ao usurio.

TRABALHANDO COM BANCO DE DADOS

143

FIGURA 4.13 - ARQUITETURA MODEL 1

O MODEL 2O Model 1, indicada para uma aplicao pequena, que contm um limitado nmero de usurios e possui pouca lgica de negcios, principalmente por ser simples e efetiva. Porm, em uma aplicao mais complexa, onde a lgica de negcios no s mais detalhada, mas a lgica de exibio necessria tambm significantemente grande, uma arquitetura de desenvolvimento baseada no Modelo 1 far com que seja um tanto bagunado o montante de cdigos desenvolvidos. Quando voc coloca a lgica de negcios em um modelo simples de desenvolvimento, uma repetio de cdigo acaba ocorrendo (isso muito comum no desenvolvimento de outras linguagens de programao Web cujos conceitos de desenvolvimento no esto fortemente agregados). Isso impossibilita uma rpida manuteno e evidentemente, em um crescimento da aplicao, no haver uma possvel extenso. E isso porque no estamos contando com o fator de testes. Desafiado por estas desvantagens bvias, os desenvolvedores identificaram uma arquitetura mais sofisticada que usa Servlets e pginas JSP Esta arquitetura fora . batizada de Model 2 (Modelo 2), que est baseada em uma adaptao da arquitetura MVC. Nessa implementao, um Servlet usado como um Controlador, recebendo pedidos do usurio, enquanto efetuando mudanas no Modelo, e fornecendo a Apresentao ao usurio.

144

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

As apresentaes ainda implementadas nesta arquitetura usam pginas JSP mas a , lgica que elas contm s a de exibir a interface ao usurio. A camada de Modelo foi encapsulada em objetos Java.

FIGURA 4.14 - ARQUITETURA MODEL 2

A seguir voc tem uma explicao do que acontece nesse modelo de desenvolvimento: 1. Um pedido feito a um Servlet atravs da URL. No pedido h uma indicao do trabalho a ser executado. Por exemplo, na URL voc pode ter algo como: /Livraria?action=mostrarAutores, onde action representa o trabalho que a camada Controlador deve empreender. 2. A camada Controlador recebe o pedido e determina o trabalho baseando-se no pedido. Essa camada executa chamadas camada Modelo que empreende a lgica de negcios exigida. 3. A camada Modelo instruda a fornecer uma lista de objetos de Livros pelo Controlador. Este, por sua vez, pode acessar algum tipo de camada persistente, como um banco de dados. 4. Para a camada Controlador proporcionada a lista de objetos de Livros para serem exibidos na camada de Apresentao. A camada Controlador tambm determina a apresentao apropriada para fornecer ao usurio. Usando um

TRABALHANDO COM BANCO DE DADOS

145

despachante de pedidos, o Servlet pode fornecer a lista de objetos Livros camada de Apresentao selecionada (pgina JSP mais indicada). 5. A camada de Apresentao tem uma referncia agora aos dados fornecidos e faz a exibio da lista conforme sua lgica definida. O HTML gerado no resultado desse processo fornecido em resposta ao usurio. Embora esta explicao tcnica possa parecer complexa ou confusa a um iniciante, utilizar o Model 2 para desenvolvimento de simples compreenso e traz muita vantagem no momento da manuteno.

O PADRO DAO (DATA ACCESS OBJECT)O padro DAO (Data Access Object) o padro mais utilizado para acesso a dados contidos em um banco de dados. Sempre que voc precisa acessar um banco de dados que est mantendo seu modelo de objetos, melhor empregar o padro DAO. O Padro DAO fornece uma interface independente, no qual voc pode usar para persistir objetos de dados. A idia colocar todas as funcionalidades encontradas no desenvolvimento de acesso e trabalho com dados em um s local, tornando simples sua manuteno. Tipicamente um DAO inclui mtodos para inserir, selecionar, atualizar e excluir objetos de um banco de dados. Dependendo de como voc implementa o padro DAO, voc poder ter um DAO para cada classe de objetos em sua aplicao ou poder ter um nico DAO que responsvel por todos os seus objetos.

CRIANDO UM PROJETO COM PADRESCrie um novo projeto no NetBeans IDE. Chame-o de TrabComPadroes. Adicione as bibliotecas: JDBC MySQL e JSTL.

TRABALHANDO COM BANCO DE DADOS

147

A FBRICA DE CONEXOVoc vai comear a construir a classe de conexo, no qual acessar o banco de dados criado. Com o direito do mouse sobre o projeto, v a New e clique em Java Class. Se preferir, Ctrl + N e na caixa de dilogo New File selecione Java Classes em Categories e clique em Java Class em File Types. Digite ConnectionFactory em Class Name e br.com.integrator.util em Package. Clique no boto Finish para confirmar.

FIGURA 4.17 CRIAO DA CLASSE CONNECTIONFACTORY

TRABALHANDO COM BANCO DE DADOS

165

Observe que ao renomear a classe, o construtor tambm foi renomeado automaticamente, o que altamente recomendvel utilizar sempre esta ferramenta para tais situaes.

TESTANDO SEU DAOUma boa prtica no desenvolvimento testar classes para verificar a assertividade e conseqentemente evitar erros futuros por falhas ocorridas em etapas preliminares. A classe DAO desenvolvida faz o que chamamos de CRUD (Create Read Update Delete), ou seja, ela opera em quatro situaes no banco de dados. Estas operaes devem ser testadas para saber se esto corretamente funcionais ou se h pequenas falhas no percebidas pelo desenvolvedor. O exemplo que ser feito simples, apenas para testar a funcionalidade do DAO, sem a inteno de obter uma biblioteca de terceiros no suportada nativamente pelo NetBeans. Quando voc cria um projeto, automaticamente o NetBeans adiciona em sua rvore um diretrio chamado de Test Libraries contendo duas bibliotecas: JUnit 3.x e JUnit 4.x. A biblioteca mais moderna possui suporte a annotations (Java SE 5 ou superior e Java EE 5). JUnit, para quem no conhece, um framework open source, criado para fazer testes automatizados, chamados de test cases. Este framework foi idealizado por Erich Gamma, um dos autores dos populares padres de projeto e Kent Beck, pai do XP (Extreme Programming). Para desenvolv-lo, usaram o conceito de testes unitrios (unit tests) em Java criando uma ferramenta chamada JUnit, baseada em SUnit, do SmallTalk. Para iniciar a criao da classe de testes, selecione a classe AutorDAOImp e v at o menu Tools e clique no item Create JUnit Tests (Ctrl+Shif+U). O mesmo pode ser feito com o direito do mouse sobre a classe, na janela Projects, e no menu de contexto selecionar o item Tools e clicar em Create JUnit Tests.

166

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 4.30 - SELEO DA OPO CREATE JUNIT TESTS NO MENU PRINCIPAL TOOLS

Como o projeto possui duas verses do JUnit, haver uma pergunta ao criar o teste unitrio, para escolha da verso desejada. Para o exemplo, voc vai escolher o JUnit 4.x

FIGURA 4.31 SELECIONANDO A VERSO DO JUNIT A SER USADA

O NetBeans mantm em Test Libraries apenas a verso escolhida, removendo a anterior. Outra caixa de dilogo surgir, Create Tests, onde no campo Class Name haver o nome da classe e o pacote que ser criado. Se desejar, pode alter-los (o que para o caso seria desperdcio de tempo). Em Location mostrado o local onde ser criada a classe, que na janela Projects ficar em Test Packages.

182

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

FIGURA 4.35 EXIBIO DOS AUTORES CADASTRADOS

A Tabela 4.4 a seguir demonstra seus atributos:

TABELA 4.4 - ATRIBUTOS DA ACTION ATRIBUTOS type dateStyle timeStyle value DESCRIO Pode ser time, date ou both. Usado para imprimir somente a hora, data ou ambos. Pode ser usado short, medium, long ou full (ou default). Usado para imprimir a data. Pode ser short, medium, long ou full (ou default). Usado para imprimir a hora. Um valor do tipo java.util.Date usado para renderizar data e hora.

Para excluir um autor, o Servlet novamente deve ser chamado, enviando dois comandos: exc e o ID do autor que deseja remover do banco de dados. Para executar essa ao, a query string cmd=exc&id=ID do autor transmitida para o Servlet para que esse execute o determinado.

CADASTRANDO NOVOS AUTORESAproveitando o DAO, voc vai criar um formulrio (Listagem 4.15) que ir cadastrar os dados do novo autor que deseja armazenar:

186

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Outro detalhe que novamente JSTL usado aqui para simplificar a formatao da data de nascimento do autor.

FIGURA 4.36 FORMULRIO DE ATUALIZAO PREENCHIDO

POOL DE CONEXESQuando uma aplicao Web acessa um banco de dados remoto, esse acesso pode ser feito por uma conexo JDBC, como visto anteriormente. Tipicamente, uma conexo de JDBC fsica estabelecida entre a aplicao cliente e o servidor de banco de dados por uma conexo TCP/IP . Pool de conexes reduzem expressivamente o tempo de conexes estabelecidas criando uma conexo fsica no incio do sistema. Quando uma aplicao requerer uma conexo, uma destas conexes fsicas fornecida a esta aplicao. Em um sistema comum, sem o pool de conexo, quando a aplicao termina de usar a conexo, este a desconecta, como feito anteriormente usando o mtodo close( ). Porm, no caso de uma conexo fsica, essa devolvida somente para o pool de conexes, onde espera o prximo pedido da aplicao para um novo acesso ao banco de dados.

CONFIGURANDO POOL DE CONEXESNo NetBeans IDE, voc pode tambm configurar Pool de conexes. Para o exemplo, voc vai configurar um no GlassFish.

PARTE 2

AVANANDO NODESENVOLVIMENTO DE APLICAES

JAVA EE5:

WEB

CAPTULO 5 JAVASERVER FACES

JavaServer Faces um framework desenvolvido pela Sun Microsystems, e parte integrante da tecnologia do mundo de Java EE. O framework JavaServer Faces foi desenhado para facilitar o desenvolvimento de aplicaes Web atravs de componentes de interface de usurio (GUI) e conecta estes componentes a objetos de negcios. O JavaServer Faces utiliza o paradigma MVC para trabalhar com sua apresentao e navegao de dados. Sua utilizao recomendada pela Sun Microsystems para o desenvolvimento Web com Java na atualidade. Neste captulo ser apresentado: Os princpios de JavaServer Faces no NetBeans IDE; Como desenvolver aplicaes JSF com acesso a banco de dados; Como validar erros e criar navegao por entre as pginas; A alterao das mensagens padres de JSF.

198

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

UM PROJETO JAVASERVER FACESPara que voc se acostume com o desenvolvimento de pginas JSF, seu primeiro exemplo ser pequeno e simples. Com este exemplo, voc vai aprender a base caracterstica do desenvolvimento de JavaServer Faces utilizando o NetBeans IDE. Inicie a criao de um projeto Web. Digite o nome do seu projeto. Se quiser seguir o livro, chame-o de PrimProjJSF. Escolha seu servidor e clique no boto Next para prosseguir. Na terceira etapa, marque a opo JavaServer Faces em Select the frameworks you want to use in your web application.

FIGURA 5.1 CONFIGURANDO A TERCEIRA ETAPA DO ASSISTENTE DE CRIAO

Em Servlet URL Mapping voc tem por padro a configurao /faces/*, indicando que o acesso s aplicaes escritas em JSF sero antecipadas da palavra faces/, o que teramos, por exemplo, um link como o mostrado a seguir:

JAVASERVER FACES

199

http://localhost:8080/PrimProjJSF/faces/pagina.jsp

Para este caso, voc vai mudar para *.faces, ou seja, no acesso a suas aplicaes escritas em JavaServer Faces, as pginas contero a extenso .faces, como o link de exemplo mostrado a seguir: http://localhost:8080/PrimProjJSF/pagina.faces Ao terminar a configurao, basta clicar no boto Finish. O NetBeans IDE cria duas pginas JSP (forwardToJSF.jsp e welcomeJSF.jsp), onde a segunda contm um pequeno trecho de JavaServer Faces. Se voc estiver usando o Tomcat, expandindo o n de Libraries voc ver que o NetBeans IDE colocou todas as bibliotecas necessrias para o desenvolvimento de JSF. No caso do GlassFish, tais bibliotecas j esto embutidas no servidor, o que no ser necessrio esta adio. Em uma aplicao que utilize o framework JavaServer Faces na verso 1.2, h a necessidade de oito arquivos do tipo JAR (bibliotecas) para que sejam acessados pelo servidor ou pela aplicao Web: Quatro JARs Commons: 1. commons-beanutils.jar 2. commons-collections.jar 3. commons-digester.jar 4. commons-logging.jar, Dois JARs JSF: 1. jsf-api.jar 2. jsf-impl.jar Dois JARs JSTL: 1. jstl.jar 2. standard.jar

200

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

Em uma um ambiente de produo, estas bibliotecas devem estar disponveis em sua aplicao no diretrio lib, encontrado em WEB-INF, caso o servidor no as disponibilize nativamente.

OBSERVAO: O JavaServer Faces atualmente est na verso 1.2, suportado apenas pelos servidores Java EE 5. Se o usurio tiver disponvel um Servlet Container como o Tomcat verso 5.5, que implementa Java EE 1.4 (J2EE 1.4), ser necessria a configurao do JavaServer Faces n a verso 1.1 (anterior a atual).

TRABALHANDO COM JAVASERVER FACESAssim que configurado, voc apenas precisa criar um exemplo para comear a entender como funciona o JavaServer Faces. O primeiro exemplo ter apenas um campo para o envio de nomes. Este exemplo contar com uma validao, para o caso do usurio entrar com um valor invlido, no alfabtico, retornando um erro. Caso retorne o erro, alm de manter preenchido o campo digitado, tambm mostrar uma mensagem, solicitando a alterao.

CRIANDO O JAVABEANO JavaBean mostrado a seguir ser o responsvel pela comunicao entre a pgina inicial, que o usurio digitar o nome, em um formulrio, e a pgina que resultar na mensagem de boas vindas, caso esta seja submetida com sucesso. No NetBeans IDE, crie uma nova classe e chame-a de NomeBean. Coloque no pacote br.com.integrator e clique no boto Finish para confirmar.

JAVASERVER FACES

213

Ol

A sada do nome, como resultado positivo, vindo do Bean, feito pela tag . A pgina forwardToJSF.jsp poder ser alterada a seu gosto, embora ela esteja pronta com um redirecionamento para welcomeJSF.jsp. Rode a aplicao e tente enviar um texto contendo um caractere numrico. Em seguida, corrija e envie os dados corretamente, conforme as regras estabelecidas no Bean.

FIGURA 5.10 ERRO APRESENTADO PELO ENVIO INCORRETO DE DADOS

CONHECENDO MELHOR O JAVASERVER FACESAgora que voc j fez sua primeira aplicao em JSF, mais fcil de entender os servios que o framework JSF oferece ao desenvolvedor. Como voc pde ver, o framework JSF responsvel por interagir com o usurio (cliente), e fornece ferramentas para criar uma apresentao visual, a parte lgica e a lgica de negcios de uma aplicao Web. Porm, o escopo de JSF restringido camada de apresentao. A persistncia de banco de dados e outras conexes de back-end esto fora do escopo de JSF.

222

DESENVOLVENDO APLICAES WEB COM NETBEANS IDE 6

CRIANDO UM EXEMPLO UTILIZANDO BANCO DE DADOS E JSFA idia neste exemplo demonstrar as principais caractersticas encontradas em uma pgina JavaServer Faces acessando um banco de dados. Este exemplo acessar o banco de dados MySQL, executando o famoso CRUD (Create, Read, Update and Delete). Alm disso, o cdigo de acesso ao banco de dados no ser necessrio refazer, uma vez que ele ser o DAO criado no Captulo 4 deste livro. Crie um novo projeto web. Se desejar, chame-o de UtilJSFComDAO. No se esquea de selecionar o framework JavaServer Faces na terceira etapa do assistente. Quanto ao Servlet URL Mapping, voc pode alterar ou manter como est. No caso do livro, alterei para *.jsf. Adicione a biblioteca JDBC do MySQL ao projeto. Do projeto que utiliza o padro DAO, feito no captulo anterior, copie as classes e seus respectivos pacotes.

O BEAN DE COMUNICAO COM AS PGINAS JSFPara a comunicao com as pginas JavaServer Faces que sero construdas, um bean ser construdo, um controlador com o intuito de se comunicar com as classes j existentes. Para desenvolver este controlador, crie uma classe chamada de AutorController em um pacote chamado de br.com.integrator.controller. Altere esta classe como mostrado na Listagem 5.7 a seguir.

LISTAGEM 5.7 ALTERAO EM AUTORCONTROLLER.JAVA ... public class AutoresController { private Autor autor; private DataModel model;

JAVASERVER FACES

231

value=Cadastrar novo Autor/> ...

O datagrid desenvolvido utiliza a tag JSF , que recebe todos os dados existentes na tabela autores do banco de dados atravs do mtodo getTodos( ), da classe AutorController, no atributo value. Com a tag voc pode chamar os mtodos editar( ) ou excluir( ). A tag JSF , adicionada a tag JSF responsvel por renderizar corretamente a formatao da data, trazida do banco de dados. O ltimo link criado pela tag est fora do dataTable, por no interagir diretamente sobre a mesma, chamando o mtodo novoAutor( ) para criar um novo cadastro de Autores. O resultado desta pgina ser como mostrado na Figura 5.13 a seguir:

FIGURA 5.13 JAVASERVER FACES DATATABLE RENDERIZADO COM OS DADOS

JAVASERVER FACES

235

O resultado a pgina com o formulrio similar ao mostrado na Figura 5.14 a seguir:

FIGURA 5.14 FORMULRIO DE CADASTRO E ATUALIZAO DE DADOS

ATUALIZANDO UM AUTOR CADASTRADONa pgina onde contm todos os autores cadastrados existe na primeira coluna o ID do auto