Você está na página 1de 69

Criando um Aplicativo para a web com Java EE 7

Criando um Aplicativo para a


web com Java EE 7

http://profissionaisjava.com

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

INDICE
Introduo............................................................................................................................................4
MDULO 1 - Instalando e Configurando o Java no Windows .............................................................5
Realizando o download e instalando o Java no Windows...............................................................5
Configurando as variveis de ambiente do Java............................................................................10
Configurando a varivel JAVA_HOME........................................................................................11
Configurando a varivel CLASSPATH..........................................................................................14
Testando o processo de configurao das variveis de ambiente ............................................15
MDULO 2 - Criando e Configurando Um Ambiente de Desenvolvimento Web Com Java .............17
Criando, entendo e executando o ambiente de desenvolvimento ...............................................17
Criando uma aplicao Java para Web com Maven ......................................................................23
Componentes da estrutura de uma aplicao Java para web.......................................................27
Configurando o projeto para utilizar JSF.......................................................................................30
Adicionando dependncias do JSF no projeto Java para web.......................................................33
MDULO 3 - Fazendo Com Que o Mundo Orientado a Objetos se Comunique com o Mundo
Relacional - Banco de Dados..............................................................................................................34
Criando a base de dados................................................................................................................38
Adicionando as Dependncias do Hibernate e do PostgresSQL....................................................41
Criando o arquivo hibernate.cfg.xml .............................................................................................43
Criando a Classe Livros Para Persitncia de Dados........................................................................46
Criando o DAO da aplicao...........................................................................................................52
MDULO IV - Criado Uma Aplicao Simples de CRUD com JAVA Web ...........................................57
Managed Beans..............................................................................................................................57
Arquivos de Configurao faces-config.xml e web.xml .................................................................59
Pginas web do projeto .................................................................................................................60
Instalando o Tomcat e Executando a Aplicao ............................................................................64
CONCLUINDO .....................................................................................................................................69

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Introduo

Este ebook tem o propsito de trazer, de forma resumida, os principais componentes que
norteiam a construo de um aplicativo java para web.
O primeiro mdulo traz o processo de instalao, configurao e teste de uma pequena
aplicao em java.
No segundo mdulo, vamos configurar o ambiente para o desenvolvimento web com java.
Instalaremos uma ferramenta (IDE) de gerao e manipulao de cdigo, criaremos e
entenderemos a estrutura de uma aplicao web para java, etc.
No terceiro mdulo comearemos a trabalhar com base de dados em java. Para isso
instalaremos um banco de dados relacional e realizaremos o processo de mapeamento objeto
relacional, o qual une o mundo relacional (tabelas) com o mundo orientado a objetos (classes).
No quarto mdulo, realizaremos o comeo de nossa aplicao web, com a tecnologia de
desenvolvimento em java conhecida como Java Server Faces (JSF) .
Por fim, realizaremos uma introduo a biblioteca Primefaces, que tem a funo de
expandir as funcionalidades do JSF, adicionando vrios recursos visuais a aplicao, bem como a
utilizao de Ajax e instalaremos um servidor web para testar nossa aplicao java web.
Por fim, teremos uma aplicao web simples montada, utilizando recursos de crud bsico,
como consultas, inseres, alteraes e excluses.
Bons estudos.

Criando um Aplicativo para a web com Java EE 7

MDULO 1 - Instalando e Configurando o Java no Windows

Realizando o download e instalando o Java no Windows


Caso voc no tenha a JDK/JRE instalado em seu computador necessrio que faa o download e
instalao do mesmo.
Para isso necessrio ir at o site da oracle no seguinte endereo:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads1880260.html?ssSourceSiteId=otnpt

Iremos trabalhar com o JDK 7, o qual j vem com JRE presente em seu pacote de instalao

Figura 1 - Relao de Pacotes de Instalao da JDK do Java

Foquei no ambiente Windows para download e instalao do Java, pois o sistema


operacional que estou utilizando neste computador onde estou criando este ebook. Caso voc
possua outro sistema operacional como Linux ou MacOS, o processo de instalao feito de forma
diferenciada.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Posteriormente, no blog http://profissionaisjava.com, farei uma postagem especifica para
a instalao do Java nos sistemas operacionais citados anteriormente e mandarei por e-mail o link
dos posts. Ento, vou manter o foco de instalao e configurao do Java no ambiente Windows.
Voltando a figura 1, escolhi a verso de x64, para windows 64 bits, que faz referncia ao
arquivo jdk-7u71-windows-x64.exe. Caso seu sistema operacional seja de 32 bits, escolha a verso
referente a x86, ou seja, para plataformas de 32 bits.
Clique sobre o arquivo citado anteriormente e voc poder ser levado ao mirror para
baixar o arquivo ou o processo de download ser feito de forma automtica.
Aps concluir o processo de download, v at o arquivo e execute-o dando um duplo clique
sobre o mesmo, para que o processo de instalao seja iniciado. A seguinte tela poder ser
exibida:

Figura 2 - Tela de Controle de Conta de Usurio do Windows

Neste passo, o UAC (Controle de Contas de Usurio), poder pedir a voc que d
permisses ao aplicativo de instalao do JDK para que possa alterar as configuraes no sistema.
Clique sobre o boto Sim. Aps, voc ser remetido para primeira tela de instalao do JDK.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 3 - Tela de Bem Vindo do Programao de Instalao do JDK do Java

Clique sobre o boto Next para ser remetido para a prxima tela.

Figura 4 - Tela que Demonstra as Ferramentas do JDK 7

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Aqui esto os pacotes de ferramentas que fazem parte do Kit de Desenvolvimento do Java
7. No modifique nada. Todos sero instalados em nosso computador conforme os padres de
instalao j definidos no instalador. Clique sobre o boto Next para continuar.
O instalador processar alguns dados e logo mostrar o path (caminho) aonde a JRE ser
instalada. Observe:

Figura 5 - Instalador do JDK exibindo o Path de Instalao da JRE

Clique sobre o boto Next para continuar e para que o processo de instalao dos arquivos
seja executado e posteriormente finalizado conforme mostra a figura a seguir:

Figura 6 - Processo de Instalao em Processamento e Concluso

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Clique sobre o boto Close para finalizar o processo de instalao. Neste ponto, j estamos
com o JDK e a JRE instalados em nosso computador. Voc pode observar isso, indo at C:\Program
Files\Java.

Figura 7 - Pastas criadas pelo Instalador do JDK

Para testar se o processo de instalao ocorreu de forma correta, basta abrir janela de
comando (prompt de comando) do Windows e digitar a seguinte instruo:

java -version
Caso o processo de instalao tenha sido feito de forma correta, a verso do java ser
exposta, conforme demonstra a figura a seguir:

Figura 8 - Prompt de Comando - Visualizando a Vers77o Instalada do Java

Partindo do pressuposto que tudo est correto at aqui, nosso prximo passo configurar
as variveis de ambiente do Java. Isso ser visto a seguir.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Configurando as variveis de ambiente do Java


O propsito de configurar as variveis de ambiente do Java para garantir que o acesso as
pastas de instalao, tanto do JDK, como do JRE, estejam acessveis a outros programas que
necessitem do java para sua execuo.
Embora todo o processo de instalao no ambiente Windows ocorra via assistentes
(wizards) e o JDK e a JRE estejam disponveis na lista de programas em nosso computador, existem
programas Java, como o Tomcat, por exemplo, que ignora tal processo de instalao e
simplesmente procura a instalao do Java atravs de variveis de ambiente.
Variveis de ambiente nada mais so que apontadores, identificados atravs de aliases
(apelidos), que indicam ou do acesso a determinadas funcionalidades/aplicativos instalados em
nosso computador.
Uma varivel de ambiente muito conhecida e padro no ambiente Windows o Path, a
qual indica, monta, informa ao sistema operacional, quais aplicativos devero estar disponveis em
qualquer "lugar" aonde estejamos em nosso computador.
No caso para o JDK/JRE iremos fazer a configurao de duas variveis:
1. JAVA_HOME: indica para o sistema operacional e aplicativos que necessitam do Java para
execuo aonde est o JRE ou JDK instalado. Neste caso em especifico, apontaremos para a
pasta do JDK. Observe:

Figura 9 - Pasta do JDK 1.7 Utilizada Como Caminho Para a Varivel JAVA_HOME

2. CLASSPATH: responsvel por indicar o caminho das bibliotecas (jars) que sero utilizadas
em nossos projetos. Podemos indicar algumas de inicio e, com o tempo, conforme exista
necessidade, podemos ir adicionado. Para iniciar, geralmente apontamos para alguns jars,
que esto presentes na pasta lib do JRE. Observe:
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 10 - Pasta Lib do JRE e suas bibliotecas (jars)

Configurando a varivel JAVA_HOME


Para comear, vamos configurar a varivel JAVA_HOME. Para isso, v at o Painel de
Controle, clique Sistema e Segurana, aps em Sistema e por ltimo em Configuraes avanadas
do sistema. A seguinte caixa de dialogo ser exposta:

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 11 - Caixa de Dilogo Propriedades do Sistema

Nesta caixa de dilogo, podemos realizar varias configuraes referentes ao nosso sistema
operacional. O que nos interessa aqui, focar no que relacionado as variveis de ambiente.
Ento clique sobre o boto Variveis de Ambiente, para que uma nova caixa de dilogo seja
exposta.

Figura 12 - Caixa de Dilogo Para Criar e Editar as Variveis de Ambiente

A caixa de dilogo Variveis de ambiente exposta. Aqui realizaremos a configurao das


variveis de ambiente do Java citadas anteriormente mas, neste momento, gostaria de salientar

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


um grande detalhe, ou seja, observe que esta caixa de dilogo possui duas reas de configurao:
Variveis de ambiente para o usurio XXX (Jean - eu no caso) e Variveis do sistema.
Ignore totalmente o que est relacionado as variveis de usurio pois, o que for
configurado aqui, servem apenas para o usurio "logado". Por exemplo, neste caso o usurio Jean
est logado no computador. No momento que o usurio Joo acessar o computador, as variveis
configuradas anteriormente no estaro configuradas para ele pois.
Ento, foque no que relacionado as variveis de sistema, ou seja, o que voc configurar,
criar aqui, estar disponvel para qualquer usurio.
O primeiro passo criar a varivel JAVA_HOME e configura-la. Para isso clique no boto
Novo, no grupo Variveis do sistema. Entre com os dados conforme exibido na figura a seguir:

Figura 13 - Criando e Configurando a Varivel JAVA_HOME

Em Nome da varivel, digite JAVA_HOME em letras MAISCULAS. Em Valor da varivel,


entre com o path (caminho) de instalao do JDK instalado em seu computador. Para finalizar,
clique sobre o boto OK.
A varivel JAVA_HOME ser adiciona a lista de variveis do sistema mas, para finalizar o
procedimento de criao e configurao, devemos disponibiliza-la para todo o sistema
operacional.
Para isso, o Windows possui a varivel Path, que mantm adicionada a ela as demais
variveis de sistema criadas, bem como caminhos (configuraes de folders/pastas) especificados
de forma manual, sem ter outra varivel de ambiente criada.
Procure na lista de variveis de sistema pela varivel Path e clique sobre o boto Editar. A
seguinte caixa de dilogo ser exibida:

Figura 14- Configurando a Varivel de Sistema Path

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Em Nome da varivel NO FAA NADA. Em Valor da varivel, v at o final do contedo da
caixa e digite: ;%JAVA_HOME%\bin. Clique sobre o boto OK para concluir.
Pronto. A varivel JAVA_HOME est configurada. O valor digitado ;%JAVA_HOME%\bin,
ser explicado logo a seguir.

Configurando a varivel CLASSPATH


Poderamos deixar para configurar esta varivel posteriormente, visto que a incluso de
bibliotecas Java (.jars) em nvel de sistema serve apenas para quando determinado programa, que
precisa do Java e consequentemente de tal biblioteca, verifique se a mesma est disponvel
(configurada) para acesso. Mas, vamos realizar de forma completa todo o processo de
configurao de variveis de ambiente para o Java.
Da mesma forma que voc criou e configurou a varivel JAVA_HOME anteriormente, faa o
mesmo procedimento para a varivel CLASSPATH, conforme demonstra a figura:

Figura 15 - Criando e Configurando a Varivel CLASSPATH

Em Nome da varivel digite CLASSPATH. Em Valor da varivel, o contedo no ficou


totalmente visivel conforme demonstra a figura. Ento, digite:
.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\jconsole.jar

onde:

%JAVA_HOME% significa a mesma coisa que C:\Program Files\Java\jdk1.7.0_71, caminho


configurado para a varivel JAVA_HOME anteriormente. Os percentuais (%) so
convenes para o sistema operacional Windows e devem OBRIGATORIAMENTE serem
utilizados, pois indicam que o apontador se refere a uma varivel j pr-configurada.

\lib corresponde a pasta lib presente abaixo de C:\Program Files\Java\jdk1.7.0_71. Logo,


\bin (configurado no tpico anterior), tambm corresponde a um folder, o qual contm o
compilador Java, conhecido como javac e que ser visto logo a seguir.

tools.jar e jconsole.jar so bibliotecas java disponveis no folder \lib.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Concluindo, juntando tudo o que descrito teramos o seguinte:

C:\Program Files\Java\jdk1.7.0_71\lib\tools.jar.

C:\Program Files\Java\jdk1.7.0_71\lib\ jconsole.jar.

Figura 16 - Path e Listagem de .Jars Configurados na Varivel CLASSPATH

Desta forma, as bibliotecas tools.jar e jconsole.jar esto disponveis para qualquer


aplicativo Java que precise delas.
Devo salientar que a varivel CLASSPATH configurada conforme existe a necessidade de
adicionar bibliotecas e deixa-las disponveis para qualquer programa Java. O que foi configurado
anteriormente apenas um exemplo e serve apenas para salientar o processo de configurao.

Testando o processo de configurao das variveis de ambiente


Gosto de testar tudo o que fao e nosso procedimento agora ser verificar se nosso
processo de configurao foi feito de forma correta.
Para isso, abra a tela de de prompt de comando de comando do Windows e digite a
seguinte instruo:

javac
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 17 - Testando o Processo de Configurao das Variveis de Ambiente

Isso correspondente ao compilador do Java, ou seja, javac responsvel por compilar um


programa Java tornando-o com capacidade de execuo em determinada plataforma de ambiente
operacional sendo, neste caso, o Windows.
Mas o objetivo aqui no discutir a capacidade de compilao javac e sim testar o
processo de configurao de variveis de ambiente do Java. Ento, caso voc tenha as mesmas
mensagens exibidas na figura acima, isso garante que o processo de configurao obteve sucesso.
Mas porque garante? Garante pelo simples fato de que o compilador javac, no esta
configurado de forma natural quando instalamos o JDK/JRE em nosso computador. Este
compilador est apenas na pasta bin do JDK ou JRE e no esta disponvel seu acesso de forma
direta no processo de instalao convencional.
Ento, quando atribumos a varivel de sistema Path o valor ;%JAVA_HOME%\bin,
estamos garantindo que tanto o compilador javac, assim como os demais utilitrios que esto
abaixo de \bin estejam disponveis.
Conclumos aqui o processo de configurao das variveis de ambiente do Java.
Nosso prximo passo montar um ambiente de desenvolvimento para Java aonde,
retornaremos, com certeza, a vrios conceitos estudados at aqui.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

MDULO 2 - Criando e Configurando Um Ambiente de Desenvolvimento


Web Com Java

Criando, entendo e executando o ambiente de desenvolvimento


Para criar a aplicao Java Web deste ebook utilizaremos a ferramenta Eclipse.
O Eclipse caracterizado como uma IDE, ou seja, uma ferramenta que tem o propsito de
auxiliar o desenvolvedor de software, aumentando sua produtividade na produo de suas
aplicaes. Ele no utilizado apenas para desenvolvimento de software Java, mas tambm para
outras linguagens como C++ e PHP.
Vamos iniciar. Para realizar download do Eclipse IDE v at site http://www.eclipse.org/.
V at se sesso downloads, e escolha a verso Eclipse IDE for Java EE Developers.

Figura 18 - Eclipse Configurado Para Desenvolvimento Web em Java

No esquea de escolher a verso para 32 ou 64 bits de acordo com seu Windows. No meu
caso em particular verso de 64 bits. Voc ser direcionado para a sesso de mirrors para
download.
Escolha o primeiro link e salve o arquivo compactado em uma pasta de fcil acesso.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 19 - Mirror Presente no Brasil Para Download do Eclipse

Tenho por premissa salvar na rea de trabalho para fins didticos, mas voc pode salvar no
folder/pasta que quiser, desde que essa pasta tenha permisso de leitura e escrita. Aps o
trmino do download, descompacte o arquivo em uma pasta com o nome de Eclipse.
Acesse a pasta e visualize seu contedo. Na pasta voc um aplicativo Executvel
conforme mostra a figura a seguir:

Figura 20 - Executvel do Eclipse

D um duplo clique sobre o cone para executar o Eclipse IDE. Supondo que a JDK/JRE j
esteja instalada e o processo de execuo esteja correndo de forma correta, ser exibida a tela de
abertura da Eclipse IDE e aps outra caixa de dilogo, referente ao workspace.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 21 - Tela de Inicializao e Workspace

Workspace nada mais que um diretrio padro aonde as configuraes do Eclipse e os


projetos criados a partir dele sero salvos. Claro que voc pode gravar seus projetos em outros
folders/pastas, mas o Eclipse toma esse diretrio padro como base.
Marque a opo Use this as the default and do not ask again. Isso garante que o Eclipse
utilizar SEMPRE a pasta indicada no path do item Workspace e, consequentemente, essa caixa de
dilogo no ser mais exposta.
No citei anteriormente, mas estamos trabalhando com a verso Luna do Eclipse IDE,
sendo est a mais atualizada at o momento que estou criando este artigo. Geralmente, os
conceitos vistos aqui, servem tanto para as verses anteriores, como as que viro a ser
criadas.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Aps, seremos enviados para rea de trabalho do Eclipse IDE e veremos a guia Welcome.

Figura 22 - Eclipse em Execuo

At este momento, realizamos o processo de download, instalao e execuo do Eclipse.


Agora vamos realizar um pequeno tour pela ferramenta.
Feche a guia Welcome, pois ela est sobre toda a rea de trabalho da ferramenta.
A rea de trabalho do Eclipse IDE ser exposta com suas ferramentas. A figura a seguir
demonstra essa rea de trabalho com um pequeno comentrio em cada regio da tela.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 23 - rea de Trabalho do Eclipse

Onde:

rea de Gerenciamento de Projetos: responsvel por gerenciar toda a estrutura de


folders/pastas (conhecidos como packages em java) e os arquivos que estes contm.
Observe que por padro o Eclipse disponibiliza a Guia Project Explorer mas, saliento que
existem outras, que gerenciam tais folders e arquivos de forma mais otimizada. Veremos
isso em outros artigos.

rea Para Trabalho Com Arquivos: neste local onde abriremos nossos arquivos fonte e
os editaremos.

rea de Gerenciamento de Estrutura Interna de Arquivos: Quando estamos com um


arquivo aberto e existe a necessidade de visualizar o seu contedo de forma mais
resumida ou at mesmo acessar determinada parte deste arquivo de forma rpida,
utilizamos a guia Outline.

rea de ferramentas Gerais: Esta rea contm ferramentas que so utilizadas para fazer a
instalao de servidores (Tomcat, Weblogic, JBoss, etc.), depurao de aplicaes,
visualizao de erros e console de dados e assim por diante.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


De forma prtica, tudo o que foi descrito anteriormente exibido na figura a seguir:

Figura 24 - Eclipse em Ao

Observe na guia Package Explorer nosso projeto com o nome de ProjetoTeste. Esse projeto
possui uma classe java chamada Teste1.java, sendo que seu contedo exibido no centro da rea
de trabalho da ferramenta.
Na guia Outline, podemos visualizar, de forma resumida, a estrutura de mtodos desta
classe. Para acessar determinado mtodo de forma rpida, basta dar clique sobre o mtodo
desejado.
Para finalizar, como exemplo, gerei um erro java, de forma que possamos visualizar, na
rea de ferramentas gerais, na guia Problems, alguns bugs de codificao.
O objetivo aqui era criar um ambiente de desenvolvimento e no estudar o Eclipse IDE de
forma mais aprofundada, mas resolvi tocar em alguns tpicos que achei relevante.
O projeto utilizado (ProjetoTeste) anteriormente como exemplo ser descartado e
criaremos no lugar dele outro projeto, com foco em uma aplicao Java para web. Isto ser visto a
seguir.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Criando uma aplicao Java para Web com Maven


Quando me refiro ao ambiente de desenvolvimento, no me refiro apenas a ferramenta de
criao e manipulao de cdigos Java e sim, ao contexto da aplicao num todo.
Neste ebook criaremos uma aplicao Java para Web simples do zero mas, mantendo o
foco naquilo que realmente importante, ou seja, entender toda a estrutura da aplicao e as
ferramentas e utilitrios que a rodeiam.
Criaremos agora um projeto do tipo Maven Project. V at o menu File, New, Maven
Project.

Figura 25 - Criando um projeto do tipo Maven Project

Poderamos criar um projeto Java para Web de forma tradicional, ou seja, utilizando a
opo Dynamic Web Project mas, desta forma, no teramos o recurso avanado para
gerenciamento de dependncias proporcionado pelo Maven.
Em Java, assim como em outras linguagens de programao, o grande calcanhar de Aquiles
quando se faz referncia ao grande nmero de bibliotecas e componentes que fazem parte da
aplicao. No momento de empacotar o software para coloca-lo, por exemplo, em produo, se
isso for feito de forma manual, podemos realizar tal procedimento de forma incorreta, trazendo
bibliotecas e componentes errados ou at mesmo faltando.
Ento, essa a principal funo do Maven, ou seja, gerenciar estes pacotes de
componentes, para que no momento deste empacotamento do software nada d errado. No
teramos motivo algum para no utiliza-lo no projeto que ser criado aqui.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Continuando, clique sobre a opo Maven Project, para que a seguinte caixa de dilogo
seja exposta:

Figura 26 - Definindo o arqutipo do projeto Maven

Nesta caixa de dialogo, iniciamos o processo de configurao de nosso projeto Maven


sendo que, possumos duas opes, ou seja, com ou sem a utilizao de arqutipos.
Arqutipos so para o Maven arquivos em formato .XML que tem a funo de definir a
estrutura e consequentemente as dependncias que determinado projeto Java necessita. Em
nosso caso em especifico, no utilizaremos arqutipo algum, bastando selecionar a opo Create a
simple project (skip archetype selection) e aps clicar sobre o boto Next para ser remetido para
a prxima caixa de dilogo.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 27 - Configurando o projeto Maven

Temos aqui:

Group Id: pode-se considerar este item como sendo aquele que determina o nome da
empresa ou grupo ao qual o projeto pertence.

Artifact Id: corresponde ao nome do projeto.

Version: Verso do projeto que est sendo criada.

Packaging: define como nosso aplicativo dever ser empacotado, ou seja, neste caso, o
Maven saber que nossa aplicao dever ser do tipo Java Web, pois a opo war foi
selecionada. Quando o projeto criado no Eclipse, logo todo o formato e estrutura da
aplicao automaticamente criado.

Description: Uma descrio de nosso sistema. opcional.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Entre com as informaes conforme descrito na figura e para finalizar clique sobre o boto
Finish para que o projeto seja criado no Eclipse.

Figura 28 - Aplicao LivrariaWeb Criada e sua visualizao na Guia Project Explorer

Caso voc no esteja visualizando a guia Project


Explorer, provvel que voc esteja com uma perspectiva
que no seja JavaEE. Para resolver o problema, basta que
voc observe no canto superior direito, pelo menos este o
padro da ferramenta, o boto Open Perspective. Clicando
nele a caixa de dilogo Open Perspective ser exposta,
bastando que voc selecione a perespectiva JavaEE e aps
clique sobre o boto OK.

Figura 29 - Janela Open Perspective

Pronto! Nosso projeto Java para Web est criado, sua estrutura est muito bem definida e
gerenciada pelo Maven. Agora o prximo passo entender os componentes que fazem parte
desta aplicao.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Componentes da estrutura de uma aplicao Java para web


Entender como a estrutura de uma aplicao java para web muito importante, pois
desta forma, alm de reconhecer e localizar os principais elementos (arquivos e folders),
saberemos qual a funo especifica de cada um dentro da aplicao.
Para iniciar, vamos entender como funciona a estrutura de um projeto do tipo Dynamic
Web Project. Observe a figura:

Figura 30 - Estrutura de uma aplicao Java Web Tradicional

Vou descrever aqui os itens principais que fazem para da estrutura exibida anteriormente.

ProjetoWebExemplo: corresponde ao nome do projeto Java.

Java Resources: permite/organiza o acesso a recursos da aplicao como cdigos fontes


(pasta src), bibliotecas gerais do projeto (Libraries) e assim por diante.

WebContent: folder que realmente organiza a estrutura de arquivos da aplicao web.


Aqui colocaremos nossos formulrios JSF, imagens da aplicao e assim por diante.

WEB-INF: mantm a pasta lib, responsvel por gerenciar as bibliotecas (.jars) utilizados
nesta aplicao. Tambm mantm arquivos com funes especificas dentro da aplicao.

Faces-config.xml: arquivo responsvel por manter regras de navegao, definir escopo e


declarao de managed beans, etc. A partir da verso 2.0 do JSF no mais obrigatrio.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Web.xml: conhecido como Deployment Descriptor da aplicao, ou seja, realiza as


configuraes gerais da aplicao, como declarao de servlets, gerenciamento de tempo
de timeout, definir parmetros de conexo a banco de dados, definir as pginas iniciais da
aplicao e assim por diante.

Toda essa estrutura estudada anteriormente ainda valida quando se trata de um projeto
criado a partir de um Maven Project com um packaging feito via war, ou seja, quando definimos
no Maven que desejamos criar um projeto com este tipo de empacotamento, estamos dizendo
para ele que o mesmo deve providenciar toda a estrutura de pastas/folders estudada
anteriormente mas, agregando os recursos de gerenciamento de pacotes e deploy do Maven.

Figura 31 - Estrutura de uma aplicao Java Web criada a partir do Maven

Embora os itens estudados anteriormente no estejam aparecendo na estrutura exibida na


imagem anterior, os mesmos sero criados conforme formos adicionando determinadas
funcionalidades, como por exemplo, a utilizao de JSF (Java Server Faces), mas isso ser visto
posteriormente. Outros sero substitudos, mas veremos isso com o tempo.
O que nos interessa aqui agregar conhecimento com base no que est sendo exposto na
imagem acima. Temos aqui:

src/main/java: diretrio responsvel por armazenar os arquivos .java (cdigo fonte) da


aplicao.

src/main/resources: diretrio que armazena determinados arquivos de configurao da


aplicao. Estes arquivos devem ficar obrigatoriamente armazenados neste folder. So
adicionados conforme vamos utilizando determinadas funcionalidades Java em nosso
projeto.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

src/main/webapp: Pasta para contedo Web. Folder relativo a WebContent em um


projeto do tipo Dynamic web project.

src/test/java: folder que contm arquivos para testes unitrios.

src/test/resources: folder que contm arquivos de configurao para testes unitrios.

pom.xml: um arquivo conhecido como Project Object Model, que tem a funo de conter
a estrutura, as dependncias e vrias outras caractersticas de nosso projeto. Como
exemplo, para utilizar o conjunto de funcionalidades do JSF, devemos declarar aqui as
dependncias necessrias para isso. Observe:

Figura 32 - Estrutura do arquivo pom.xml

Observa-se claramente as informaes que inserimos em nosso projeto quando iniciamos o


seu processo de criao. Tambm, na rea em vermelho, nota-se a declarao de
dependncias do JSF. O Maven automaticamente far o download das bibliotecas necessrias,
observe:

Figura 33 - Download da biblioteca realizado pelo Maven

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Note, na regio em preto, que o Maven automaticamente fez o download para a mquina
local do arquivo (biblioteca) jsf-impl-2.2.9.jar. Esse processo ocorre para todas as dependncias
declaradas no projeto.
O objetivo aqui era entender as estruturas de pastas e arquivos presentes para um projeto
Java web nos tipos Maven Project (packaging War) e Dynamic Web Project. No iremos mais
aprofundar o assunto.
Nosso prximo objetivo adicionar e configurar o projeto para ter a capacidade de
trabalhar com JSF e isto ser visto a seguir.

Configurando o projeto para utilizar JSF


Embora j tenhamos criado o projeto Java com o Maven, o mesmo est apenas
configurado de forma estruturalmente correta. No temos nele ainda nem um recurso que nos
possibilite utilizar componentes e funcionalidades do JSF (Java Server Faces), que hoje a base
(especificao) de desenvolvimento para qualquer aplicativo Java para web.
Para configurar a utilizao de JSF, deve-se clicar com o boto contrrio do mouse sobre o
nome do projeto, neste caso livrariaweb. No meu de contexto, voc deve clicar sobre a opo
Properties para que a seguinte caixa de dilogo seja exposta:

Figura 34 - Caixa de propriedades para o projeto livrariaweb

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Clique sobre a opo Project Facets e aps selecione a opo JavaServer Faces e aponte
para a verso 2.2 do JSF, que ser a utilizada neste projeto.
Note que a opo Further configuration avaliable est ativa na rea em amarelo na figura.
Clique sobre essa opo para que possamos realizar mais algumas configuraes.

Figura 35 - Caixa de dilogo Modify Faceted Project

Em JSF, aponte para Disable Library Configuration. Aqui poderamos adicionar


manualmente as bibliotecas do JSF mas, deixaremos essa opo inibida e adicionaremos as
dependncias diretamente no arquivo pom.xml visto anteriormente.
Observe que na opo JSF Configuration File, existe um apontamento para a pasta
WEB-INF, que antes no aparecia na estrutura do projeto web criado com o Maven
anteriormente. Est pasta ser criada agora e dentro dela ser criado o arquivo faces-config.xml,
tambm visto anteriormente.
Em JSF Servlet Name e JSF Servlet Class Name, temos o nome e a classe do Servlet que ser
o responsvel por interpretar nossas pginas JSF. Isso ser visto posteriormente e o contedo

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


destas opes ser adicionado ao arquivo web.xml, que ser criado automaticamente a partir de
agora.
Para finalizar, em URL Mapping Patterns, definimos a extenso que dever ser utilizada em
nossas pginas JSF. Em outras palavras, sempre que tivermos uma pginas JSF com este tipo de
extenso, a mesma ser interpretada pelo Servlet citado anteriormente.
Clique sobre o boto OK e observe que o folder WEB-INF e os arquivos citados
anteriormente foram automaticamente criados.

Figura 36 - Folder WEB-INF e arquivos faces-config.xml e web.xml criados

Observe o contedo dos arquivos faces-config e web.xml.

Figura 37 - Contedo do arquivo faces-config.xml

Figura 38 - Contedo do arquivo web.xml

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Agora nosso projeto est configurado para utilizar JSF. O prximo passo adicionar as
dependncias (bibliotecas - .jars) necessrias. Veremos isso a seguir.

Adicionando dependncias do JSF no projeto Java para web


Abra o arquivo pom.xml e adicione as seguintes dependncias na seo <dependencies>:
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>5.0</version>
</dependency>

As duas primeiras dependncias se referem explicitamente as bibliotecas do JSF, em sua


verso 2.1.7.
A terceira dependncia faz referncia ao framework primefaces, que uma extenso super
melhorada do JSF e hoje um dos frameworks top de mercado para o desenvolvimento Java para
web.
Voc poder obter mais informaes em http://www.primefaces.org, nas sees de
documentao e showcase.
No objetivo deste ebook realizar o aprofundamento em JSF e/ou PrimeFaces, mas
importante cita-los aqui, visto que os utilizaremos, de forma super bsica, no exemplo de crud que
ser visto posteriormente.
Essas so as configuraes bsicas necessrias para implementar a utilizao de
componentes JSF em nosso projeto. O prximo passo fazer com que os mundos relacional
(banco de dados) e orientado a objetos (Java/classes) se comuniquem.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

MDULO 3 - Fazendo Com Que o Mundo Orientado a Objetos se


Comunique com o Mundo Relacional - Banco de Dados
Download e Instalao do Banco de Dados
Utilizaremos o banco de dados PostgreSQL como repositrio de dados de nosso projeto.
O primeiro passo realizar o download deste banco de dados na seguinte url:

http://www.postgresql.org/download/

Figura 39 - Realizando o download do Banco de Dados Postgres

Salientei na imagem anterior a questo de ser a verso do Postgres para Windows, pois
neste sistema operacional que este projeto est sendo criado. Caso voc esteja utilizando outro
sistema operacional, ter que clicar no link correspondente a sua verso.
Clique sobre o link para a verso em Windows. Voc ser remetido para pgina de
instaladores.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 40 - Link de download do Windows Installer do PostgreSQL

Clique sobre o link de Download para que possamos escolher qual verso do Postgres
iremos realizar o download para posterior instalao.

Figura 41 - Selecionado a verso do instalador do PostgreSQL conforme o sistema operacional

Como estou utilizando um sistema operacional de 64 bits, realizei o download referente a


verso Win x86-64, conforme est salientado em vermelho na figura anterior. Caso voc possua
um sistema operacional de 32 bits, dever baixar o instalador referente a verso Win x86-32.
Aps o trmino do processo de download, v at o instalador e execute-o.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Faa o procedimento de instalao no formato Next to Next, mantendo as configuraes
conforme sugeridas pelo instalador mas, quando chegar na tela referente a senha do super
usurio postgres, defina a seguinte senha para ele: postgres.
Tanto senha, como nome de usurio sero os mesmos mas, voc poder definir outra
senha a seu gosto, mas voc ter que mud-la posteriormente em seus cdigos java caso faa isso,
pois os exemplos vistos de conexo a banco de dados sero com o usurio e senha descritos
anteriormente.

Figura 42 - Definindo o password para o usurio Postgres

Clique no boto Next para continuar. Na prxima tela, voc ter que definir a porta de
acesso. Mantenha o valor indicado (porta 5432) pelo instalador. e clique sobre o boto Next para
continuar.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 43 - Definindo a porta de acesso ao banco de dados PostgreSQL

A partir da prxima tela, continue no mtodo Next to Next at que o processo de


instalao inicie.
Quando o processo de instalao estiver concluido, voc ser remetido a seguinte tela:

Figura 44 - Finalizando a instalao do Banco de Dados

Desmarque a opo referente ao Stack Builder e clique sobre o boto Finish.


Neste ponto, conclumos a instalao do banco de dados Postgres em nosso computador.
O prximo passo acessar este banco de dados atravs de um utilitrio vindo no pacote do
instalador e criar uma base de dados (database) que ser utilizada em nosso projeto.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Criando a base de dados


Para gerenciar as bases de dados do Postgre, foi instalado em nosso computador o
utilitrio PgAdmin 3. Acesse este utilitrio para ter acesso as bases de dados. Observe:

Figura 45 - Executando o utilitrio PgAdmin III

Observe que foi instalado a verso 9.4 do Postgre, no servidor localhost (mquina local), na
porta 5432. Tambm note o servidor est com um X vermelho. Isso ocorre pois no estamos
logados no banco de dados ainda. Para isso, clique sobre o nome do servidor para que a tela de
logon aparea.
Insira a senha postgres, conforme definimos anteriormente e clique sobre o boto OK, para
efetuar o processo de logon. Caso tudo esteja correto, o X vermelho sumir a estrutura de rvores
de objetos abaixo do servidor ser exposta. Observe:

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 46 - Treeview exibindo os databases existentes

O prximo passo criar o database para ser utilizado em nosso projeto. Para isso, clique
com boto contrrio do mouse sobre Databases e selecione a opo New Database.

Figura 47 - Criando o database da aplicao

Voc ser remetido para a caixa de dilogo New Database. Defina o nome do database
como livrariawebdb e clique sobre o boto OK para concluir. No faremos configurao alguma a
mais neste database.

Figura 48 - Definindo o nome e criando o database da aplicao

Para finalizar, aps a criao do deste database devemos criar uma sequence, que ser
utilizada por gerar as chaves primrias de cada registro cadastrado na tabela de livros. Para isso,
na janela do utilitrio pgAdmin III, na barra de ferramentas, clique sobre o boto Execute
arbitrary SQL queries, para que a seguinte caixa de dilogo seja exposta.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 49 - Criando a sequence hibernate_sequence_livros

Digite no editor a seqncia de comandos conforme est descrito na figura acima e clique
sobre o boto Execute query. Aps, na guia Messages, observe se a mensagem Query returned
successfully foi exibida, mostrando que tudo foi feito de forma correta.
Na treeview Server Groups do utilitrio pgAdmin III, voc poder visualizar a sequence
criada.

Figura 50 - Visualizando a sequence

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Note tambm, que em Tables, no existe nenhuma tabela criada. Isso ser feito posteriormente.
Com relao a instalao de banco de dados e criao de database e sequence o que vimos
at aqui o suficiente. O prximo passo configurarmos nosso projeto para utilizar JPA, atravs
do framework Hibernate e com isso, poderemos realizar mapeamento objeto-relacional entre
tabelas e classes. Veremos isso a seguir.

Adicionando as Dependncias do Hibernate e do PostgresSQL


Para adicionar as dependncias do Hibernate, devemos ir at a url
http://hibernate.org/orm/downloads/, no item Maven Repository e copiar os itens selecionados
em vermelho na figura a seguir:

Figura 51 - Maven e a lista de dependencias para a utilizao do hibernate

Aps copiar tais itens, os mesmos devem ser colados no arquivo pom.xml que, lembrando,
o arquivo utilizado pelo Maven para gerenciar as dependncias do projeto.
Para finalizar a adio de dependncias ao projeto, vamos agora adicionar as que so
referentes ao banco de dados de Postgres. Para isso, v at a seguinte url:
http://mvnrepository.com/artifact/postgresql/postgresql/9.1-901.jdbc4.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 52 - Maven e a lista de dependencias para a utilizao do Postgres

Do mesmo jeito que voc fez para as dependncias do hibernate, copie o que est em
amarelo na figura acima e cole-o na rea de dependncias do arquivo pom.xml. Automaticamente
todas as dependncias sero baixadas.
Seu arquivo pom.xml e a relao de dependncias devero ficar como na figura a seguir:

Figura 53 - Lista de bibliotecas baixadas pelo Maven

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Criando o arquivo hibernate.cfg.xml


Este arquivo responsvel por conter determinadas configuraes que so utilizadas para
configurar o Hibernate em uma aplicao.
A partir deste ponto devemos comear a organizar nosso projeto em packages, que nada
mais so que pastas. Para isso, criaremos um package (folder), com o nome de util, dentro do
folder livrariaweb.
Clique com o boto contrrio do mouse sobre livrariaweb. No menu de contexto, selecione
as opes New, Package. A seguinte caixa de dilogo ser exposta:

Figura 54 - Criando o package livrariaweb.util

Em name, o folder livraweb j vir preenchido. Basta que voc digite .util e por fim clique
sobre o boto Finish para que o novo folder seja criado.
A partir da criao deste folder (util), criaremos o arquivo de configuraes para o
hibernate citado anteriormente. Ento, clique sobre o package livrariaweb.util com o boto
contrrio do mouse e selecione as opes: New, Other.
Na tela do assistente (wizard), selecione XML File e clique sobre o boto Next.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 55 - Criando um arquivo do topo XML File

Na prxima caixa de dilogo digite hibernate.cfg.xml para o nome do arquivo e aps sobre
o boto Finish.

Figura 56 - Criando o arquivo hibernate.cfg.xml

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

O arquivo ser criado automaticamente dentro do package livrariaweb.util.


Abra o arquivo, adicione o seguinte contedo a ele e aps salve-o.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">
jdbc:postgresql://127.0.0.1:5432/livrariawebdb?autoReconnect=true
</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">postgres</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="connection.pool_size">5</property>
<!-- Mapeamento da Classes Beans -->
<mapping class="livrariaweb.bean.Livro" />
</session-factory>
</hibernate-configuration>

Note que o contedo deste arquivo configura o Hibernate para utilizar o banco de dados
Postgres com base em tudo o que fizemos anteriormente.
O prximo passo criarmos uma classe utilitria, que ser utilizada pelo Hibernate, para
que ele possa ler as configuraes necessrias para se "conectar" com a base de dados.
Essa classe utilitria tambm ser no package livrariaweb.util. Ento, selecione o package
citado e clique sobre ele com o boto contrrio do mouse. Aps, selecione as opes New, Class.
Na caixa de dilogo New Java Class, no item name digite HibernateUtil.java, que ser o
nome da classe. Para finalizar, clique sobre o boto Finish para que a classe seja criada
automaticamente.
Abra a classe HibernateUtil.java e adicione a ela o seguinte contedo:
package livrariaweb.util;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
@SuppressWarnings("deprecation")
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().
configure("livrariaweb/util/hibernate.cfg.xml")
.buildSessionFactory();
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Note que nesta classe estamos criando uma sessionFactory, ou seja, ela conter todas as
informaes necessrias para posteriormente criarmos uma conexo com a base de dados.
Como estas configuraes no esto presentes de forma direta nesta factory, as mesmas
foram descritas no arquivo hibernate.cfg.xml, que lido automaticamente quando esta linha
executada:
sessionFactory = new AnnotationConfiguration().
configure("livrariaweb/util/hibernate.cfg.xml")

Se tudo foi feito de forma correta at, sua estrutura de folder e files no Project Explorer,
para este package, deve estar desta forma:

Figura 57 - Package livrariaweb.util e seus arquivos

Criando a Classe Livros Para Persitncia de Dados


Utilizaremos neste ebook apenas uma classe, que ser responsvel por representar no
mundo orientado a objetos (no Java) a tabela de livros que realmente conter os dados referentes
ao nosso crud de livros.
No farei grandes relacionamentos ou algo do tipo. O negcio ter uma classe que
represente uma entidade (tabela) de um banco de dados e, a partir disso, possamos realizar
operaes bsicas de crud, como incluso, excluso e alterao de registros.
Mas antes de criar a classe Livro, vamos criar outro package com o nome de bean, dentro
do folder livrariaweb. Faa isso da mesma forma feita anteriormente para o package
livrariaweb.util.
Depois de criado o package, iremos criar dentro dele a classe Livro. Para isso, clique com o
boto contrrio do mouse sobre livrariaweb.bean e aps clique sobre as opes New, Class. Em
name, coloque o nome da classe de Livro e aps clique sobre o boto Finish.
A classe ser automaticamente aberta do Eclipse e pode ser visualizada na estrutura de
arquivos do Project Explorer.

Figura 58 - Classe Livros

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

O prximo passo inserirmos os atributos na classe, que nada mais so que a


representao dos campos que sero gerados na tabela Livro no banco de dados Postgres.
Esses atributos e a prpria classe viro acompanhados de anotaes, que nada mais so que
informaes que identificam e permitem manter a relao entre a classe no java e tabela no banco
de dados.
O arquivo da classe Livro j deve estar aberto em seu Eclipse. O mesmo dever ficar como
mostra a figura a seguir:

Figura 59 - Classe Livro e seus atributos

A anotao @Entity indica que esta classe representa uma tabela do banco de dados.
Neste caso em especifico, ela representar a tabela Livros.
A outra anotao, @SequenceGenerator indica a sequence que criamos anteriormente e
ser utilizada para gerar as chaves primrias, para cada registro, inserido na tabela Livros no banco
de dados.
As anotaes @Id e @GeneratedValue indicam que o atributo idLivro, que representa a
coluna id_livro no banco de dados, servir para representar a chave primria de cada registro
/objeto.
Para gerar os gets e sets destes atributos, basta clicar com o boto contrrio do mouse na
rea branca da classe Livro e no menu de contexto, selecionar as opes Source, Generatte Getters
and Setters.
Na caixa de dilogo que aparecer, basta selecionar todos os itens que so demonstrados
na figura a seguir:
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 60 - Gerando os getters e setters da classe Livro

Aps, clique sobre o boto OK. Todos os getters e setters sero gerados automaticamente.
Para finalizar, vamos geras os mtodos hashCode e Equals. Para isso, clique com o boto
contrrio do mouse e no menu no de contexto, selecione as opes Source, Generate HashCode()
and Equals().

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 61 - Gerando hashCode() and equals() classe Livro

Mantenha todas os atributos marcados e clique sobre o boto OK. Os mtodos sero
gerados automaticamente.
Para finalizar, vamos criar uma classe que ser responsvel por testar o que fizemos at
aqui. Antes, devo lembrar, que quando criamos a sequence, tambm demonstrei que a tabela de
Livros no existia no banco de dados. Ento, a classe que criaremos agora, executar um mtodo
java, que ler as informaes presentes no arquivo hibernate.cfg.xml e far, atravs de nossa
classe, que a tabela Livros seja criada automaticamente, pois em nosso projeto, possumos a
Classe Livro, que est anotada como uma entidade.
Vamos l. Clique com o boto contrrio do mouse sobre Java Resources. Atravs das
opes New, Class, crie uma classe com o nome de GeraTabela.
Preencha a classe com as codificaes conforme so exibidas a seguir:

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

package livrariaweb;
import livrariaweb.bean.Livro;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class GeraTabela {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
AnnotationConfiguration conf = new AnnotationConfiguration()
.configure("util/hibernate.cfg.xml");
conf.addAnnotatedClass(Livro.class);
SchemaExport sE = new SchemaExport(conf);
sE.create(true, true);
System.out.println(" A Tabela " + Livro.class.getName() + " foi
criada.");
}
}

Salve as alteraes e agora vamos executar a classe. Para isso, v at o menu Run, aps
Run as e por ltimo clique sobre Java Application. Se tudo estiver correto, o processo de execuo
comeara automaticamente e as informaes de execuo sero exibidas na guia Console,
observe:

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 62 - Tela de console do Eclipse

Depois que o processo de execuo for completado, poderemos ver a tabela criada no
banco de dados, observe:

Figura 63 - Exibindo a criao da tabela de Livros no utilitrio PgAdmin III

Tanto a tabela, quanto os campos, seguem os nomes definidos em @Table(name=) e


@Colum(name=).
Uma classe Java deste tipo, tambm conhecida entre os desenvolvedores como sendo
um bean (POJOS), ou seja, uma classe que possui algumas caractersticas prprias, como um
construtor vazio, atributos que possuem getters e setters associados a eles, so serializveis e
assim por diante.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Neste ponto, j estamos unido ambos os mundos relacional e orientado a objetos. O
prximo passo criamos uma interface e uma classe utilitria que sero responsveis por
permitir que os mtodos de CRUD de nosso projeto sejam executados. Isso ser visto a seguir.

Criando o DAO da aplicao


DAO (Data Access Object), nada mais que um padro (design pattern) que tem a funo
de abstrair operaes relativas a banco de dados. claro, que este pattern representado no Java
por um objeto, que implementa uma interface e, atravs dela, que faremos acesso a estes
mtodos de CRUD.
Vamos criar outro package a partir de livrariaweb com o nome de dao. Faa todo o
procedimento para criao de packages visto nos passos anteriores.
Agora, selecione o package livrariaweb.dao com o boto contrrio do mouse e no menu de
contexto selecione as opes New, Other. Na caixa de dialogo do wizard, selecione a opo
interface e clique sobre o boto Next.

Figura 64 - Criando uma Interface

Na prxima tela, em Name digite LivroDao para o nome da interface e clique sobre o boto
Finish. O arquivo ser criado e aberto automaticamente.
Adicione a ele o seguinte contedo:

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

package livrariaweb.dao;
import java.util.List;
import livrariaweb.bean.Livro;
public interface LivroDao {
public boolean insereLivro(Livro livro);
public boolean alteraLivro(Livro livro);
public boolean excluiLivro(Livro livro);
public Livro consultarLivro(Livro livro);
public List<Livro> listarLivros();
}

Onde:
insereLivro: insere um livro na tabela;
alteraLivro: altera dados de um livro pr-cadastrado;
excluiLivro: exclui um livro cadastrado;
consultarLivro: busca dados de apenas um livro em especfico;
listarLivros: traz todos os livros cadastrados.

Agora iremos criar a classe que realizar a implementao destes mtodos, visto que a
interface apenas garante o processo de assinatura e encapsulamento.
Agora, selecione o package livrariaweb.dao com o boto contrrio do mouse e no menu de
contexto selecione as opes New, Class. Em Name digite LivroDaoImpl para o nome da classe e
clique sobre o boto Finish.
Adicione o seguinte contedo a classe:
package livrariaweb.dao;
import java.util.List;
import livrariaweb.bean.Livro;
import livrariaweb.util.HibernateUtil;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class LivroDaoImpl implements LivroDao {
private Session session = null;
private Transaction transaction = null;
public boolean insereLivro(Livro livro) {
boolean retorno = false;
try {
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
System.out.print("DAO - autor: " + livro.getAutor());
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


session.persist(livro);
transaction.commit();
retorno = true;
} catch (HibernateException e) {
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
return retorno;
}
public boolean alteraLivro(Livro livro) {
boolean retorno = false;
try {
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
session.update(livro);
transaction.commit();
retorno = true;
} catch (HibernateException e) {
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
return retorno;
}
public boolean excluiLivro(Livro livro) {
boolean retorno = false;
try {
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
session.delete(session.get(Livro.class, livro.getIdLivro()));
transaction.commit();
retorno = true;
} catch (HibernateException e) {
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
return retorno;
}
public Livro consultarLivro(Livro livro) {
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Livro l = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
l = (Livro) session.get(Livro.class, livro.getIdLivro());
} catch (HibernateException e) {
e.printStackTrace();
} finally {
session.close();
}
return l;
}
public List<Livro> listarLivros() {
List<Livro> list = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
list = session.createQuery("select l from Livro l").list();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
session.close();
}
return list;
}
}
Onde:
session = HibernateUtil.getSessionFactory().openSession(): a partir da classe
HibernateUtil e do objeto sessionFactory uma sesso com o banco de dados
aberta. Tal sesso atribuda a varivel session.
session.persist: insere um registro no banco de dados.
session.update: atualiza um registro no banco de dados.
session.delete: exclui um registro no banco de dados.
session.get: obtem um registro no banco de dados.
session.createQuery: permite definir uma SQL para ser executada no banco dados.
Neste caso, traz uma lista de livros.
transaction = session.beginTransaction(): abre um processo de transao no banco
de dados.
transaction.commit(): comita, persiste as informaes enviadas para o banco de
dados.
transaction.rollback(): desfaz tudo caso ocorra algum problema durante o
processamento de alguma transao.

Seu package livrariaweb.dao e os arquivos criados anteriormente devem estar na seguinte


forma no Project Explorer:
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 65 - Package livrariaweb.dao e seus arquivos

Sintetizando, temos nesta classe a implementao de todos os mtodos necessrios para


realizar operaes de CRUD no projeto que ser criado posteriormente. Maiores conhecidos sobre
Hibernate podem ser vistos no site http://hibernate.org/.
Aqui finalizamos este mdulo. Instalamos o banco de dados, criamos o database e a
sequence, adicionamos as dependncias necessrias para trabalhar com Hibernate e Postgres,
configuramos o Hibernate, criamos um JavaBean (POJO), testamos as configuraes do Hibernate
atravs de uma classe java que utiliza o Bean criado e por fim criamos a interface e classe de
implementao para mtodos de CRUD.
O prximo passo criarmos a aplicao web. Veremos isso no mdulo IV.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

MDULO IV - Criado Uma Aplicao Simples de CRUD com JAVA Web


Managed Beans
Iremos criar agora uma classe conhecida como Managed Bean, que nada mais que a
classe utilizada pelo JSF para relacionar a comunicao entre pginas web (.xhtml) e as
implementaes de manipulao de dados implementados em nosso DAO.
Em outras palavras, uma pgina JSF no consegue se comunicar diretamente com o banco
de dados e muito menos realizar operaes de CRUD nele. Ento, essa a funo de uma classe
do tipo managed bean, ou seja, agir como um controlador (controller) entre a primeira (pginas
.xhtml) e a segunda camada (DAOs, beans, etc.).
Clique sobre o package livrariaweb e crie outro package com o nome de mb.
Agora, dentro do package livrariaweb.mb crie uma classe java com o nome de
LivroMB.java e adicione a ela o seguinte contedo.

package livrariaweb.mb;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.ListDataModel;
import livrariaweb.bean.Livro;
import livrariaweb.dao.LivroDao;
import livrariaweb.dao.LivroDaoImpl;
public class LivroMB {
private LivroDao livroDao = new LivroDaoImpl();
private Livro livro;
private boolean exibirForm = false;
public Livro getLivro() {
return livro;
}
public void setLivro(Livro livro) {
this.livro = livro;
}
public ListDataModel getLivros() {
return new ListDataModel(livroDao.listarLivros());
}

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


public String adicionarLivro() {
this.limparLivro();
this.exibirForm();
return null;
}
public String alterarLivro() {
this.exibirForm();
return null;
}
public String salvarLivro() {
if (livro.getIdLivro() == null) {
livroDao.insereLivro(livro);
} else {
livroDao.alteraLivro(livro);
}
this.mostrarMensagem(livro.getTitulo() + " foi salvo!");
this.ocultarForm();
return null;
}
public String excluirLivro() {
livroDao.excluiLivro(livro);
this.mostrarMensagem(livro.getTitulo() + " foi excluido!");
return null;
}
public String cancelarCadastroLivro() {
this.ocultarForm();
return null;
}
private void limparLivro() {
livro = new Livro();
}
private void exibirForm() {
exibirForm = true;
}
private void ocultarForm() {
exibirForm = false;
}
private void mostrarMensagem(String mensagem) {
FacesContext.getCurrentInstance().addMessage(null,
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


new FacesMessage(mensagem));
}
public boolean isExibirForm() {
return exibirForm;
}
}

Onde:
private LivroDao livroDao = new LivroDaoImpl(): obtem uma instancia de LivroDaoImpl
para acesso aos mtodos de manipulao de dados.
getLivro / setLivro: gets e sets referente ao objeto Livro.
private boolean exibirForm = false: exibe ou oculta o formulrio para cadastro/alterao
de dados dos livros.
getLivros: obtem toda a lista de livros.
adicionarLivro() / alterarLivro() / salvarLivro() / excluirLivro : respectivamente, adiciona,
altera dados, salva informaes e exclui um livro da base de dados.
cancelarCadastroLivro(): cancela o cadastro/alterao de um livro.
limparLivro(): cria uma nova instancia do bean Livro.
exibirForm() / ocultarForm(): exibe/oculta a visualizao do formulrio de cadastro e
alterao de dados.
mostrarMensagem(): mostra as mensagens da aplicao.

Seu package livrariaweb.mb e o arquivo criado anteriormente devem estar na seguinte


forma no Project Explorer:

Figura 66 - Package livrariaweb.mb e sua classe

Arquivos de Configurao faces-config.xml e web.xml


Agora precisamos registrar essa para que o JSF entenda que a mesma um managed bean.
Para isso, abra o arquivo faces-config.xml, localizado no path conforme demonstra a figura a
seguir:

Figura 67 - Arquivos de configurao da aplicao

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Para finalizar, adicione o seguinte contedo a ele:

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


<faces-config
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<managed-bean>
<managed-bean-name>LivroMB</managed-bean-name>
<managed-bean-class>livrariaweb.mb.LivroMB</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>

Onde:
LivroMB: o apelido (alias) que utilizaremos nos formulrios JSF.
livrariaweb.mb.LivroMB: indica o package (livrariaweb.mb) e por fim a classe
LivroMB
session: o escopo do bean.

Aproveitando que estamos no folder WEB-INF, abra o arquivo web.xml e acrescente a ele o
contedo a seguir, sem retirar as demais configuraes j pr-estabelecidas anteriormente:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>

Pginas web do projeto


Nossa aplicao web ter uma pgina html com o nome de index.html. Ela far o
redirecionamento da aplicao para outra pgina que criaremos posteriormente.
Clique no folder webapp e, com o boto contrrio do mouse selecione as opes New,
Other.
Na caixa de dilogo, escolha a opo HTML File e clique sobre o boto Next e, para finalizar,
em Name digite index.html e aps clique sobre o boto Finish.
Na pgina index.html, adicione o seguinte contedo:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


<META HTTP-EQUIV="Refresh" CONTENT="0,URL=listagem.xhtml">
</head>
<body></body>
</html>

Aqui apenas cabe salientar a seguinte linha: <META HTTP-EQUIV="Refresh"


CONTENT="0,URL=listagem.xhtml">. Essa linha responsvel por redirecionar a aplicao para a
pgina listagem.xhtml que nada mais que uma pgina JSF que exibir todos os livros cadastrados
na base de dados, bem como permitir a manipulao destes dados.
Clique novamente no folder webapp e, com o boto contrrio do mouse selecione as
opes New, Other e crie outra pgina do tipo HTML File com o nome de listagem.xhtml.
Adicione a ela as linhas abaixo:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>

</h:head>
<title>CRUD com Hibernate e JSF usando Eclipse e Banco de Dados
PostGres</title>
<h:body>
<f:view>
<div align="center">
<h:form id="form">
<h:messages />
<p:dataTable var="item" value="#{LivroMB.livros}" border="1"
cellpadding="1" cellspacing="1"
rendered="#{LivroMB.livros.rowCount > 0}">
<f:facet name="header">
<p:outputLabel value="Relao de Livros Cadastrados" />
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="Titulo" />
</f:facet>
<h:outputText value="#{item.titulo}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Editora" />
</f:facet>
<h:outputText value="#{item.editora}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Autor" />
</f:facet>
<h:outputText value="#{item.autor}" />
</p:column>
<p:column rendered="#{!LivroMB.exibirForm}">
<f:facet name="header">

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


<h:outputText value="Opes" />
</f:facet>
<h:commandLink action="#{LivroMB.alterarLivro}">
<h:outputText value="Alterar" />
<f:setPropertyActionListener value="#{item}"
target="#{LivroMB.livro}" />
</h:commandLink>
<h:commandLink action="#{LivroMB.excluirLivro}">
<h:outputText value="Excluir" />
<f:setPropertyActionListener value="#{item}"
target="#{LivroMB.livro}" />
</h:commandLink>
</p:column>
<f:facet name="footer">
<h:outputText value="Quantidade de livros cadastrados:
#{LivroMB.livros.rowCount}" />
</f:facet>
</p:dataTable>
<h:commandLink action="#{LivroMB.adicionarLivro}" value="Novo livro"
rendered="#{!LivroMB.exibirForm}" />
<!-- Inicio: Formulario de Cadastro de livro -->
<p:panelGrid border="1" columns="2" rendered="#{LivroMB.exibirForm}">
<f:facet name="header">
<h:outputText value="Cadastro de livro" />
</f:facet>
<p:outputLabel for="nome" value="Titulo: " />
<p:inputText id="nome" value="#{LivroMB.livro.titulo}"
required="true" />
<p:outputLabel for="email" value="Editora: " />
<p:inputText id="email" value="#{LivroMB.livro.editora}"
required="true" />
<p:outputLabel for="autor" value="Autor: " />
<p:inputText id="autor" value="#{LivroMB.livro.autor}"
required="true" redisplay="true" />
<f:facet name="footer">
<h:panelGroup>
<h:commandButton value="Salvar"
action="#{LivroMB.salvarLivro}" />
<h:commandButton value="Cancelar"
action="#{LivroMB.cancelarCadastroLivro}"
immediate="true" />
</h:panelGroup>
</f:facet>
</p:panelGrid>
</h:form>
</div>
</f:view>
</h:body>
</html>

Aqui temos um formulrio JSF estritamente SIMPLES mas, com uma manipulao de dados
(CRUD) totalmente funcional.
O primeiro "link" um boto do tipo commandLink padro do JSF que tem a funo de
cadastrar um novo livro. bvio que no temos livro algum cadastrado na base de dados, logo
apenas esse link "Novo livro" ser visualizado se executarmos a aplicao.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


O datatable utilizado um componente da suite Primefaces. Esse tipo de componente
responsvel tanto no JSF, como qualquer outro framework web para java, de servir como um
conteiner para exibio de colees, listas. Neste caso em especifico, escolhi utilizar o do
PrimeFaces, pois os componentes desta suite j vem com um arquivo .css pr-configurado. Logo,
visualmente, causa um efeito muito melhor que simplemesmente visualizarmos uma tabela "crua"
no navegador. Observe:
Com componente nativo do JSF:

Figura 68 - Relao de Livros com datatable JSF puro

Com componente nativo do Primefaces:

Figura 69 - Relao de Livros com datatable do PrimeFaces

Para a tela de manuteno e incluso de livros, utilizei um componente do tipo panelGrid


do Primefaces. Observe:

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 70 - Tela de cadastro e manuteno de livros

claro que se pode aplicar um arquivo de folhas de estilo (.css) em componentes nativos
do JSF, mas no o objetivo aqui. Isso apenas para demonstrar as vantagens em se utilizar
frameworks de mercado, como o Primefaces, dando assim uma "turbinada" nos componentes
base do JSF, tanto em layout, como em outros recursos, como por exemplo a utilizao de Ajax.
Bem at aqui criamos o projeto web, mas no o executamos at agora. As telas exibidas
anteriormente servem apenas para demonstrar como nossa aplicao ficar.

Instalando o Tomcat e Executando a Aplicao


Vamos agora realizar o dowload e instalao do Tomcat 7. Para isso, utilize a seguinte url:
http://tomcat.apache.org/download-70.cgi.
Faa o download em Binary Distributions, no item Core, do arquivo .zip.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 71 - Site para download do Tomcat 7

De preferncia salve o arquivo em uma pasta aonde voc tenha permisses de leitura e
escrita, visto que estamos utilizando o Windows e, em alguns casos, pode ocorrer problemas de
permisso com o utilitrio UAC. Feito o download, descompacte o arquivo .zip e volte para o
Eclipse.
Agora v at Guia Servers e clique com o boto contrrio do mouse abra o menu de
contexto. Aps, selecione New, Server.

Figura 72 - Criando um novo servidor no Eclipse

Na prxima caixa de dilogo, na treeview selecione Apache e aps Tomcat v7.0 Server.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


Em Server's host name e Server name mantenha os nomes conforme a sugesto do wizard.

Figura 73 - Registrando o servidor Tomcat

Em Server runtime environment, clique sobre o boto Add e em Tomcat installation


directory e aponte para pasta aonde o Tomcat foi descompactado.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 74-Apontando para a pasta de instalao do Tomcat

V clicando sobre os botes Finish at criar o servidor.


Com o servidor criado, devemos agora adicionar nossa aplicao a ele. Para isso, clique
com boto contrario do mouse sobre o servidor criado na guia Servers. Aps, selecione a opo
Add and Remove.

Figura 75-Adicionando o aplicativo web no servidor Tomcat

Na prxima caixa de dilogo, selecione o projeto livrariaweb e clique no boto Add e aps
Finish.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7

Figura 76-Apontando para a aplicao livrariaweb

A aplicao automaticamente adicionada no servidor Tomcat criado e agora poder ser


executada.

Figura 77-Aplicao adicionada no servidor

Faa o start do servidor como mostra a figura a seguir:

Figura 78-Start do servidor

O servidor foi starteado. Observe:

Figura 79-Tomcat inicializado

Para finalizar, o prximo passo agora abrir o browser e executar nossa aplicao com a
seguinte url:
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com

Criando um Aplicativo para a web com Java EE 7


http://localhost:8080/livrariaweb/
Caso exista algum registro na tabela, a listagem de livros ser exposta. Caso contrrio,
apenas o link para cadastrar um novo livro ser exibido.

Figura 80-Aplicao em execuo no browser

CONCLUINDO
Se avaliarmos o que estudamos neste ebook, veremos que partimos do bsico, desde a
instalao do Java em nosso computador, at o ponto de criarmos uma aplicao java para web.
Deixo aqui o desafio para se tornar um expert em Java e fazer com que o contedo desde
ebook e de muito livros de mercado se tornem obsoletos para o conhecimento que voc ir
adquirir na sua vida sendo um desenvolvedor Java. Afinal, estamos nessa vida para crescer,
adquirindo conhecimento e, com isso, realizando grandes conquistas.
Fique com Deus e conte comigo, Jean Vargas, para o seu crescimento pessoal e intelectual
e no esquea de acessar o meu blog, http://profissionaisjava.com, onde dou vrias dicas, tanto
para iniciantes, como profissionais na rea de TI, sobre Java e tecnologias que rodeiam est
fantstica linguagem de programao.

Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com