Programação Java para a Web Décio Heinzelmann Luckow Alexandre Altair de Melo - PDF
Download "Programação Java para a Web Décio Heinzelmann Luckow Alexandre Altair de Melo"
Brian Sales Canejo
1 Programação Java para a Web Décio Heinzelmann Luckow Alexandre Altair de Melo Novatec
2 Copyright 2010 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Capa: Victor Bittow Revisão gramatical: Lia Gabriele Regius Editoração eletrônica: Camila Kuwabata ISBN: Histórico de impressões: Outubro/2010 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos São Paulo, SP Brasil Tel.: Fax: Site: Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec Dados Internacionais de Catalogaç o na Publicaç o (CIP) (C mara Brasileira do Livro, SP, Brasil) Luckow, DŽcio Heinzelmann Programaç o Java para a Web / DŽcio Heinzelmann Luckow e Alexandre Altair de Melo. -- S o Paulo : Novatec Editora, Bibliografia. ISBN Internet (Rede de computadores) 2. Java (Linguagem de programaç o para computadores) 3. Web sites I. Melo, Alexandre Altair de. II. T tulo CDD êndices para cat logo sistem tico: 1. Java : Linguagem de programaç o : Computadores : Processamento de dados CRM
3 Sumário Agradecimentos...15 Sobre os autores...17 Nota dos autores...18 Organização do Livro...19 Prefácio...23 Capítulo 1 Preparação do ambiente de desenvolvimento Seleção das ferramentas Linguagem Java Instalação do Java Apache Tomcat Instalação do Tomcat Configuração e gerenciamento Eclipse IDE Instalação do Eclipse Dicas de utilização Configuração do Apache Tomcat para funcionar dentro do Eclipse Criação de um novo projeto para executar no servidor MySQL Instalação do MySQL Uso do MySQL Workbench Conclusão...71 Capítulo 2 Primeiros passos com o JavaServer Faces JavaServer Faces Instalação do JSF Arquivos do JavaServer Faces Arquivo do JSTL Arquivos do projeto Apache Commons Configuração do JSF Como começar com JavaServer Faces Criação da classe Backing Bean Mapeamento da classe Bean Criação da página JSF Mapeamento da navegação entre páginas Ciclo de vida de uma requisição JavaServer Faces
4 8 Programação Java para a Web Restore View Apply Request Values Process Events Process Validation Update Model Values Invoke Application Render Responde Documentação do JavaServer Faces Motivos para usar o XHTML em vez do JSP Conclusão Capítulo 3 Introdução a Hibernate e SQL com Java Persistência de dados Conexão a um banco de dados via JDBC Tabela de URLs para conexão com JDBC Alguns erros que ocorrem com JDBC e como solucioná-los Operações com JDBC Introdução ao Hibernate: a relação SQL e essa tecnologia Persistência de objetos Conceito de ORM Significado das siglas Hibernate, EJB3 e JPA Hibernate EJB JPA Futuro do Hibernate Instalação do Hibernate Migração do exemplo JDBC para Hibernate Conexão no MySQL com Hibernate Mapeamento de objetos com XML e Hibernate Mapeamento de objetos com annotations e Hibernate Criação do projeto de uma locadora com Hibernate e annotations HashCode, equals e interface Serializable e sua relação com o Hibernate Mapeamento de entidades Mapeamento de relacionamento muitos-para-um (N-1) Mapeamento um-para-muitos (1-N) e um-para-um (1-1) Mapeamento um-para-um (1-1) Execução do projeto Locadora Mapeamento muitos-para-muitos (N-N) Opções de consultas com Hibernate Uso da classe Query Uso da classe Criteria Consultas nomeadas (Named Queries) Hibernate Tools Conclusão Capítulo 4 Desenvolvimento do cadastro de usuários Repensando o desenvolvimento Separação de responsabilidades MVC (Model View Controller) Inicialização do projeto Requisitos do projeto...182
5 Sumário Novos packages Criação das exceções-padrão Criação do banco de dados Reflexão sobre o cadastro de usuários Criação da classe Usuario Camada de acesso aos dados Camada de regra de negócio Camada de visualização Criação das operações na classe UsuarioBean Próximos passos Conclusão Capítulo 5 Administração de usuários com DataTable Objetivos Preparação da área administrativa Utilização da datatable Como trabalhar com imagens Desenvolvimento da listagem de usuários Criação da página de listagem de usuários Alteração da classe UsuarioBean Conclusão Capítulo 6 Proteção do aplicativo seguro com Spring Security O que é Spring Framework e Spring Security? O que o Spring Security faz por nós Instalação do Spring Security Adaptação da conexão do Hibernate para o Spring Criação do arquivo context.xml Alteração do arquivo web.xml para a conexão Alteração do arquivo hibernate.cfg.xml Configuração do Spring Security Alteração do arquivo web.xml Criação dos arquivos de configuração do Spring Security Criação da página de login Criação da página principal do usuário Como saber qual usuário está conectado Como restringir determinados conteúdos de acordo com a permissão do usuário Como realizar o logout Preparação do sistema para gerenciar as permissões Mapeamento da tabela de permissões no Hibernate Alteração do cadastro de usuário para atribuir a permissão padrão Alteração da administração de usuários para atribuir permissões Próximos passos Uso do como login Criptografia da senha do usuário Conclusão Capítulo 7 Cadastro de contas com Ajax Construção da camada de acesso a dados Criação da tabela conta
6 10 Programação Java para a Web Criação da classe Conta Criação da interface ContaDAO Criação da classe ContaDAOHibernate Alteração da classe DAOFactory Construção da camada de regra de negócio Construção da camada de visualização Criação das classes de infraestrutura ContextoBean e ContextoUtil Estruturação da classe ContaBean Criação do arquivo conta.xhtml Finalização da classe ContaBean Alteração do menu do sistema para o cadastro de contas Diferenças entre o cadastro de usuários e o de contas Evolução do cadastro de usuários Conclusão Capítulo 8 Definição da identidade visual com Facelets e CSS Por que usar Facelets Criação do template interna.xhtml Análise das tags Facelets do template Aplicação dos templates Uso de includes Uso de CSS e Tableless Conclusão Capítulo 9 Cadastro de categorias usando PrimeFaces Apresentação do PrimeFaces Instalação e configuração Documentação Apresentação do cadastro de categorias Construção da camada de acesso a dados Criação da classe Categoria com autorreferência Criação da interface CategoriaDAO Criação da classe CategoriaDAOHibernate Alteração da classe DAOFactory Construção da camada de regra de negócio Criação da classe CategoriaRN Alteração da classe UsuarioRN Construção da camada de visualização Estruturação da classe CategoriaBean com recursividade Criação de um conversor personalizado para a classe Categoria Criação do arquivo categoria.xhtml com componente Tree Conclusão Capítulo 10 Registro de lançamentos com tags personalizadas Construção da camada de acesso a dados Criação da classe Lancamento com precisão para campos Criação de LancamentoDAO e LancamentoDAOHibernate com filtro dinâmico Construção da camada de regra de negócio Construção da camada de visualização Edição de lançamentos usando pop-up de calendário...354
7 Sumário Uso de datatable com Scroll Construção da classe LancamentoBean Tags personalizadas Definição da biblioteca e nome da tag Estrutura básica de uma tag personalizada Criação da tag personalizada para a lista de lançamentos Uso da tag personalizada na página principal Indo além Registro de fornecedores e favorecidos Avaliação de fornecedores e favorecidos Validação da data de saldo Validação do valor digitado Conclusão Capítulo 11 Cadastro de cheques multi-idiomas Construção da camada de acesso a dados Criação da tabela cheque Criação da classe de chave composta ChequeId Criação da classe Cheque Criação da interface ChequeDAO Criação da classe ChequeDAOHibernate Alteração da classe DAOFactory Alteração da classe Lancamento Construção da camada de regra de negócio Criação da classe ChequeRN Construção da camada de visualização Estruturação da classe ChequeBean Criação do arquivo cheque.xhtml Internacionalização de sua aplicação Criação dos arquivos de tradução Alteração de outras configurações do projeto para que a internacionalização funcione Exibição das mensagens de tradução no aplicativo Aplicação conforme o idioma de preferência do usuário O que vem depois? Alteração da tela de lançamentos Conclusão Capítulo 12 Como trabalhar com gráficos Projeto de gráficos Instalação do Primefaces Instalação da JFreeChart Conclusão Capítulo 13 Gerenciamento de investimentos na bolsa de valores Construção da camada de acesso a dados Criação da classe Acao Criação da interface AcaoDAO Criação da classe AcaoDAOHibernate Alteração da classe DAOFactory Classe auxiliar AcaoVirtual...434
8 12 Programação Java para a Web 13.2 Construção da camada de regra de negócio Criação da classe AcaoRN Construção da camada de visualização Estruturação da classe AcaoBean Criação do arquivo acao.xhtml Conexão ao portal Yahoo Finance Brasil Classe YahooFinanceUtil Um pouco mais o package java.net Conexão via proxy com a classe URL Conexão via proxy pelo servidor Tomcat Próximos passos Conclusão Capítulo 14 Envio de Apresentação e configuração da ferramenta JAMES Administração do servidor remotamente via Telnet Projeto Exemplos Biblioteca JavaMail Biblioteca CommonsMail Envio de s pelo Google Gmail Alteração do projeto financeiro para envio de Criação da classe Util Modificação da classe MensagemUtil Envio de conforme o idioma Conclusão Capítulo 15 Relatórios com ireport e Jasper Reports Obtenção e instalação do ireport Obtenção do JasperReports Arquitetura das ferramentas Visão geral para execução de um relatório Plug-ins para geração de relatórios Primeiro projeto com ireport Criação do relatório de contas Exploração da IDE ireport Formatação do relatório de contas Modificação dos textos da banda Title Modificação dos textos da banda Column Header Criação de máscaras para os campos do relatório Adição de parâmetros ao relatório Execução do relatório no sistema financeiro Criação do relatório de extrato financeiro Nomeação do relatório Elementos gráficos do relatório Compilação e execução do relatório Extrato Alteração do sistema Próximos passos Conclusão...532
9 Sumário 13 Capítulo 16 Fornecimento e consumo de WebServices Obtenção da biblioteca JAX-WS Criação da classe fornecedora do WebService Alteração do arquivo web.xml Arquivo sun-jaxws.xml Ferramenta SoapUI Cliente do WebService Projeto ClienteWS Próximos passos Conclusão Capítulo 17 Finalização e empacotamento do projeto Exportação do projeto FinanceiroWeb Instalação do pacote financeiro.war em um Tomcat à parte Análise de mensagens que podem surgir na instalação do pacote Configuração do Tomcat para executar corretamente o projeto Instalação do projeto financeiro em um servidor de hospedagem comercial Conclusão Apêndice A Revisão de banco de dados relacionais e SQL A.1 Conceito geral sobre tabelas, colunas, linhas e esquema de base de dados A.2 Integridade referencial A.3 Tipos de comandos SQL Apêndice B Componentes JSF Core Apêndice C Componentes JSF HTML Apêndice D Classes úteis do JavaServer Faces Apêndice E Introdução aos componentes do PrimeFaces Bibliografia Índice remissivo...631