(Parte 1 de 13)

Caelum

“Mata o tempo e matas a tua carreira” Bryan Forbes -

Sobre a empresa

A Caelum atua no mercado desde 2002, desenvolvendo sistemas e prestando consultoria em diversas áreas, à luz sempre da plataforma Java. Foi fundada por profissionais que se encontraram no Brasil depois de uma experiência na Alemanha e Itália, desenvolvendo sistemas de grande porte com integração aos mais variados ERPs. Seus profissionais publicaram já diversos artigos nas revistas brasileiras de Java, assim como artigos em eventos acadêmicos, e são presença constante nos eventos da tecnologia.

Em 2004 a Caelum criou uma gama de cursos que rapidamente ganharam grande reconhecimento no mercado. Os cursos foram elaborados por ex-instrutores da Sun que queriam trazer mais dinamismo e aplicar as ferramentas e bibliotecas utilizadas no mercado, tais como Eclipse, Hibernate, Struts, e outras tecnologias open source que não são abordadas pela Sun. O material utilizado foi inicialmente desenvolvido enquanto eram ministrados os cursos de verão de java da Universidade de São Paulo em janeiro de 2004 pelos instrutores da Caelum.

Em 2006 a empresa foca seus projetos em três grandes áreas: sistemas de gerenciamento de conteúdo para portais, soluções de integração financeira e treinamento com intuito de formação.

Sobre a apostila

Esta é a apostila da Caelum que tem como intuito ensinar Java de uma maneira elegante, mostrando apenas o que é necessário no momento correto e poupando o leitor de assuntos que não costumam ser de seu interesse em determinadas fases do aprendizado.

A Caelum espera que você aproveite esse material, e que ele possa ser de grande valia para auto didatas e estudantes. Todos os comentários, críticas e sugestões serão muito bem vindos.

O material aqui contido pode ser publicamente distribuído desde que não seja alterado e seus créditos sejam mantidos. Ele não pode ser usado para ministrar qualquer curso, porém pode ser referência e material de apoio. Caso você esteja interessado em usá-lo fins comerciais, entre em contato com a empresa.

Atenção: Você pode verificar a data de última atualização da apostila no fim do índice. Nunca imprima a apostila que você receber de um amigo ou pegar por email, pois atualizamos constantemente esse material, quase que mensalmente. Vá até o nosso site e faça o download da última versão! w.caelum.com.br

Caelum - Web 2.0 com VRaptor, Hibernate e Ajax

Capítulo 1: Como aprender Java1
1.1 - O que é realmente importante?1
1.2 - Sobre os exercícios2
1.3 - Tirando dúvidas2
1.4 - Sobre os autores2
Capítulo 2: O sistema4
2.1 - A necessidade do cliente e os testes para aprovação4
2.2 - Partes do projeto4
2.3 - Visual5
2.4 - Tecnologias usadas5
2.5 - Sobre o Vraptor5
2.6 - Sobre o Hibernate6
2.7 - Sobre o JQuery6
2.8 - Criando o projeto6
Capítulo 3: Controle de usuários9
3.1 - Primeiros passos9
3.2 - Preparando o hibernate9
3.3 - Exercícios9
3.4 - Usuário12
3.5 - Exercício12
3.6 - Gerando o banco de dados13
3.7 - Adicionando13
3.8 - Exercícios13
3.9 - Dao14
3.10 - Exercício15
Capítulo 4: Melhorando o sistema e preparando pra Web17
4.1 - Refatoração17
4.2 - Melhorando nosso sistema - HibernateUtil17
4.3 - Melhorando o sistema – DaoFactory19
4.4 - O Dao Genérico21
4.5 - Testando os refactorings23
4.6 - Colocando na Web23
4.7 - Instalar o Tomcat23
4.8 - Configurando o plugin do tomcat no eclipse25
4.9 - Configurar nosso projeto no tomcat27
Capítulo 5: Cadastro de usuários com Vraptor30
5.1 - Lógica do vraptor30
5.2 - Adicionar usuário31
5.3 - Exercícios32
5.4 - Injetando o DaoFactory com interceptador34
5.5 - Como configurar o uso dos interceptors36
5.6 - Exercícios36
5.7 - Listando com displaytag38
5.8 - Exercício38
5.9 - Redirecionando depois do adiciona39
5.10 - Exercícios40
5.1 - Removendo usuários40
5.12 - Exercícios opcionais40

Índice Edição 2007A - página i

Capítulo 6: Cds e músicas42
6.1 - Menu42
6.2 - Exercício42
6.3 - Entidades42
6.4 - Exercício42
6.5 - CdLogic43
6.6 - Exercício4
6.7 - JSPs para cd45
6.8 - Exercício46
6.9 - MusicaLogic48
6.10 - Exercício48
6.1 - JSPs para Música49
6.12 - Exercício50
6.13 - Desafio - Exercicios opcionais53
Capítulo 7: Autenticação e autorização54
7.1 - Login54
7.2 - Exercício - Formulário de login54
7.3 - UsuarioDao5
7.4 - Exercício56
7.5 - Lógica56
7.6 - Retorno condicional com Vraptor57
7.7 - Logout58
7.8 - Exercício58
7.9 - Interceptador para autorização59
7.10 - Exercício60
7.1 - Autorizando lógicas61
7.12 - Exercício61
7.13 - Exercícios opcionais61
Capítulo 8: Validação com Hibernate Validator62
8.1 - O Hibernate validator62
8.2 - Anotações nos beans62
8.3 - Validando no vraptor63
8.4 - Exercícios63
8.5 - Exercícios opcionais64
8.6 - Para saber mais: validações personalizadas64
8.7 - Para saber mais: validação sem Hibernate Validator64
Capítulo 9: A loja virtual65
9.1 - Idéia geral65
9.2 - Pensando na página - @OneToMany65
9.3 - Exercício6
9.4 - Página inicial6
9.5 - Exercício6
9.6 - Listar Cds e Musicas68
9.7 - Exercício68
9.8 - Exercicio - Futuro carrinho de compras70
Capítulo 10: Ajax e efeitos visuais71
10.1 - AJAX- Asynchronous JavaScript and XML71
10.2 - Um pouco de jquery71
10.3 - Draggables and Droppables72

Caelum - Web 2.0 com VRaptor, Hibernate e Ajax Edição 2007A - página i

10.4 - Exercício73
10.5 - Gerenciamento do carrinho na Sessão74
10.6 - Exercícios76
10.7 - Chamando as lógicas com Ajax7
10.8 - Exercicio78
10.9 - Usando o Firebug para ver o Ajax acontecendo79
10.10 - Finalizar compra81
10.1 - Exercicios82
10.12 - O formulário de finalização da compra84
10.13 - Exercícios85
10.14 - Usando o Thickbox87
10.15 - Exercícios87
Capítulo 1: Apêndice – Melhorando a Loja Virtual89
1.1 - Capinhas de mp389
1.2 - Exercícios89
1.3 - Unicidade das músicas91
1.4 - Exercício91
1.5 - Remoção do carrinho92
1.6 - Ouvir as musicas93
1.7 - Formatando moeda94
1.8 - Listar Vendas94
1.9 - I18N95
1.10 - Export no displaytaglib95
Capítulo 12: Apêndice – Melhorando o login96
12.1 - A permissão do Usuario96
12.2 - Exercícios96
12.3 - A anotação97
12.4 - Exercícios97
12.5 - O interceptador97
12.6 - Exercícios98
12.7 - Desafios9
12.8 - Para saber mais: Sessão e Usuario9
Capítulo 13: Apêndice B – Criando o Ambiente100
13.1 - Introdução100
13.2 - Instalando o eclipse100
13.3 - Instalando o plugin para o tomcat100
13.4 - Instalando o plugin para arquivos jsp, html e xml100
13.5 - Instalando o plugin Hibernate Tools101
13.6 - Plugins do eclipse no windows101
13.7 - Firefox e Firebug101
13.8 - Iniciando o projeto101
13.9 - Preparando o hibernate104
13.10 - Instalando vraptor, jstl e displaytag105
13.1 - O web.xml105
13.12 - O tomcat no windows106
13.13 - iniciando o tomcat sem plugin106
13.14 - Parando o tomcat sem plugin106

Caelum - Web 2.0 com VRaptor, Hibernate e Ajax Edição 2007A - página iv

Caelum – http://www.caelum.com.br - Web 2.0 com VRaptor, Hibernate e Ajax

1Como aprender Java

“Homens sábios fazem provérbios, tolos os repetem” Samuel Palmer -

Como o material está organizado e dicas de como estudar em casa.

1.1 - O que é realmente importante?

Muitos livros, ao passar os capítulos, mencionam todos os detalhes da linguagem juntamente com seus princípios básicos. Isso acaba criando muita confusão, em especial pois o estudante não consegue distinguir exatamente o que é importante aprender e reter naquele momento daquilo que será necessário mais tempo e principalmente experiência para dominar.

Se uma classe abstrata deve ou não ter ao menos um método abstrato, se o if só aceitar argumentos booleanos e todos os detalhes de classes internas realmente não devem ser preocupações para aquele que possui como objetivo primário aprender Java. Esse tipo de informação será adquirida com o tempo, e não é necessário até um segundo momento.

Neste curso separamos essas informações em quadros especiais, já que são informações extras. Ou então apenas citamos num exercício e deixamos para o leitor procurar informações se for de seu interesse.

Algumas informações não são mostradas e podem ser adquiridas em tutoriais ou guias de referência, são detalhes que para um programador experiente em Java pode ser importante, mas não para quem está começando.

Por fim falta mencionar sobre a prática, que deve ser tratada seriamente: todos os exercícios são muito importantes e os desafios podem ser feitos quando o curso acabar. De qualquer maneira recomendamos aos alunos estudar em casa, principalmente aqueles que fazem os cursos intensivos.

O curso

Para aqueles que estão fazendo o curso Java e Orientação a Objetos, é recomendado estudar em casa aquilo que foi visto durante a aula, tentando resolver os exercícios que não foram feitos e os desafios que estão lá para envolver mais o leitor no mundo de Java.

Convenções de Código Para mais informações sobre as convenções de código-fonte Java, acesse:

Capítulo 1 - Como aprender Java - Página 1 capítulo 1

Caelum – http://www.caelum.com.br - Web 2.0 com VRaptor, Hibernate e Ajax

http://java.sun.com/docs/codeconv/

1.2 - Sobre os exercícios

Os exercícios do curso variam entre práticos até pesquisas na Internet, ou mesmo consultas sobre assuntos avançados em determinados tópicos para incitar a curiosidade do aprendiz na tecnologia.

Existem também, em determinados capítulos, uma série de desafios.

Eles focam mais no problema computacional que na linguagem, porém são uma excelente forma de treinar a sintaxe e principalmente familiarizar o aluno com a biblioteca padrão Java, além de proporcionar um ganho na velocidade de desenvolvimento.

1.3 - Tirando dúvidas

Para tirar dúvidas dos exercícios, ou de Java em geral, recomendamos o fórum do site do GUJ (http://w.guj.com.br/), onde sua dúvida será respondida prontamente.

Se você já participa de um grupo de usuários java ou alguma lista de discussão, pode tirar suas dúvidas nos dois lugares.

Fora isso, sinta-se a vontade de entrar em contato conosco para tirar todas as suas dúvidas durante o curso.

1.4 - Sobre os autores

Guilherme Silveira (guilherme.silveira@caelum.com.br) é programador e web developer certificado pela Sun, trabalhando com Java desde 2000 como especialista e instrutor. Programou e arquiteturou projetos na Alemanha durante 2 anos. Cofundador do GUJ, escreve para a revista Mundo Java, estuda Matemática Aplicada na USP e é instrutor e consultor na Caelum. Um dos comitters do Codehaus XStream.

Paulo Silveira (paulo.silveira@caelum.com.br) é programador e desenvolvedor certificado Java. Possui grande experiência em desenvolvimento web, trabalhando em projetos na Alemanha e em diversas consultorias no Brasil. Foi instrutor Java pela Sun, é cofundador do GUJ e formado em ciência da computação pela USP, onde realiza seu mestrado. É um dos editores técnicos da revista Mundo Java.

Sérgio Lopes (sergio.lopes@caelum.com.br) Bacharelando em Ciência da Computação na USP e desenvolvedor Java desde 2002. É programador certificado Java pela Sun, moderador do GUJ e colaborador da revista Mundo Java. Trabalha com Java para Web e dispositivos móveis, além de ministrar treinamentos na Caelum.

Inúmeras modificações e sugestões foram realizadas por outros consultores e instrutores da Caelum, em especial Alexandre da Silva, Fábio Kung e Thadeu Russo.

Capítulo 1 - Como aprender Java - Página 2

Caelum – http://www.caelum.com.br - Web 2.0 com VRaptor, Hibernate e Ajax

Diversos screenshots, remodelamentos e melhorias nos textos foram realizados por Guilherme Moreira e Jacqueline Rodrigues.

Agrecimentos a todas as pessoas que costumam enviar erros, bugs e sugestões para a equipe.

Capítulo 1 - Como aprender Java - Página 3

Caelum – http://www.caelum.com.br - Web 2.0 com VRaptor, Hibernate e Ajax

(Parte 1 de 13)

Comentários