FJ-21 - Java para Desenvolvimento Web
O mercado de desenvolvimento Web em Java é realmente muito grande. Este curso visa não apenas mostrar os conceitos básicos de uma web application, mas também mostrar os frameworks mais conhecidos e requisitados no mercado para aplicar o padrão arquitetural Model View Controller (MVC).
Incluindo o uso de Hibernate 3 com recursos do Java 5 e anotações do EJB 3.0, Struts 1.x e VRaptor. O Tomcat 6 é usado como servlet container e o Eclipse com WTP como IDE. Aprenda a última versão desses frameworks no curso de web mais respeitado do mercado!
Apostila recentemente reformulada (fevereiro de 2009).
Valeu cada centavo investido. Aprendi em duas semanas o que não aprendi em três anos. Ótima didática com excelentes profissionais, em breve voltarei para fazer mais dois cursos. Sai daqui com outra visão, buscando novos desafios. Obrigado à Família Caelum por nos recebermos tão bem!
Raimundo Jose, Aracaju-ES, FJ-21
É impressionante tudo que se aprende em tão pouco tempo. A combinação de um bom material e ótimos professores é o grande defirencial da Caelum, recomento a todos!!!
Daves Vieira, Aracaju-SE, FJ-21
Informações
Carga Horária: 40 horas aula
Pré-requisitos: Curso FJ-11 ou: linguagem Java, variáveis primitivas e orientação a objetos, tratamento de erro, conhecimentos fundamentais de Java SE, entrada e saída, coleções, básico de multi-threading em Java, básico de http e html.
Próximas Turmas
São Paulo
| Início | Término | Período |
|---|---|---|
| 06/07 | 10/07 | Integral (9:00 as 17:00) |
| 11/07 | 08/08 | Sabado (9:00 as 17:00) |
| 13/07 | 17/07 | Integral (9:00 as 17:00) |
| 13/07 | 24/07 | Noturno (19:00 as 23:00) |
| 13/07 | 24/07 | Noturno (19:00 as 23:00) |
| 20/07 | 24/07 | Integral (9:00 as 17:00) |
| 27/07 | 07/08 | Noturno (19:00 as 23:00) |
| 27/07 | 31/07 | Integral (9:00 as 17:00) |
| 03/08 | 07/08 | Integral (9:00 as 17:00) |
| 10/08 | 21/08 | Noturno (19:00 as 23:00) |
| 24/08 | 04/09 | Noturno (19:00 as 23:00) |
| 29/08 | 26/09 | Sabado (9:00 as 17:00) |
| 26/09 | 24/10 | Sabado (9:00 as 17:00) |
| 10/10 | 07/11 | Sabado (9:00 as 17:00) |
| 21/11 | 19/12 | Sabado (9:00 as 17:00) |
Rio de Janeiro
| Início | Término | Período |
|---|---|---|
| 04/07 | 01/08 | Sabado (9:00 as 17:00) |
| 04/07 | 01/08 | Sabado (9:00 as 17:00) |
| 13/07 | 17/07 | Integral (9:00 as 17:00) |
| 17/08 | 28/08 | Noturno (18:00 as 22:00) |
| 12/09 | 10/10 | Sabado (9:00 as 17:00) |
Conteúdo detalhado do FJ-21
Como Aprender Java
- O que é realmente importante?
- Sobre os exercícios
- Tirando dúvidas
- Bibliografia
JDBC - java.sql
- Executando o Eclipse pela primeira vez
- O banco
- Sockets: uma idéia inocente
- A conexão em Java
- Fábrica de Conexões
- Soluções para viagem - Design Patterns
- Exercícios - ConnectionFactory
- A tabela de exemplo
- Javabeans
- Exercícios - Contato
- Inserindo dados
- DAO - Data Access Object
- Exercícios - ContatoDAO
- Exercícios Opcionais
- Pesquisando
- Exercícios - Listagem
- Um pouco mais...
- Exercícios opcionais
- Outros métodos para o seu DAO
- Exercícios opcionais - Alterar e remover
O que é J2EE?
- Java EE
- APIs
- Implementações compatíveis com a especificação
Servlet Container
- Introdução
- Aplicações web no Java EE e Servlet Container
- Instalando o Tomcat
- Sobre o Tomcat
- Instalando o Tomcat em casa
- Outra opção: Jetty
O eclipse e seus plugins
- O plugin WTP
- Configurando o Tomcat no WTP
Novo projeto web
- Novo projeto
- Análise do resultado final
- Exercícios: primeira página
- Para saber mais: configurando o Tomcat sem o plugin
JSP - JavaServer Pages
- O que é uma página JSP
- Exercícios: Primeiro JSP
- Listando os contatos
- Exercícios: Lista de contatos com scriptlet
- HTML e Java: eu não quero código Java no meu JSP!
- EL: Expression language
- Exercícios: parâmetros com EL
- Exercícios opcionais
- Erros comuns
- Exercício opcional
- Instanciando POJOs
- Para saber mais: Compilando os arquivos JSP
JSTL - JavaServer Pages Tag Library
- JSTL
- As empresas hoje em dia
- Instalação
- Cabeçalho para a JSTL core
- For
- Exercícios: forEach
- Exercício opcional
- c:out e c:set
- Mas quais são as tags da taglib core?
- Import: trabalhando com cabeçalhos e rodapés
- Exercícios
- Erros Comuns
- Inclusão estática de arquivos
- Exercícios
- Exercícios opcionais
- Trabalhando com links
- Exercícios opcionais
- c:if
- Exercícios
Controle de erro
- Exceptions
- JSTL é a solução?
- Exercício opcional
- Quando acontece um erro em uma página JSP
- Página de erro
- Exercícios
- Erros comuns
Servlets
- Servlet
- A estrutura de diretórios
- Mapeando uma servlet no web.xml
- Exercícios: Servlet OiMundo
- Erros comuns
- Init e Destroy
- Curiosidades do mapeamento de uma servlet
- OutputStream x PrintWriter
- Parâmetros
- Exercícios: TestaParametros
- Exercício opcional
- doGet, doPost e outros
- Conversão de parâmetros
- Exercícios opcionais
- Variáveis membro
- Exercícios: Contador
- HTML e Java: eu não quero código html na minha servlet!
- Como funciona uma página JSP
- Web archive (.war)
- Exercícios: Deploy com war
- Quando acontece um erro em uma servlet
- O try e catch
- Tratamento padrão de erros - modo declarativo
- Configurando a página de erro
- Exercícios
- Erros comuns
- Tratamento de outros erros
- Exercício opcional
- Outro erro comum
- Servlet para adicionar contatos no banco
- Exercício
- Exercícios Opcionais
Servlet e JSP API
- Propriedades de páginas JSP
- Exercícios
- Filtros
- Configuração de filtros
- Exercícios
- Entendendo os filtros
- Exercício Opcional
Model View Controller
- Servlet ou JSP?
- Request dispatchers
- Exercícios
- Melhorando o processo
- Retomando o ::design pattern:: Factory
Construindo um Framework MVC
- Nossa interface de execução
- Exercícios
- Criando um controlador e um pouco mais de reflection
- Configurando o web.xml
- Exercícios
- Erros comuns
- Exercícios
- Exercícios opcionais
- Model View Controller
- Lista de tecnologias: camada de controle
- Lista de tecnologias: camada de visualização
- MVC 2
Struts Framework
- Struts
- Configurando o Struts
- Exercícios
- Uma ação Struts
- Configurando a ação no struts-config.xml
- Exercícios: TesteSimplesAction
- Erros comuns
- Pesquisando um banco de dados
- Criando a ação
- O arquivo WebContent/lista.jsp
- ListaContatos no struts-config.xml
- Exercício: ListaContatosAction
- Resultado condicional com o Struts
- Exercícios: listagem vazia
- Resultado do struts-config.xml
- Novos contatos
- Formulário
- Mapeando o formulário no arquivo struts-config.xml
- Exercício: ContatoForm
- Erro comum
- Lógica de Negócios
- Exercício: AdicionaContatoAction
- Erros comuns
- Arquivo de mensagens
- Exercícios: Mensagens
- Erros comuns
- Validando os campos
- Exercício: validação
- Erros comuns
- Exercícios opcionais
- Limpando o formulário
- Exercícios: scope
- Exercícios opcionais
- O mesmo formulário para duas ações
- Exercícios opcionais
- Struts-logic taglib: um exemplo antigo de for
- Para saber mais
Autenticação, cookies e sessão
- Preparando um sistema de login
- Nossas classes: Funcionario e FuncionarioDAO
- Passo 1: Formbean
- Passo 2: A página de login: formulario-login.jsp
- Exercícios: formulário de login
- A ação
- A ação no struts-config.xml
- ok.jsp e erro.jsp
- Exercícios: LoginAction
- Erro comum
- Exercícios opcionais
- Cookies
- Sessão
- Configurando o tempo limite
- Registrando o usuário logado na sessão
- Exercícios: autorização
- Exercícios opcionais
Hibernate
- Vantagens
- Criando seu projeto
- Modelo
- Configurando a classe/tabela Produto
- Exercícios
- Propriedades do banco
- Exercícios
- Configurando
- Criando as tabelas
- Exercícios
- Dica: log do Hibernate
- HibernateUtil
- Exercícios
- Erros comuns
- Salvando novos objetos
- Exercícios
- Buscando pelo id
- Criando o ProdutoDAO
- Exercícios
- Buscando com uma cláusula where
- ProdutoDAO: Listar tudo e fazer paginação
- Exercícios
- Exercícios para o preguiçoso
- Exercício opcional
VRaptor
- Eu não quero o que eu não conheço
- Vantagens
- Vraptor 2
- Exercícios
- Internacionalização
- A classe de modelo
- Minha primeira lógica de negócios
- Como configurar a minha lógica?
- E o JSP com o formulário?
- E a página final?
- Exercícios
- A lista de produtos
- Exercícios opcionais
- Velocity, Freemaker e Sitemesh
- Configurações
- Um pouco mais...
- Plugin para o Eclipse
- Pequenos exemplos de simplicidade
E agora?
- Certificação
- Frameworks
- Revistas
- Grupo de Usuários
- Falando em Java - Próximos módulos
Apêndice A - Servlet e JSP API
- Início e término da sua aplicação
- Exercícios
- getServletContext()
- Exercícios opcionais
- Acessando a aplicação no JSP
- Exercícios
- Configuração de uma servlet
- Exercícios
- Descobrindo todos os parâmetros do request
Apêndice B - Design Patterns
- Factory - exemplo de cache de objetos
- Singleton
- Exercícios
- Um pouco mais...