Apostila

Java para Desenvolvimento Web

    sumário
  1. 1 Enfrentando o Java na Web
    1. 1.1 O grande mercado do Java na Web
    2. 1.2 Livros e sites interessantes
  2. 2 Bancos de dados e JDBC
    1. 2.1 Por que usar um banco de dados?
    2. 2.2 Persistindo através de Sockets?
    3. 2.3 A conexão em Java
    4. 2.4 Fábrica de Conexões
    5. 2.5 Design Patterns
    6. 2.6 Exercícios: ConnectionFactory
    7. 2.7 A tabela Contato
    8. 2.8 Javabeans
    9. 2.9 Inserindo dados no banco
    10. 2.10 DAO - Data Access Object
    11. 2.11 Exercícios: Javabeans e ContatoDao
    12. 2.12 Fazendo pesquisas no banco de dados
    13. 2.13 Exercícios: Listagem
    14. 2.14 Um pouco mais...
    15. 2.15 Exercícios opcionais
    16. 2.16 Outros métodos para o seu DAO
    17. 2.17 Exercícios opcionais - Alterar e remover
  3. 3 O que é Java EE?
    1. 3.1 Como o Java EE pode te ajudar a enfrentar problemas
    2. 3.2 Algumas especificações do Java EE
    3. 3.3 Servidor de Aplicação
    4. 3.4 Servlet Container
    5. 3.5 Exercícios: Preparando o Tomcat
    6. 3.6 Preparando o Tomcat em casa
    7. 3.7 Outra opção: Jetty
    8. 3.8 Integrando o Tomcat no Eclipse
    9. 3.9 O plugin WTP
    10. 3.10 Exercícios: Configurando o Tomcat no Eclipse
  4. 4 Novo projeto Web usando Eclipse
    1. 4.1 Novo projeto
    2. 4.2 Exercícios: Novo projeto web
    3. 4.3 Análise do resultado final
    4. 4.4 Criando nossas páginas e HTML Básico
    5. 4.5 Exercícios: primeira página
    6. 4.6 Para saber mais: configurando o Tomcat sem o plugin
    7. 4.7 Algumas tags HTML
  5. 5 Servlets
    1. 5.1 Páginas dinâmicas
    2. 5.2 Servlets
    3. 5.3 Mapeando uma servlet no web.xml
    4. 5.4 A estrutura de diretórios
    5. 5.5 Exercícios: Primeira Servlet
    6. 5.6 Erros comuns
    7. 5.7 Facilidades das Servlets 3.0
    8. 5.8 Para saber mais: Web Servlet e InitParam Annotation
    9. 5.9 Enviando parâmetros na requisição
    10. 5.10 Pegando os parâmetros da requisição
    11. 5.11 Exercícios: Criando funcionalidade para gravar contatos
    12. 5.12 GET, POST e métodos HTTP
    13. 5.13 Tratando exceções dentro da Servlet
    14. 5.14 Exercício: Tratando exceções e códigos HTTP
    15. 5.15 Init e Destroy
    16. 5.16 Uma única instância de cada Servlet
    17. 5.17 Exercícios opcionais
    18. 5.18 Discussão: Criando páginas dentro de uma servlet
  6. 6 JavaServer Pages
    1. 6.1 Colocando o HTML no seu devido lugar
    2. 6.2 Exercícios: Primeiro JSP
    3. 6.3 Listando os contatos com Scriptlet
    4. 6.4 Exercícios opcionais: Lista de contatos com scriptlet
    5. 6.5 Misturando código Java com HTML
    6. 6.6 EL: Expression language
    7. 6.7 Exercícios: parâmetros com a Expression Language
    8. 6.8 Para saber mais: Compilando os arquivos JSP
  7. 7 Usando Taglibs
    1. 7.1 Taglibs
    2. 7.2 Instanciando POJOs
    3. 7.3 JSTL
    4. 7.4 Instalação
    5. 7.5 Cabeçalho para a JSTL core
    6. 7.6 ForEach
    7. 7.7 Exercícios: forEach
    8. 7.8 Exercícios opcionais
    9. 7.9 Evoluindo nossa listagem
    10. 7.10 Fazendo ifs com a JSTL
    11. 7.11 Exercícios: lista de contatos com condicionais
    12. 7.12 Importando páginas
    13. 7.13 Exercícios: cabeçalhos e rodapés
    14. 7.14 Formatação de datas
    15. 7.15 Exercícios: Formatando a data de nascimento dos contatos
    16. 7.16 Para saber mais: links com ``
    17. 7.17 Exercícios opcionais: Caminho absoluto
    18. 7.18 Para saber mais: Outras tags
  8. 8 Tags customizadas com Tagfiles
    1. 8.1 Porque eu precisaria de outras tags além da JSTL?
    2. 8.2 Calendários com jQuery
    3. 8.3 Criando minhas próprias tags com Tagfiles
    4. 8.4 Exercícios: criando nossa própria tag para calendário
    5. 8.5 Para saber mais: Outras taglibs no mercado
    6. 8.6 Desafio: Colocando displaytag no projeto
  9. 9 MVC - Model View Controller
    1. 9.1 Servlet ou JSP?
    2. 9.2 Request Dispatcher
    3. 9.3 Exercícios: RequestDispatcher
    4. 9.4 Melhorando o processo
    5. 9.5 Retomando o _design pattern_ Factory
    6. 9.6 Exercícios: Criando nossas lógicas e a servlet de controle
    7. 9.7 Exercícios: Criando uma lógica para remover contatos
    8. 9.8 Fazendo a lógica para listar os contatos
    9. 9.9 Exercícios: Lógica para listar contatos
    10. 9.10 Escondendo nossas páginas
    11. 9.11 Exercícios opcionais
    12. 9.12 Model View Controller
    13. 9.13 Lista de tecnologias: camada de controle
    14. 9.14 Lista de tecnologias: camada de visualização
    15. 9.15 Discussão em aula: os padrões Command e Front Controller
  10. 10 Recursos importantes: Filtros
    1. 10.1 Reduzindo o acoplamento com Filtros
    2. 10.2 Exercícios opcionais: Filtro para medir o tempo de execução
    3. 10.3 Problemas na criação das conexões
    4. 10.4 Tentando outras estratégias
    5. 10.5 Reduzindo o acoplamento com Filtros
    6. 10.6 Exercícios: Filtros
  11. 11 Spring MVC
    1. 11.1 Porque precisamos de frameworks MVC?
    2. 11.2 Um pouco de história
    3. 11.3 Configurando o Spring MVC
    4. 11.4 Criando as lógicas
    5. 11.5 A lógica Olá Mundo!
    6. 11.6 Para saber mais: Configurando o Spring MVC em casa
    7. 11.7 Exercícios: Configurando o Spring MVC e testando a configuração
    8. 11.8 Adicionando tarefas e passando parâmetros
    9. 11.9 Exercícios: Criando tarefas
    10. 11.10 Incluindo validação no cadastro de tarefas
    11. 11.11 Validação com Bean Validation
    12. 11.12 Exercícios: Validando tarefas
    13. 11.13 Listando as tarefas e disponibilizando objetos para a view
    14. 11.14 Exercícios: Listando tarefas
    15. 11.15 Redirecionando a requisição para outra ação
    16. 11.16 Exercícios: Removendo e alterando tarefas
    17. 11.17 Desafio - Calendário
    18. 11.18 Melhorando a usabilidade da nossa aplicação
    19. 11.19 Utilizando AJAX para marcar tarefas como finalizadas
    20. 11.20 Configurar o Spring MVC para acessar arquivos comuns
    21. 11.21 Exercícios: Ajax
    22. 11.22 Para saber mais: Alterando valor da data com AJAX
    23. 11.23 Exercícios Opcionais: Melhorando nosso AJAX
  12. 12 Spring MVC: Autenticação e autorização
    1. 12.1 Autenticando usuários: como funciona?
    2. 12.2 Cookies
    3. 12.3 Sessão
    4. 12.4 Configurando o tempo limite
    5. 12.5 Registrando o usuário logado na sessão
    6. 12.6 Exercício: Fazendo o login na aplicação
    7. 12.7 Bloqueando acessos de usuários não logados com Interceptadores
    8. 12.8 Exercícios: Interceptando as requisições
    9. 12.9 Exercícios opcionais: Logout
  13. 13 Spring IoC e deploy da aplicação
    1. 13.1 Menos acoplamento com inversão de controle e injeção de dependências
    2. 13.2 Container de Injeção de dependências
    3. 13.3 Container Spring IoC
    4. 13.4 Outras formas de injeção
    5. 13.5 Exercícios: Inversão de controle com o Spring Container
    6. 13.6 Aprimorando o visual através de CSS
    7. 13.7 Exercícios opcionais: Aplicando CSS nas páginas
    8. 13.8 Deploy do projeto em outros ambientes
    9. 13.9 Exercícios: Deploy com war
    10. 13.10 Discussão em aula: lidando com diferentes nomes de contexto
  14. 14 Uma introdução prática ao JPA com Hibernate
    1. 14.1 Mapeamento Objeto Relacional
    2. 14.2 Java Persistence API e Frameworks ORM
    3. 14.3 Bibliotecas do Hibernate e JPA
    4. 14.4 Mapeando uma classe Tarefa para nosso Banco de Dados
    5. 14.5 Configurando o JPA com as propriedades do banco
    6. 14.6 Usando o JPA
    7. 14.7 Para saber mais: Configurando o JPA com Hibernate em casa
    8. 14.8 Exercícios: Configurando o JPA e gerando o schema do banco
    9. 14.9 Trabalhando com os objetos: o EntityManager
    10. 14.10 Exercícios: Gravando e Carregando objetos
    11. 14.11 Removendo e atualizando objeto
    12. 14.12 Buscando com uma cláusula where
    13. 14.13 Exercícios: Buscando com JPQL
  15. 15 E agora?
    1. 15.1 Os apêndices dessa apostila
    2. 15.2 Frameworks Web
    3. 15.3 Frameworks de persistência
    4. 15.4 Onde seguir seus estudos
  16. 16 Apêndice - Integração do Spring com JPA
    1. 16.1 Gerenciando o EntityManager
    2. 16.2 Configurando o JPA no Spring
    3. 16.3 Injetando o EntityManager
    4. 16.4 Baixo acoplamento pelo uso de interface
    5. 16.5 Gerenciando a transação
    6. 16.6 Exercícios: Integrando JPA com Spring
    7. 16.7 Exercícios Opcionais: Integrando a entidade User com o JPA
  17. 17 Apêndice - Tópicos da Servlet API
    1. 17.1 Init-params e context-params
    2. 17.2 welcome-file-list
    3. 17.3 Propriedades de páginas JSP
    4. 17.4 Inclusão estática de arquivos
    5. 17.5 Tratamento de erro em JSP
    6. 17.6 Descobrindo todos os parâmetros do request
    7. 17.7 Trabalhando com links com a c:url
    8. 17.8 Context listener
    9. 17.9 O ServletContext e o escopo de aplicação
    10. 17.10 Outros listeners