FJ-21 | Java para Desenvolvimento Web (Noturno)
SCS Qd. 8 Bl. B-50 - Sala 521, Ed. Venâncio 2000 - Brasília/Distrito Federal - Brasil
Descrição
Carga Horária: 40 horas aula
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 do Spring MVC com JSP, JSTL e AJAX, além de persistência no banco de dados com JDBC e uma introdução prática ao Hibernate 3. O Tomcat é usado como servlet container e o Eclipse como IDE. Inclui as novidades do Java EE 6. Aprenda a última versão desses frameworks no curso de Web mais respeitado do mercado!
Curso recentemente atualizado (Fevereiro/2012).
Esse curso faz parte da Formação Consultor Java junto com o FJ-11 e o FJ-16.
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.
Conteúdo detalhado:
Enfrentando o Java na Web
- O grande mercado do Java na Web
- Bibliografia
Bancos de dados e JDBC
- Por que usar um banco de dados?
- Persistindo através de Sockets?
- A conexão em Java
- Fábrica de Conexões
- Design Patterns
- Exercícios: ConnectionFactory
- A tabela Contato
- Javabeans
- Inserindo dados no banco
- DAO - Data Access Object
- Exercícios: Javabeans e ContatoDAO
- Fazendo pesquisas no banco de dados
- Exercícios: Listagem
- Um pouco mais...
- Exercícios opcionais
- Outros métodos para o seu DAO
- Exercícios opcionais - Alterar e remover
O que é Java EE?
- Como o Java EE pode te ajudar a enfrentar problemas
- Algumas especificações do Java EE
- Servidor de Aplicação
- Servlet Container
- Preparando o Tomcat
- Preparando o Tomcat em casa
- Outra opção: Jetty
- Integrando o Tomcat no Eclipse
- O plugin WTP
- Configurando o Tomcat no WTP
Novo projeto Web usando Eclipse
- Novo projeto
- Análise do resultado final
- Criando nossas páginas e HTML Básico
- Exercícios: primeira página
- Para saber mais: configurando o Tomcat sem o plugin
- Algumas tags HTML
Servlets
- Páginas dinâmicas
- Servlets
- Mapeando uma servlet no web.xml
- A estrutura de diretórios
- Exercícios: Primeira Servlet
- Erros comuns
- Enviando parâmetros na requisição
- Pegando os parâmetros da requisição
- Exercícios: Criando funcionalidade para gravar contatos
- GET, POST e métodos HTTP
- Tratando exceções dentro da Servlet
- Exercício: Tratando exceções e códigos HTTP
- Init e Destroy
- Uma única instância de cada servlet
- Exercícios opcionais
- Para saber mais: Facilidades das Servlets 3.0
- Discussão: Criando páginas dentro de uma servlet
JavaServer Pages
- Colocando o HTML no seu devido lugar
- Exercícios: Primeiro JSP
- Listando os contatos com Scriptlet
- Exercícios: Lista de contatos com scriptlet
- Exercícios opcionais
- Misturando código Java com HTML
- EL: Expression language
- Exercícios: parâmetros com a Expression Language
- Para saber mais: Compilando os arquivos JSP
Usando Taglibs
- Taglibs
- Instanciando POJOs
- JSTL
- Instalação
- Cabeçalho para a JSTL core
- ForEach
- Exercícios: forEach
- Exercício opcional
- Evoluindo nossa listagem
- Fazendo ifs com a JSTL
- Exercícios: Melhorando a lista de contatos com condicionais
- Importando páginas
- Exercícios: Adicionando cabeçalhos e rodapés
- Formatando as datas
- Exercícios: Formatando a data de nascimento dos contatos
- Para saber mais: Trabalhando com links com
- Exercícios opcionais: Caminho absoluto
- Para saber mais: Outras tags
Tags customizadas com Tagfiles
- Porque eu precisaria de outras tags além da JSTL?
- Calendários com JQuery
- Criando minhas próprias tags com Tagfiles
- Exercícios: criando nossa própria tag para calendário
- Para saber mais: Outras taglibs no mercado
- Desafio: Colocando displaytag no projeto
MVC - Model View Controller
- Servlet ou JSP?
- Request Dispatcher
- Exercícios: RequestDispatcher
- Melhorando o processo
- Retomando o ::design pattern:: Factory
- A configuração do web.xml
- Exercícios: Criando nossas lógicas e servlet de controle
- Exercícios: Lógica para alterar contatos
- Exercícios opcionais
- Model View Controller
- Lista de tecnologias: camada de controle
- Lista de tecnologias: camada de visualização
- Discussão em aula: os padrões Command e Front Controller
Recursos importantes: Filtros
- Reduzindo o acoplamento com Filtros
- Exercícios opcionais: Filtro para medir o tempo de execução
- Problemas na criação das conexões
- Tentando outras estratégias
- Reduzindo o acoplamento com Filtros
- Exercícios: Filtros
Spring MVC
- Porque precisamos de frameworks MVC?
- Um pouco de história
- Configurando o Spring MVC
- Criando as lógicas
- A lógica Olá Mundo!
- Exercícios: Configurando o Spring MVC e testando a configuração
- Adicionando tarefas e passando parâmetros
- Exercícios: Criando tarefas
- Incluindo validação no cadastro de tarefas
- Validação com Bean Validation
- Exercícios: Validando tarefas
- Listando as tarefas e disponibilizando objetos para a view
- Exercícios: Listando tarefas
- Redirecionando a requisição para outra ação
- Exercícios: Removendo e alterando tarefas
- Desafio - Calendário
- Melhorando a usabilidade da nossa aplicação
- Utilizando AJAX para marcar tarefas como finalizadas
- Configurar o Spring MVC para acessar arquivos comuns
- Exercícios: Ajax
Spring MVC: Autenticação e autorização e deploy da aplicaçao
- Autenticando usuários: como funciona?
- Cookies
- Sessão
- Configurando o tempo limite
- Registrando o usuário logado na sessão
- Exercício: Fazendo o login na aplicação
- Bloqueando acessos de usuários não logados com Interceptadores
- Exercícios: Interceptando as requisições
- Exercícios opcionais: Logout
- Deploy do projeto em outros ambientes
- Exercícios: Deploy com war
- Discussão em aula: lidando com diferentes nomes de contexto
Uma introdução prática ao Hibernate
- Mapeamento Objeto Relacional
- Criando seu projeto para usar o Hibernate
- Mapeando uma classe Produto para nosso Banco de Dados
- Configurando o Hibernate com as propriedades do banco
- Usando o Hibernate
- Exercícios: configurando e gerando o schema do banco
- Trabalhando com os objetos: a Session
- Exercícios: Gravando e Carregando objetos
- Buscando com uma cláusula where
- Exercícios: Buscando com HQL
E agora?
- Os apêndices dessa apostila
- Certificação SCWCD
- Frameworks Web
- Frameworks de persistência
- Onde seguir seus estudos
Apêndice - Mais Hibernate
- Exercícios: o HibernateUtil e gravando objetos
- Criando um DAO para o Hibernate
- Exercícios: criando o DAO
- Buscando com Criteria
- Exercícios
- Exercícios opcionais: para testar o LAZY
- Exercício opcional
Apêndice - VRaptor3 e produtividade na Web
- Motivação: evitando APIs complicadas
- Vantagens de um codigo independente de Request e Response
- VRaptor 3
- A classe de modelo
- Minha primeira lógica de negócios
- Redirecionando após a inclusão
- Criando o formulário
- A lista de produtos
- Exercícios
- Aprofundando em Injeção de Dependências e Inversão de Controle
- Injeção de Dependências com o VRaptor
- Escopos dos componentes
- Exercícios: Usando Injeção de Dependências para o DAO
- Adicionando segurança em nossa aplicação
- Interceptando requisições
- Exercícios: Construindo a autenticação e a autorização
- Melhorando a usabilidade da nossa aplicação
- Para saber mais: Requsições: Síncrono x Assíncrono
- Para saber mais: AJAX
- Adicionando AJAX na nossa aplicação
- Exercícios opcionais: Adicionando AJAX na nossa aplicação
Apêndice - Servlets 3.0 e Java EE 6
- Java EE 6 e as novidades
- Suporte a anotações: @WebServlet
- Suporte a anotações: @WebFilter
- Preparando o Glassfish v3.0 em casa
- Preparando o Glassfish v3.0 no WTP
- Nossa aplicação usando o Glassfish
- Exercício: Usando anotação @WebServlet
- Exercício: Alterando nosso framework MVC
- Exercício: Alterando nosso FiltroConexao
- Processamento assíncrono
- Plugabilidade e Web fragments
- Registro dinâmico de Servlets
Apêndice - Tópicos da Servlet API
- Init-params e context-params
- welcome-file-list
- Propriedades de páginas JSP
- Inclusão estática de arquivos
- Tratamento de erro em JSP
- Descobrindo todos os parâmetros do request
- Trabalhando com links com a c:url
- Context listener
- O ServletContext e o escopo de aplicação
- Outros listeners
Apêndice - Struts 1
- Struts 1 e o mercado
- Exercícios: Configurando o Struts
- 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
- Para saber mais
Apêndice - Struts 2
- Porque precisamos de frameworks MVC?
- Um pouco de história
- Configurando o Struts 2
- Criando as lógicas
- A lógica Olá Mundo!
- Exercícios: Configurando o Struts 2 e testando a configuração
- Adicionando tarefas e passando parâmetros à Action
- Exercícios: Criando tarefas
- Incluindo validação no cadastro de tarefas
- Exercícios: Validando tarefas
- Listando as tarefas e disponibilizando objetos para a view
- Exercícios: Listando tarefas
- Redirecionando a requisição para outra Action
- Exercícios: Removendo e alterando tarefas
- Desafio - Calendário
- Diminuindo o acoplamento
- Exercícios: Action sem classe
- Para saber mais: Outras formas de se trabalhar com o Struts 2
- Melhorando a usabilidade da nossa aplicação
- Utilizando AJAX para marcar tarefas como finalizadas
- Exercícios: Ajax
- Autenticando usuários: como funciona?
- Cookies
- Sessão
- Configurando o tempo limite
- Registrando o usuário logado na sessão
- Exercício: Fazendo o login na aplicação
- Bloqueando acessos de usuários não logados com Interceptadores
- Interceptadores Padrões
- Exercícios: Interceptando as requisições
- Exercícios opcionais: Aplicando o interceptador em todas as actions
- Exercícios opcionais: Logout
- Deploy do projeto em outros ambientes
- Exercícios: Deploy com war
- Discussão em aula: lidando com diferentes nomes de contexto
* Os apêndices listados são conteúdos adicionais que não fazem parte do curso regular.
Localização:
Contato
Preencha os campos abaixo para enviar e-mail ao organizador.
