Programação para Web 3
Como a Web Funciona
Nesta aula, vamos entender o que acontece nos bastidores quando um navegador abre um site: o modelo cliente-servidor, o protocolo HTTP, a anatomia das URLs, os métodos, os códigos de status e os cabeçalhos. Vamos também aprender a inspecionar requisições reais com o DevTools do navegador.
Organização de Aplicações Web: MVC e Spring Boot
Nesta aula, vamos aprender a organizar o código do lado do servidor com o padrão MVC e a construir nossa primeira aplicação com Spring Boot. Vamos criar o projeto com o Spring Initializr, subir o servidor embutido, definir rotas com controllers e separar os dados em classes de modelo e repositório.
Comunicação HTTP
Nesta aula, vamos aprender a controlar o que acontece dentro de uma requisição: os métodos GET e POST, os parâmetros que trafegam na URL ou no corpo de um formulário, os cabeçalhos que carregam metadados e os códigos de status que o próprio código escolhe. Vamos também criar o primeiro formulário HTML da EstanteWeb.
Templates com FreeMarker
Nesta aula, vamos aprender a gerar páginas dinamicamente com o FreeMarker, substituindo o HTML montado por concatenação de String por templates de verdade. Vamos ver a sintaxe de variáveis, listas e condicionais, a integração com o Spring Boot através do Model e a diferença entre @Controller e @RestController.
Formulários e Fluxo de Navegação
Nesta aula, vamos aprender a construir formulários que preservam o que o usuário digitou quando algo dá errado, usando os operadores ?? e ! do FreeMarker. Vamos também entender o padrão Post/Redirect/Get e como usar o prefixo redirect: do Spring para levar o usuário a outra página depois de um envio bem-sucedido.
Persistência de Dados
Nesta aula, vamos colocar um banco de dados MySQL no ar e conectá-lo à aplicação Spring Boot. Vamos entender o que é um banco de dados relacional, como versionar mudanças de esquema com o Flyway, e escrever as primeiras migrações para criar as tabelas do acervo e das sugestões de leitura.
Consulta de Dados
Nesta aula, vamos fazer o acervo da EstanteWeb passar a vir de verdade do banco de dados. Vamos conhecer o JdbcTemplate, escrever as primeiras consultas SQL a partir do Java, e entender a injeção de dependência do Spring, que passa a criar os repositórios e controllers da aplicação em nosso lugar.
Cadastro de Informações
Nesta aula, vamos construir a tela de cadastro do acervo, fechando o caminho que leva um dado da tela até o banco de dados. Vamos ver a diferença entre consultas e comandos SQL, usar o método update do JdbcTemplate para executar um INSERT, e validar os dados antes de gravá-los.
Navegação entre Recursos
Nesta aula, vamos dar a cada registro do acervo um endereço próprio, construindo páginas de detalhe a partir de URLs parametrizadas. Vamos conhecer o @PathVariable, entender por que o identificador de um recurso vai no caminho da URL e não na query string, buscar um único registro no banco e responder 404 quando o endereço não leva a nada.
Git e GitHub
Nesta aula, vamos aprender a versionar código com o Git e a publicá-lo no GitHub. Vamos entender como os dois trabalham juntos e usar os principais comandos do dia a dia para registrar e compartilhar as alterações de um projeto.