Java EE é um padrão para desenvolvimento de sistemas web em Java, mas as diversas especificações, implementações e frameworks necessários para desenvolvimento de projetos profissionais, deixam as pessoas um pouco confusas para começar.

Este curso ensina como desenvolver um sistema completo, incluindo telas mestre-detalhe e painéis com gráficos, do início ao fim, usando as principais especificações Java EE, como CDI, Bean Validation, JPA e JSF, além da biblioteca de componentes PrimeFaces.

Você aprenderá também sobre build de projetos e gerenciamento de dependências com Maven, log de mensagens com Log4J, envio de e-mails com JavaMail e CDI, Hibernate, injeção de dependências com a implementação Weld, autenticação e autorização com Spring Security, controle de transação com o banco de dados, relatórios tabulares com JasperSoft Studio, iReport, JasperReports e muito mais. Ao final do projeto do curso, ele será implantado em um ambiente nas nuvens!

São mais de 35 horas de vídeo aulas, mas você precisará de aproximadamente 80 horas de dedicação para concluir o curso, fazendo todos os exercícios e tirando suas dúvidas com os instrutores.

Atualizado para Java EE 7, JSF 2.2, CDI 1.2, JPA 2.1 e PrimeFaces 5.x.

Pré-requisitos

Java, orientação a objetos, JavaServer Faces e noções de banco de dados.

Alunos felizes

Vídeo aulas e exercícios

  1. Introdução ao curso 1.1. Introdução ao curso 24m 53s
  2. Instalando e configurando o Eclipse 1.2. Instalando e configurando o Eclipse 10m 3s
  3. Instalando o Apache Tomcat 1.3. Instalando o Apache Tomcat 17m 9s
  4. Iniciando o Apache Tomcat dentro do Eclipse 1.4. Iniciando o Apache Tomcat dentro do Eclipse 11m 2s
  5. Introdução ao Maven 1.5. Introdução ao Maven 4m 47s
  6. Instalando o plugin do Maven no Eclipse 1.6. Instalando o plugin do Maven no Eclipse 2m 54s
  7. Criando um projeto web no Eclipse com Maven 1.7. Criando um projeto web no Eclipse com Maven 10m 13s
  8. Gerando arquivo WAR em um projeto Maven 1.8. Gerando arquivo WAR em um projeto Maven 11m 23s
  9. Baixando os exemplos do GitHub e importando no Eclipse 1.9. Baixando os exemplos do GitHub e importando no Eclipse 19m 47s
  10. Introdução ao PrimeFaces 1.10. Introdução ao PrimeFaces 11m 54s
  11. Começando com PrimeFaces 1.11. Começando com PrimeFaces 24m 47s
  12. Para quem usa NetBeans: criando um projeto com PrimeFaces 1.12. Para quem usa NetBeans: criando um projeto com PrimeFaces 10m 2s
  1. PanelGrid, InputText, OutputLabel e CommandButton 2.1. PanelGrid, InputText, OutputLabel e CommandButton 26m 13s
  2. Ajax e renderização parcial 2.2. Ajax e renderização parcial 31m 18s
  3. Processamento parcial 2.3. Processamento parcial 25m 24s
  4. Submissão parcial 2.4. Submissão parcial 9m 58s
  5. Notificações com AjaxStatus 2.5. Notificações com AjaxStatus 17m 16s
  6. Entrada de senhas com Password 2.6. Entrada de senhas com Password 10m 17s
  7. Entrada de textos com InputTextarea 2.7. Entrada de textos com InputTextarea 11m 39s
  8. Entrada de data e hora com Calendar 2.8. Entrada de data e hora com Calendar 15m 39s
  9. Caixa de listagem com SelectOneListbox 2.9. Caixa de listagem com SelectOneListbox 30m 50s
  10. Menu de seleção com SelectOneMenu 2.10. Menu de seleção com SelectOneMenu 5m 13s
  11. SelectOneMenu com conteúdo customizado e filtro 2.11. SelectOneMenu com conteúdo customizado e filtro 11m 59s
  12. Menus de seleção dependentes com SelectOneMenu e Ajax 2.12. Menus de seleção dependentes com SelectOneMenu e Ajax 12m 12s
  13. Botão de rádio com SelectOneRadio 2.13. Botão de rádio com SelectOneRadio 17m 39s
  14. Caixa de checagem múltipla com SelectManyCheckbox 2.14. Caixa de checagem múltipla com SelectManyCheckbox 6m 25s
  15. Campo de autossugestão com AutoComplete 2.15. Campo de autossugestão com AutoComplete 16m 12s
  16. AutoComplete com suporte a POJO 2.16. AutoComplete com suporte a POJO 19m 14s
  17. Máscara de entrada com InputMask 2.17. Máscara de entrada com InputMask 12m 20s
  18. Caixa de checagem com SelectBooleanCheckbox 2.18. Caixa de checagem com SelectBooleanCheckbox 6m 36s
  19. Exercício: formulários com PrimeFaces 2.19. Exercício: formulários com PrimeFaces
  1. Criando o projeto do curso com Maven 3.1. Criando o projeto do curso com Maven 12m 42s
  2. Criando o template com Facelets 3.2. Criando o template com Facelets 22m 29s
  3. Prototipando a página de login 3.3. Prototipando a página de login 11m 51s
  4. Prototipando o cadastro de produto 3.4. Prototipando o cadastro de produto 15m 5s
  5. Adicionando o componente AjaxStatus no layout padrão 3.5. Adicionando o componente AjaxStatus no layout padrão 5m 4s
  6. Configurando máscara de dinheiro com jQuery 3.6. Configurando máscara de dinheiro com jQuery 9m 37s
  7. Desafio: prototipando o cadastro de cliente 3.7. Desafio: prototipando o cadastro de cliente
  8. Desafio: prototipando o cadastro de usuário 3.8. Desafio: prototipando o cadastro de usuário
  1. Painel com abas com TabView 4.1. Painel com abas com TabView 9m 58s
  2. TabView dinâmica 4.2. TabView dinâmica 9m 36s
  3. Tabela de dados com DataTable 4.3. Tabela de dados com DataTable 11m 41s
  4. Ordenando dados da DataTable por coluna 4.4. Ordenando dados da DataTable por coluna 6m 28s
  5. Paginação de dados com DataTable 4.5. Paginação de dados com DataTable 5m 33s
  6. Exercício: painéis e dados com PrimeFaces 4.6. Exercício: painéis e dados com PrimeFaces
  1. Prototipando a pesquisa de produtos 5.1. Prototipando a pesquisa de produtos 18m 35s
  2. Prototipando a pesquisa de pedidos 5.2. Prototipando a pesquisa de pedidos 16m 19s
  3. Prototipando o cadastro de pedido 5.3. Prototipando o cadastro de pedido 37m 3s
  4. Desafio: prototipando pesquisa de clientes 5.4. Desafio: prototipando pesquisa de clientes
  5. Desafio: prototipando pesquisa de usuários 5.5. Desafio: prototipando pesquisa de usuários
  6. Desafio: prototipando listagem de endereços de clientes 5.6. Desafio: prototipando listagem de endereços de clientes
  7. Desafio: prototipando inclusão de usuário em grupos 5.7. Desafio: prototipando inclusão de usuário em grupos
  1. Barra de menu com Menubar 6.1. Barra de menu com Menubar 9m 3s
  2. Mensagens com Messages e Growl 6.2. Mensagens com Messages e Growl 15m 6s
  3. Diálogo suspenso com Dialog 6.3. Diálogo suspenso com Dialog 22m 30s
  4. Diálogo de confirmação com ConfirmDialog 6.4. Diálogo de confirmação com ConfirmDialog 11m 42s
  5. Desafio: diálogos e mensagens 6.5. Desafio: diálogos e mensagens
  1. Incluindo um menu no sistema de pedidos 7.1. Incluindo um menu no sistema de pedidos 12m 6s
  2. Incluindo diálogo de confirmação de exclusão de produto 7.2. Incluindo diálogo de confirmação de exclusão de produto 3m 33s
  3. Desafio: ajustando a barra de menu 7.3. Desafio: ajustando a barra de menu
  4. Desafio: prototipando inclusão de endereços de clientes 7.4. Desafio: prototipando inclusão de endereços de clientes
  5. Desafio: incluindo diálogos de confirmação 7.5. Desafio: incluindo diálogos de confirmação
  1. O que é injeção de dependências? 8.1. O que é injeção de dependências? 13m 6s
  2. A especificação CDI e a implementação Weld 8.2. A especificação CDI e a implementação Weld 3m 41s
  3. Configurando um projeto com JSF e CDI 8.3. Configurando um projeto com JSF e CDI 11m 40s
  4. Escopos de beans 8.4. Escopos de beans 24m 26s
  5. Pontos de injeção 8.5. Pontos de injeção 4m 31s
  6. Qualificadores 8.6. Qualificadores 10m 49s
  7. Métodos produtores 8.7. Métodos produtores 10m 51s
  8. Usando o @ViewScoped com CDI 8.8. Usando o @ViewScoped com CDI 5m 48s
  9. Desafio: projeto com JSF e CDI 8.9. Desafio: projeto com JSF e CDI
  1. Tratando a exceção ViewExpiredException 9.1. Tratando a exceção ViewExpiredException 27m 6s
  2. Tratando outras exceções 9.2. Tratando outras exceções 19m 22s
  3. Logging de mensagens e erros com Log4J 9.3. Logging de mensagens e erros com Log4J 13m 47s
  1. O que é ORM, JPA e Hibernate? 10.1. O que é ORM, JPA e Hibernate? 15m 57s
  2. Configurando um projeto com JPA e Hibernate 10.2. Configurando um projeto com JPA e Hibernate 14m 19s
  3. Criando entidades do cadastro de clientes 10.3. Criando entidades do cadastro de clientes 10m 2s
  4. Desafio: criando entidades do cadastro de usuários 10.4. Desafio: criando entidades do cadastro de usuários
  5. Desafio: criando entidades do cadastro de produtos 10.5. Desafio: criando entidades do cadastro de produtos
  6. Criando entidades do pedido de venda 10.6. Criando entidades do pedido de venda 14m 4s
  7. Mapeando entidades do cadastro de clientes 10.7. Mapeando entidades do cadastro de clientes 18m 32s
  8. Detalhes físicos no mapeamento do cadastro de clientes 10.8. Detalhes físicos no mapeamento do cadastro de clientes 16m 15s
  9. Desafio: mapeando entidades do cadastro de usuários 10.9. Desafio: mapeando entidades do cadastro de usuários
  10. Desafio: mapeando entidades do cadastro de produtos 10.10. Desafio: mapeando entidades do cadastro de produtos
  11. Mapeando entidades do pedido de venda 10.11. Mapeando entidades do pedido de venda 27m 1s
  1. Introdução ao Bean Validation e Hibernate Validator 11.1. Introdução ao Bean Validation e Hibernate Validator 4m 42s
  2. Configurando Bean Validation 11.2. Configurando Bean Validation 10m 43s
  3. Adicionando restrições no cadastro de produto 11.3. Adicionando restrições no cadastro de produto 9m 38s
  4. Adicionando restrições no pedido 11.4. Adicionando restrições no pedido 13m 19s
  5. Desafio: adicionando restrição no modelo 11.5. Desafio: adicionando restrição no modelo
  6. Mensagens em português e com label do campo 11.6. Mensagens em português e com label do campo 6m 51s
  7. Customizando mensagens de validação 11.7. Customizando mensagens de validação 8m 56s
  8. Compondo novas restrições 11.8. Compondo novas restrições 21m 0s
  1. Criando um produtor CDI para injetar EntityManager 12.1. Criando um produtor CDI para injetar EntityManager 22m 6s
  2. Implementando o repositório de categorias 12.2. Implementando o repositório de categorias 8m 41s
  3. Listener preRenderView chamado muitas vezes 12.3. Listener preRenderView chamado muitas vezes 7m 13s
  4. Criando um conversor de categorias 12.4. Criando um conversor de categorias 17m 53s
  5. Combo boxes dependentes de categorias e subcategorias 12.5. Combo boxes dependentes de categorias e subcategorias 17m 26s
  6. Implementando o serviço de cadastro de produto 12.6. Implementando o serviço de cadastro de produto 22m 43s
  7. Controlando transações em beans CDI 12.7. Controlando transações em beans CDI 11m 14s
  8. Implementando a pesquisa de produtos 12.8. Implementando a pesquisa de produtos 23m 4s
  9. Implementando a edição de produtos 12.9. Implementando a edição de produtos 26m 59s
  10. Implementando a exclusão de produtos 12.10. Implementando a exclusão de produtos 16m 8s
  11. Desafio: cadastro de usuários 12.11. Desafio: cadastro de usuários
  12. Desafio: pesquisa de usuários 12.12. Desafio: pesquisa de usuários
  13. Desafio: edição e exclusão de usuários 12.13. Desafio: edição e exclusão de usuários
  14. Desafio: cadastro de clientes 12.14. Desafio: cadastro de clientes
  15. Desafio: pesquisa de clientes 12.15. Desafio: pesquisa de clientes
  16. Desafio: edição e exclusão de clientes 12.16. Desafio: edição e exclusão de clientes
  1. Implementando a pesquisa de pedidos 13.1. Implementando a pesquisa de pedidos 19m 33s
  2. Implementando o cadastro de pedidos sem itens 13.2. Implementando o cadastro de pedidos sem itens 26m 36s
  3. Implementando a edição de pedidos 13.3. Implementando a edição de pedidos 7m 41s
  4. Calculando valores da capa do pedido 13.4. Calculando valores da capa do pedido 22m 35s
  5. Adicionando itens ao pedido 13.5. Adicionando itens ao pedido 38m 4s
  6. Atualizando e removendo itens do pedido 13.6. Atualizando e removendo itens do pedido 7m 3s
  7. Salvando os itens do pedido 13.7. Salvando os itens do pedido 9m 53s
  8. Alertando a falta de produtos no estoque 13.8. Alertando a falta de produtos no estoque 11m 40s
  9. Emitindo pedidos 13.9. Emitindo pedidos 25m 48s
  10. Cancelando pedidos 13.10. Cancelando pedidos 14m 34s
  11. Controlando status de pedidos 13.11. Controlando status de pedidos 11m 42s
  12. Desafio: inclusão de endereços de clientes 13.12. Desafio: inclusão de endereços de clientes
  1. Instalando o Simple-Mail no repositório local do Maven 14.1. Instalando o Simple-Mail no repositório local do Maven 5m 18s
  2. Configurando o projeto para envio de e-mail com CDI 14.2. Configurando o projeto para envio de e-mail com CDI 11m 38s
  3. Enviando e-mail com dados do pedido 14.3. Enviando e-mail com dados do pedido 7m 56s
  4. Template de e-mail com Apache Velocity 14.4. Template de e-mail com Apache Velocity 16m 41s
  5. Serviços profissionais para envio de e-mails 14.5. Serviços profissionais para envio de e-mails 3m 16s
  6. Desafio: enviando e-mail 14.6. Desafio: enviando e-mail
  1. Introdução à autenticação e autorização 15.1. Introdução à autenticação e autorização 3m 20s
  2. Configurando o Spring Security no projeto 15.2. Configurando o Spring Security no projeto 8m 23s
  3. Controlando acesso às páginas 15.3. Controlando acesso às páginas 7m 57s
  4. Criando um provedor de autenticação customizado 15.4. Criando um provedor de autenticação customizado 22m 33s
  5. Exibindo o nome do usuário logado 15.5. Exibindo o nome do usuário logado 7m 43s
  6. Criando uma página de login customizada 15.6. Criando uma página de login customizada 16m 24s
  7. Resolvendo o problema com requisição Ajax 15.7. Resolvendo o problema com requisição Ajax 9m 23s
  8. Protegendo componentes 15.8. Protegendo componentes 7m 52s
  9. Desafio: protegendo páginas e componentes 15.9. Desafio: protegendo páginas e componentes
  1. Incluindo um gráfico de linhas com dados aleatórios 16.1. Incluindo um gráfico de linhas com dados aleatórios 9m 49s
  2. Criando a consulta para o gráfico de linhas 16.2. Criando a consulta para o gráfico de linhas 34m 17s
  3. Populando o gráfico com dados dinâmicos 16.3. Populando o gráfico com dados dinâmicos 8m 23s
  4. Desafio: gráfico de pizza 16.4. Desafio: gráfico de pizza
  1. Introdução ao JasperReports e iReport 17.1. Introdução ao JasperReports e iReport 5m 52s
  2. Criando um relatório de pedidos emitidos 17.2. Criando um relatório de pedidos emitidos 17m 56s
  3. Melhorando a formatação do relatório 17.3. Melhorando a formatação do relatório 9m 5s
  4. Chamando o relatório de uma página JSF 17.4. Chamando o relatório de uma página JSF 26m 39s
  5. Desafio: criando um novo relatório 17.5. Desafio: criando um novo relatório
  1. Criando uma instância no Amazon EC2 18.1. Criando uma instância no Amazon EC2 16m 39s
  2. Criando uma instância de MySQL no Amazon RDS 18.2. Criando uma instância de MySQL no Amazon RDS 4m 35s
  3. Instalando o JDK e Tomcat no servidor de produção 18.3. Instalando o JDK e Tomcat no servidor de produção 6m 36s
  4. Fazendo deploy da aplicação 18.4. Fazendo deploy da aplicação 5m 26s
  5. Testando o sistema na nuvem 18.5. Testando o sistema na nuvem 3m 34s
  6. Conclusão e próximos passos 18.6. Conclusão e próximos passos 6m 20s
  1. Introdução ao Java EE 7 19.1. Introdução ao Java EE 7 2m 37s
  2. Atualizando as bibliotecas do projeto 19.2. Atualizando as bibliotecas do projeto 18m 25s
  3. Migrando para o Tomcat 8 19.3. Migrando para o Tomcat 8 3m 15s
  4. Fazendo o projeto rodar depois das atualizações 19.4. Fazendo o projeto rodar depois das atualizações 20m 25s
  5. Resolvendo o erro no gráfico do PrimeFaces 19.5. Resolvendo o erro no gráfico do PrimeFaces 7m 1s
  6. Resolvendo o problema com diálogos que não abrem 19.6. Resolvendo o problema com diálogos que não abrem 4m 2s
  7. Namespaces do Java EE 7 19.7. Namespaces do Java EE 7 7m 25s
  8. Usando DOCTYPE do HTML5 19.8. Usando DOCTYPE do HTML5 2m 5s
  9. Nova anotação @ViewScoped para beans CDI 19.9. Nova anotação @ViewScoped para beans CDI 5m 2s
  1. Validando entradas em client-side 20.1. Validando entradas em client-side 14m 14s
  2. Customizando mensagens de validação client-side 20.2. Customizando mensagens de validação client-side 6m 16s
  3. Estendendo validação client-side com JSF 20.3. Estendendo validação client-side com JSF 14m 56s
  4. Usando Metadata na validação client-side 20.4. Usando Metadata na validação client-side 16m 15s
  5. Estendendo validação client-side com Bean Validation 20.5. Estendendo validação client-side com Bean Validation 23m 22s
  6. Configurando validação client-side com anotações terceiras 20.6. Configurando validação client-side com anotações terceiras 22m 7s
  7. Implementando conversor client-side para Categoria 20.7. Implementando conversor client-side para Categoria 6m 36s
  8. Hackeando o código de validação client-side do PrimeFaces 20.8. Hackeando o código de validação client-side do PrimeFaces 16m 51s
  9. Abrindo páginas externas em diálogos com Dialog Framework 20.9. Abrindo páginas externas em diálogos com Dialog Framework 16m 51s
  10. Implementando diálogo para seleção de clientes 20.10. Implementando diálogo para seleção de clientes 26m 34s
  11. Exception Handler do PrimeFaces 20.11. Exception Handler do PrimeFaces 15m 6s
  12. Controlando o foco de formulários 20.12. Controlando o foco de formulários 10m 27s
  13. Exportando para Excel com DataExporter 20.13. Exportando para Excel com DataExporter 20m 57s
  14. Carregamento lazy em DataTable 20.14. Carregamento lazy em DataTable 31m 41s
  15. Usando o tema do Bootstrap 20.15. Usando o tema do Bootstrap 6m 45s
  16. Injeção de beans CDI em conversores JSF 20.16. Injeção de beans CDI em conversores JSF 13m 42s
  17. Componente ViewAction 20.17. Componente ViewAction 5m 13s
  18. Configurando um pool de conexões com C3P0 20.18. Configurando um pool de conexões com C3P0 21m 30s
  19. Relatório com Jaspersoft Studio 20.19. Relatório com Jaspersoft Studio 27m 58s
  20. Escopo ConversationScoped 20.20. Escopo ConversationScoped 35m 15s
  1. Atualizando para PrimeFaces 6 21.1. Atualizando para PrimeFaces 6 10m 9s
  2. Atualizando para Spring Security 4 com configuração programática 21.2. Atualizando para Spring Security 4 com configuração programática 26m 6s
  3. Atualizando para Log4j 2 21.3. Atualizando para Log4j 2 11m 6s
  4. Atualizando para Hibernate 5 21.4. Atualizando para Hibernate 5 14m 42s
  5. Criteria do Hibernate Depreciado: Usando Criteria API do JPA 21.5. Criteria do Hibernate Depreciado: Usando Criteria API do JPA 26m 2s
  6. Desafio: Usando Criteria API do JPA 21.6. Desafio: Usando Criteria API do JPA 2m 53s

Instrutor

Thiago Faria de Andrade

Thiago Faria de Andrade

Fundador e instrutor da AlgaWorks. Graduado em Sistemas de Informação e certificado SCJP.

Iniciou seu interesse por programação aos 14 anos, quando desenvolveu um software para entretenimento e se tornou um dos mais populares no Brasil e outros países de língua portuguesa.

Já foi sócio e trabalhou em outras empresas de software como programador, gerente e diretor de tecnologia, mas nunca deixou de programar.

Apenas R$ 997,00 Comprar agora! Acesso imediato. 3x R$ 332,33 sem juros Ou em até 18x com juros pelo PagSeguro Pague com cartão, boleto ou PagSeguro
Selo de garantia Garantia de 30 dias - seu dinheiro de volta sem perguntas e sem letras miúdas

Ainda tem dúvidas sobre este curso?

  1. Se você não conhece JSF ainda, recomendamos que não inicie este curso agora. É preferível você estudar JSF através de livros ou de nosso outro curso online, que tem o foco em JSF 2.
  2. Não é objetivo do curso aprofundar em iReport e JasperReports, no entanto, criaremos um relatório tabular com essas ferramentas e mostraremos como integrar com JSF 2. Depois que você aprender isso, você poderá criar novos relatórios e, se desejar, aprofundar nessas tecnologias através da documentação, livros ou novos cursos.
  3. Não. Para assistir as vídeo aulas, você precisa estar conectado à internet.
  4. Usamos o PagSeguro para receber os pagamentos de nossos cursos online. O PagSeguro aceita a maioria dos cartões de crédito, em até 18x. Oferecemos parcelamento em até 3x sem juros no cartão de crédito. Para pagamento por boleto ou transferência eletrônica, o pagamento deve ser feito à vista (também pelo PagSeguro).
  5. Com certeza! Já atendemos diversos órgãos do governo através de licitações e notas de empenho. Entre em contato conosco.
  6. Você pode fazer o pagamento por Paypal ou Western Union. Entre em contato conosco.
Sua dúvida não foi esclarecida? Entre em contato.