Framework web 02

39
Frameworks para Desenvolvimento web em Java Aula 02 André Luiz Forchesatto

description

Aula 02 - Frameworks web, Spring

Transcript of Framework web 02

Page 1: Framework web 02

Frameworks para Desenvolvimento web em

JavaAula 02

André Luiz Forchesatto

Page 2: Framework web 02

Planejamento

● Aula 02○ Introdução ao desenvolvimento Web Java○ Spring MVC○ Spring Web com HTML○ Spring Rest○ Spring Test

Page 3: Framework web 02

Programação WEB???

Page 4: Framework web 02

Protocolo HTTP

Page 5: Framework web 02

Requisição Http - request

Page 6: Framework web 02

Resposta Http - response

Page 7: Framework web 02

Frameworks - web● Surgiram para trazer produtividade no

desenvolvimento de software web● Component Based

○ Simplicidade no desenvolvimento e aprendizado;○ Conjunto de componentes visuais. Semelhante ao

que acontece no desktop;○ Diminui as preocupações com a parte visual;○ Exige pouco conhecimento de html+css+javascript

inicialmente

Page 8: Framework web 02

Component Based

Page 9: Framework web 02

Action Based

● Framework MVC● Baseado em ações;● Executam actions no servidor;● Não possui componentes visuais;● Mais flexibilidade no desenvolvimento;● Exige mais conhecimento de

html+css+javascript● Mas fácil de testar

Page 10: Framework web 02

Action Based

Page 11: Framework web 02

Spring Web● Fornece integração com vários frameworks;● Todas as funcionalidades do Core podem ser

usadas na web;● Possui um módulo MVC● Disponibiliza um EL de integração com os

arquivos JSP● Fácil integração com o JSF● Suporte a WebSocket

Page 12: Framework web 02

Spring MVC● Foi projetado em torno de um

DispatcherServlet que despacha pedidos para os controladores configuráveis

● Seu uso esta baseado em duas anotações básicas:○ @Controller○ @RequestMapping

● Possui suporte a RestFull com anotações:○ @RestController○ @PathVariable

Page 13: Framework web 02

Spring MVC

Page 14: Framework web 02

Spring MVC

Page 15: Framework web 02

Criando um Controller

Classe java simples com a anotação @Controller e @RequestMapping

Page 16: Framework web 02

RequestMapping

● Anotação responsável por registrar uma URL em um Controller.

● Pode estar sobre um Método ou Classe.

Page 17: Framework web 02

RequestMapping

● Atributos:○ value

■ Nome da URL○ consumes

■ MediaType (Json, text, html) de entrada na Action○ produces

■ MediaType (Json, text, html) de resposta na Action○ headers

■ Cabeçalho da requisição HTTP○ method

■ Método HTTP (Post, Get, etc..)○ params

■ Avalia se os parâmetros estão corretos

Page 18: Framework web 02

Template URI

● Variáveis na URL

Exemplo de uso: www.meusistema.com.br/owners/10

Page 19: Framework web 02

Template URI

● URL concatenada

Exemplo de uso: www.meusistema.com.br/owners/10/pets/5

Page 20: Framework web 02

Método HTTP

● Pode ser utilizado o padrão RestFul● Enum RequestMethod

○ GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE

Page 21: Framework web 02

Redirecionamento e Foward

● Redirect○ Acontece do lado do cliente, fará o browser acessar

uma nova URL;● Foward

○ Acontece do lado do servidor transparente para o cliente/browser

Page 22: Framework web 02

Redirecionamento e Foward

lista é um JSP disponível na pasta: WEB-INF/jsp/produto

Page 23: Framework web 02

Binding View e Modelo

● O name dos input devem ser iguais ao nome dos atributos das classes.

Page 24: Framework web 02

Classe Model

● Disponibiliza um mapa de valores para a View

Page 25: Framework web 02

Flash Attributes

● Mapa de parâmetros para redirecionamento

Page 26: Framework web 02

Spring-boot web

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>

</dependency><dependency>

<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><dependency>

<groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope>

</dependency> <dependency>

<groupId>javax.servlet</groupId><artifactId>jstl</artifactId>

</dependency>

Page 27: Framework web 02

Spring-boot web

spring.view.prefix: /WEB-INF/jsp/spring.view.suffix: .jsp

application.properties

Page 28: Framework web 02

Prática

● Criar páginas e controllers

Page 29: Framework web 02

Validação

● Suporta Bean Validation 1.0 (JSR-303) e Bean Validation 1.1 (JSR-349);

● Possui uma interface própria para validação;

Page 30: Framework web 02

Usar Validador Spring

● Implementar interface Validation

Page 31: Framework web 02

Usar Validador Spring

● Registra no @InitBinder

Page 32: Framework web 02

Prática

● Implementar validações

Page 33: Framework web 02

Spring Rest

● @RestController○ Anotação especifica para serviços Rest

● Assume @ResponseBody por padrão

Page 34: Framework web 02

Spring Rest

● @ResponseBody○ Transforma o conteúdo de retorno do response no

formato Json ou no MediaType indicado● @RequestBody

○ Transforma o conteúdo do request em um objeto java no MediaType indicado

Page 35: Framework web 02

Spring Rest

● @ResponseBody○ Transforma o conteúdo de retorno do response no

formato Json ou no MediaType indicado● @RequestBody

○ Transforma o conteúdo do request em um objeto java no MediaType indicado

Page 36: Framework web 02

Spring Data - Rest

● Disponibiliza os serviços RestFul a nível de repositório

Page 37: Framework web 02

Spring Data - Rest

● Pode ser acessado por JavaScript ou qualquer cliente Rest, retorna um Json para RestFul com a sessão de Links

Page 38: Framework web 02

Spring Data - Rest

Page 39: Framework web 02

Prática

Criar serviços Rest