Apresent Disciplina Java Web
Apresent Disciplina Java Web
APRENDIZAGEM EM FOCO
Este material foi preparado com toda a atenção para que você
domine o assunto. Para isso, é muito importante que você execute
os exemplos presentes no decorrer dos Temas e nas obras
recomendadas, pois, somente assim, você continuará a evoluir nos
estudos.
2
Bons estudos!
INTRODUÇÃO
3
INÍCIO TEMA 1 TEMA 2 TEMA 3 TEMA 4
TEMA 1
Camada de Apresentação
5
Camada de Aplicação
Camada de Dados
6
Figura 1 – Camadas de apresentação, de aplicação e de dados
Referências bibliográficas
SOMMERVILLE, I. Engenharia de Software. São Paulo: Pearson, 2011.
7
PARA SABER MAIS
Por fim, vale ressaltar que cada site necessita de um servido web
para entregar os arquivos HTML, afinal estes são a base de todo
site. Desse modo, o servidor de aplicativos nunca poderá substituir
a função do servidor web. Podemos concluir então que, em vez de
serem tecnologias concorrentes, os servidores web e os servidores
de aplicativos trabalham juntos para oferecer uma ótima experiência
de navegação ao usuário.
Referências bibliográficas
APACHE. Apache Tomcat 8. 2021. Disponível em: http://tomcat.apache.org/
tomcat-8.5-doc/index.html. Acesso em: 14 jan. 2021.
TANENBAUM, A. Redes de Computadores. 5. ed. Rio de Janeiro: Elsevier, 2011.
TEORIA EM PRÁTICA
De acordo com essas informações, reflita sobre cada uma das três
camadas e as tecnologias envolvidas. Considerando uma aplicação
9
de streaming em que o usuário precisa efetuar log in para assistir a
um vídeo, como poderia ser implementada uma arquitetura em três
camadas para essa aplicação?
LEITURA FUNDAMENTAL
Indicações de leitura
Indicação 1
SIERRA, Kathy; BATES, Bert. Use a cabeça!: Java. Rio de Janeiro: Alta
Books, 2009. p. 330-364.
Indicação 2
10
Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual
e busque pelo título da obra no parceiro Biblioteca Virtual 3.0_
Pearson.
QUIZ
11
b. A linguagem Java EE e a linguagem PHP são executadas tanto
na camada de apresentação quanto na camada de aplicação.
c. O desenvolvedor back-end precisa saber sobre tecnologias
web, como Java EE, PHP, Ruby ou ASP.NET.
d. Um desenvolvedor de back-end se concentra no HTML e CSS,
enquanto o desenvolvedor front-end no layout da aplicação.
e. O desenvolvedor de back-end concentra seu trabalho nas
camadas de apresentação e de aplicação no modelo de três
camadas.
12
GABARITO
Questão 1 - Resposta C
Resolução: A arquitetura de aplicativos web é uma
preocupação e foco do desenvolvedor back-end, no qual está
a camada de aplicação, em que é criada a lógica de negócio
utilizando linguagens como Java EE e PHP. O desenvolvedor
back-end (e não o de front-end) precisa conhecer tecnologias
como Java EE e outras linguagens de programação, além
de banco de dados, pois estes fazem parte de sua rotina de
trabalho. Por outro lado, é o desenvolvedor front-end que
concentra seus esforços trabalhando com HTML e CSS na
camada de apresentação.
Questão 2 - Resposta A
Resolução: Um sistema web pode ser dividido em back-end
e front-end. O front-end é o dispositivo por onde o usuário
interage. Por outro lado, o back-end é o servidor e nele está
toda a lógica do negócio, a qual é implementada em uma
linguagem de programação, sendo baseada muitas vezes na
consulta de um banco de dados. Desse modo, quando o cliente
(front-end) realiza uma requisição, o back-end é responsável
por garantir que os dados ou serviços requisitados sejam
retornados a ele.
13
INÍCIO TEMA 1 TEMA 2 TEMA 3 TEMA 4
TEMA 2
15
O HTTP é um protocolo cliente-servidor de resposta a pedidos
assimétrico, conforme ilustrado na Figura 1. Um cliente HTTP envia
uma mensagem de solicitação para um servidor HTTP, e o servidor,
por sua vez, retorna uma mensagem de resposta. Em outras
palavras, o HTTP é um protocolo pull, e o cliente extrai informações
do servidor (em vez de o servidor enviar as informações para o
cliente).
16
Sempre que você emite uma URL (Uniform Resource Locator) do
seu navegador para obter um recurso da Web usando HTTP, por
exemplo http://www.google.com.br, o navegador transforma a
URL em uma mensagem de requisição e a envia ao servidor HTTP.
O servidor HTTP, então, interpreta a mensagem de requisição e
retorna uma mensagem de resposta apropriada, que pode ser o
recurso solicitado ou uma mensagem de erro.
17
Referências bibliográficas
KURNIAWAN, Budi; DECK, Paul. Servlet, JSP and Spring MVC. Quebec: Brainy
Software Inc, 2015.
Dados numéricos
Dados alfanuméricos
18
• \n – para criar uma nova linha.
• \t – para tabulação.
Por fim, vale ressaltar que estruturas condicionais, como if, if-else e
switch-case, bem como as estruturas de repetição, como while, do-
while e for, possuem a mesma lógica e sintaxe da linguagem Java.
19
Referências bibliográficas
DEITEL, Paul J.; DEITEL, Harvey M. Java: Como Programar. 10. ed. São Paulo:
Pearson, 2016.
KURNIAWAN, Budi; DECK, Paul. Servlet, JSP and Spring MVC. Quebec: Brainy
Software Inc, 2015.
TEORIA EM PRÁTICA
Você foi contratado por uma empresa para criar um aplicativo web
de comércio eletrônico. Ela informou que nesse aplicativo o cliente
poderá realizar a pesquisa do produto, selecioná-lo e realizar a
compra. Além disso, o processo de validação do pagamento será
realizado por um sistema de terceiros: você enviará os dados, o
sistema externo os processará e lhe retornará os parâmetros para
a finalização da venda. Por fim, o sistema apenas informa o cliente
que o pedido foi feito com sucesso e lhe apresenta um protocolo.
20
LEITURA FUNDAMENTAL
Indicações de leitura
Indicação 1
Indicação 2
21
QUIZ
22
2. O ___________ é útil para construir sites ___________ e acessar
informações de banco de dados em um ___________. Embora
as páginas ___________ possam ter Java intercalado com
HTML, todo o código Java é analisado no servidor. Portanto,
assim que a página chega ao navegador, é apenas HTML.
GABARITO
Questão 1 - Resposta A
Resolução: O protocolo HTTP é o formato que permite a
comunicação entre cliente e servidor, podendo realizar
requisições e receber respostas no formato de mensagens. Ele
possui métodos como o GET, que é usado para solicitar dados
de um recurso específico, e o POST, que é usado para enviar
dados para um servidor.
Questão 2 - Resposta A
Resolução: Os JSPs, como servlets, são programas do lado do
servidor executados dentro de um servidor HTTP compatível
com Java. Eles foram desenvolvidos para criarmos conteúdo
web dinâmicos, como acessar um banco de dados no servidor
e retorná-lo ao cliente. Tornam a criação e a manutenção
de páginas dinâmicas HTML muito mais fácil do que o
servlet, sendo, por isso, mais conveniente para lidar com a
apresentação.
23
INÍCIO TEMA 1 TEMA 2 TEMA 3 TEMA 4
TEMA 3
25
Figura 1 - Diagrama de sequência
Referências bibliográficas
PRESSMAN, R. Engenharia de software: uma abordagem profissional. São
Paulo: Bookman. 2016.
27
maioria dos aplicativos modernos, fazer uma escolha incorreta pode
significar um tempo de inatividade substancial ou perda de dados.
28
• SELECT: usado para recuperação de dados das tabelas.
Exemplo: SELECT * FROM nometabela.
Referências bibliográficas
MYSQL. MySQL. Disponível em: https://www.mysql.com/. Acesso em: 26 mar.
2021.
TEORIA EM PRÁTICA
29
visualização e controlador. A metodologia MVC desempenha
um papel muito importante para projetar uma interação mais
eficiente com os aplicativos de modelos de dados, sendo usado,
principalmente, nas linguagens de programação Java, ASP .NET e
Smalltalk.
LEITURA FUNDAMENTAL
Indicações de leitura
Indicação 1
30
Indicação 2
QUIZ
31
Assinale a alternativa que completa adequadamente as
lacunas:
32
GABARITO
Questão 1 - Resposta A
Resolução: As três camadas do MVC estão interconectadas,
onde a view é responsável pela interface e é por onde o usuário
interage com a aplicação; a camada modelo está relacionada
aos dados e permite a reutilização de um mesmo objeto em
views diferentes; a camada do controlador contém a lógica do
negócio, com as classes lógicas da aplicação.
Questão 2 - Resposta A
Resolução: Um Managed Bean é uma classe regular Java que
possui a lógica de negócios da uma aplicação. Deve possuir
uma marcação @ManagedBean, caso contrário, a classe
apresentará um erro. Também deve possuir um método
construtor com zero parâmetro e, por fim, métodos públicos get
e set para as variáveis.
33
INÍCIO TEMA 1 TEMA 2 TEMA 3 TEMA 4
TEMA 4
35
• JPQL e consultas nativas: JPQL é a linguagem de consulta do
JPA, muito semelhante ao SQL. Isso permite definir consultas
com base no modelo de domínio mapeado, em vez do
modelo de tabela do banco de dados. Para executar consulta
com JPQL, é necessário chamar o método createQuery do
EntityManager. Por outro lado, se deseja utilizar os comandos
nativos do SQL, basta chamar o método createNativeQuery e
passar a consulta SQL por parâmetro.
36
• TransactionFactory: responsável por criar transações.
Referências bibliográficas
HIBERNATE. Hibernate ORM. Disponível em: https://hibernate.org/orm. Acesso
em: 26 mar. 2021.
37
Como em JPA, lidamos com objetos que são representações Java de
tabelas de banco dados, precisamos de uma maneira diferente de
estabelecer um relacionamento entre duas entities.
Relacionamento um-para-um:
38
Relacionamento muitos-para-muitos:
Referências bibliográficas
COELHO, H. JPA Eficaz: as melhores práticas de persistência de dados em Java.
São Paulo: Casa do Código, 2014.
TEORIA EM PRÁTICA
39
modo, aponte as características entre essas bibliotecas e como se
relacionam.
LEITURA FUNDAMENTAL
Indicações de leitura
Indicação 1
Indicação 2
40
Para realizar a leitura, acesse a plataforma Biblioteca Virtual e
busque pelo título da obra no parceiro Biblioteca Virtual 3.0_Pearson.
QUIZ
41
2. O _________ é um framework Java que implementa _________
do _________ para persistência de dados. Trata-se de uma
ferramenta _________ de código aberto e leve, cujo objetivo
é de simplificar o desenvolvimento de aplicações Java para
interagir com o banco de dados.
GABARITO
Questão 1 - Resposta A
Resolução: JDBC é uma interface de programação de baixo
nível entre um aplicativo Java e um banco de dados. Desse
modo, usamos o JDBC para obter uma conexão com o banco
de dados e, a partir dessa conexão, podemos emitir comandos
SQL puro. Logo, para utilizar o JDBC, é importante que o
desenvolvedor tenha um conhecimento de SQL. O JPA é uma
especificação de alto nível, se comparada ao JDBC, uma vez que
suas implementações são executadas acima do JDBC.
42
Questão 2 - Resposta A
Resolução: O JPA é um conjunto de especificações para
persistência e acesso ao banco de dados. O JPA necessita
de uma implementação de Object Relational Mapping (ORM)
para trabalhar e persistir objetos em Java. Existem várias
implementações do JPA e a principal delas é o Hibernate, um
ORM que automatiza o mapeamento dos objetos da aplicação
na base de dados.
43
BONS ESTUDOS!