Criando Um Aplicativo para A Web Com JavaEE 7 PDF
Criando Um Aplicativo para A Web Com JavaEE 7 PDF
Criando Um Aplicativo para A Web Com JavaEE 7 PDF
http://profissionaisjava.com
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
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.
Iremos trabalhar com o JDK 7, o qual j vem com JRE presente em seu pacote de instalao
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.
Clique sobre o boto Next para ser remetido para a prxima tela.
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:
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:
Partindo do pressuposto que tudo est correto at aqui, nosso prximo passo configurar
as variveis de ambiente do Java. Isso ser visto a seguir.
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
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.
onde:
C:\Program Files\Java\jdk1.7.0_71\lib\tools.jar.
javac
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com
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.
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:
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.
Onde:
rea Para Trabalho Com Arquivos: neste local onde abriremos nossos arquivos fonte e
os editaremos.
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.
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
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.
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.
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.
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.
Vou descrever aqui os itens principais que fazem para da estrutura exibida anteriormente.
WEB-INF: mantm a pasta lib, responsvel por gerenciar as bibliotecas (.jars) utilizados
nesta aplicao. Tambm mantm arquivos com funes especificas dentro da aplicao.
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.
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:
http://www.postgresql.org/download/
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.
Clique sobre o link de Download para que possamos escolher qual verso do Postgres
iremos realizar o download para posterior instalao.
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.
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:
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.
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.
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.
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.
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.
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:
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.
Na prxima caixa de dilogo digite hibernate.cfg.xml para o nome do arquivo e aps sobre
o boto Finish.
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;
}
}
Se tudo foi feito de forma correta at, sua estrutura de folder e files no Project Explorer,
para este package, deve estar desta forma:
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
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().
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:
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:
Depois que o processo de execuo for completado, poderemos ver a tabela criada no
banco de dados, observe:
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:
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
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());
}
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.
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>
<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">
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
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.
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.
Na prxima caixa de dilogo, na treeview selecione Apache e aps Tomcat v7.0 Server.
Autor: Jean Robson Batista de Vargas - http://profissionaisjava.com
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
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
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.