Buscar

Programação orientada a objetos 3 AVA2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
UNIVERSIDADE VEIGA DE ALMEIDA
Programação para dispositivos móveis
AVA2
Criação de aplicativo Web usando interface JSF e
modelos de arquitetura MVC, com integração dos
recursos das bibliotecas JPA
Prof. PAULO MÁRCIO SOUZA FREIRE
Marcio Rodrigues de Freitas
RIO DE JANEIRO
Junho/2022
2
Introdução:
O trabalho tem como objetivo, continuar a trabalhar classes em java,
passando por filtros, usando criação de XHTML e trabalhando o objeto
managebean.
3
Sumário:
Conteúdo………………………………………….4
Conclusão………………………………………...13
Referencia………………………………………...14
4
Conteúdo:
A) Uma descrição detalhada do modelo de arquitetura MVC:
Vantagens de utilizar esse modelo.MVC é nada mais que um padrão de arquitetura
de software, separando sua aplicação em 3 camadas. Camada de interação do
usuário (view), camada de processamento de dados (model), camada de controle
(controller).
Model: Sempre que você pensa em manipulação de dados, os modelos vêm à
mente. Ele é responsável por ler e gravar dados e validá-los.
View: O nível de interação do usuário. Exibe apenas dados.
Controller: é responsável por receber todas as solicitações do usuário. Seus
métodos chamados actions são responsáveis pela página, controlando o modelo a
ser utilizado e a visualização que será exibida ao usuário. Conforme vem crescendo
a complexidade dos sistemas e sites desenvolvidos atualmente, essa arquitetura se
concentra em dividir um grande problema em problemas menores. Portanto,
qualquer tipo de alteração em uma das camadas não interferirá nas demais
camadas, facilitando a atualização de layouts, alteração de regras de negócios e
manutenção de código.
Alguns benefícios do uso do MVC:
Facilita a reutilização de códigos;
Fácil de manter e aumentar os recursos;
Mais consolidação de equipe e/ou divisão de trabalho;
Muitas tecnologias adotaram essa arquitetura.
Facilidade de manter seu código sempre limpo;
5
B) descreva a configuração das unidades de persistência no
arquivo “persistence.xml”
Persistence.xml é um arquivo de configuração usado pelo JPA. O conteúdo deste
arquivo contém informações como URL, nome de usuário, senha. Além de conter
um mapa das classes que são transformadas ou se tornaram tabelas, esse
mapeamento é feito com anotações. Um exemplo de um arquivo persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://
www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://
java.sun.com/xml/ns/persistence/persistence_2_0.xsd" >
<persistence-unit name="Hello" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence </provider>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="javax.persistence.jdbc.driver" value="com.mys
ql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql
://127.0.0.1:3306/Hello"/>
<property name="javax.persistence.jdbc.user" value="root" />
6
<property name="javax.persistence.jdbc.password" value="root"
/>
<property name="hibernate.dialect" value="org.hibernate.diale
ct.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
Em <persistence-unit name=”Hello” transaction-type=”RESOURCE_LOCAL”>
Temos duas configurações importantes, que são definidas.
Em unit name define sobre a configuração, que vai ser utilizada. Podemos ter varios
tipos como transaction-type, no mesmo arquivo, que define como será o tipo de
transação.
Em <provider>org.hibernate.ejb.HibernatePersistence</provider> é idicado qual vai
ser o provider da aplicação Já, hibernate.show_sql faz com que a exibição do SQL
gerado, seja habilitado.
Em javax.persistence.jdbc.driver é definido o agente de conexão com o banco de
dados que é utilizado, javax.persistence.jdbc.url é a URL do banco de dados juntos
com o schema.
Em javax.persistence.jdbc.user e javax.persistence.jdbc.password usuário e
senha do banco de dados.
Em hibernate.dialect o dialeto que o Hibernate irá utilizar.
7
C) descreva o mapeamento objeto-relacional das entidades, no
qual as classes da aplicação são estruturadas para tabelas do
banco de dados pela anotação “@Entity”.
O mapeamento objeto-relacional foi desenvolvido para abstrair A diferença entre o
modelo relacional e o paradigma orientado a objetos. No java, após a especificação
JPA, com as implementações, como Hibernate, EclipseLink e OpenJPA. Assim
sendo, é só fazer o uso das anotações que são disponibilizadas pela JPA. para
viabilizar o
mapeamento, evitando assim criar fortes dependências com as implementações.
A anotação @Entity é usada para informar que uma classe também é uma entidade.
A partir daí, a JPA vai estabelecer a ligação entre as entidades e uma tabela com o
mesmo nome, que esteja no banco de dados, onde os dados desse tipo de objeto
poderão persistir. Uma entidade representa, uma tabela do banco de dados, e cada
uma das instâncias dessa entidade, representa uma linha da tabela.
@entity
public class Carro {
}
Neste código, a classe Carro será uma entidade e terá uma tabela de mesmo
nome no banco de dados. Objetos do tipo Carro, quando persistidos, terão
seus dados armazenados nessa tabela.
8
D) descreva os métodos para a inicialização e a finalização das
unidades de persistência usando a interface
javax.servlet.Filter.
Filtros são as classes que permitem que o código seja executado antes da
requisição e depois que foi gerada a resposta.
Para criar filtros utilizando a API de Servlets, basta ser criado uma classe que
implemente a interface javax.servlet.Filter e anotarmos a classe com
@WebFilter.
assim que for implementada a interface Filter, nós temos que implementar 3
métodos, fazendo assim tambem em javax.servlet.Servlet, estão associados ao ciclo
de vida do objeto:
Init (FilterConfig config) – é usado para fazer a inicialização (start) do filtro.assim que
a aplicação web é chamada, o mesmo é iniciado. O parâmetro FilterConfig obtem os
parâmetros de configuração do filtro definidos no descritor web.
Destroy() – chamado quando a aplicação web é finalizada.
DoFilter (ServletRequest request, ServletResponse response, FilterChain
chain) – É o principal método da interface, método principal da interface, pois é nele
que o filtro realiza seu
trabalho. Veja também que a assinatura é praticamente igual no método service() de
Servlet, exceto pela presença de um parâmetro adicional, como exemplo o
FilterChain.
Um filtro vai além de um servlet, é possível também fechar “a porta” com o
mesmo,esse power vem do argumento FilterChain (a cadeia de filtros).Ele permite
que nós indiquemos ao container que o request tem que prosseguir com seu
processamento. Isso é
feito com uma chamada do método doFilter da classe FilterChain :
9
E) descreva os métodos para a abertura e a confirmação das transações da
aplicação usando a interface javax.servlet.Filter. Implemente o tratamento de
exceções.
public vold doFllter(servletRequest req, ServletResponse res,
FilterChain fc) throws IOEXCeption, ServletException, FacesException {
HttpServletRequest hreq (HttpServletRequest) req;
HttpservletResponse resp (HttpServlet Response) res;
Hibernateutil.beginTransaction ().;
try {
fc.doFilter (req, res);
HibernateUtil.commit Transaction () ;
} catch (EXception e) {
HibernateUtil. rollbackTransaction () ;
resp.sendRedirect ("erro.jsf")
throw new ServletException (e) ;
} finally {
HibernateUt il.closeSession ();
}
}
10
F) crie um objeto “Managed Bean” para gerar um número randômico entre
zero e um valor numérico inserido pelo usuário usando o método
“Random” da biblioteca “Math”. Ao final, guarde o valor em uma
propriedade do “Managed Bean”.
package random.bean
import java.io.Serializable;
import java.util.Random;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext ;
import javax.servlet.http.HttpSession;@ManagedBean
@sessionscoped
public class RandomNumberBean implements Serializable {
public static void main (String [] args) {
Random gerador new Random );
for (int i = 0; i < 10; i++) {
System.out.printIn (gerador.nextInt (23) );
}
}
FacesContext context - FacesContext.getCurrentNumber () ;
NumberGenerated NumberGenerated = (NumberGenerated)
context.getELContext () -getELResolver()
.getValue (context.getELContext (),
null, "NumberGenerated");
}
11
G) crie uma página XHTML de entrada de dados pelo usuário.
<xml version="1.0 encoding= “IS0-8859-1”?>
<!DOCTYPE html PUBLIC“-//W3C//DTD XHTML 1.e strict//EN”
https://www.W3.org/TR/xh
<html xmlns="https://www. w3.org/1999/xhtml"
xmlns:h="https://java.sun.com/jsf/html
xmlns : f-"https ://java. sun.com/jsf/core"
>
<h:head>
<meta http-equiv-"Content- Type" content-" text/html; charset-ISO-8859- 1" />
<title>Random Number</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns= "2">
<h:output Label value="Number:" />
<h:input Text value="#{number.Number} " />
<h:commandButton value="Gerar" action= "#{number.gerar}" />
</h:panelGrid>
<h:messages/>
</h:form>
</h:body>
</html>
12
H) crie uma página XHTML de resposta para exibir o número aleatório
gerado.
<?Xml version= 1.0 encoding=”iso-8859-1”?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
https://www.w3.org/TR/xh
<html xmlns="https://www.w3.org/1999/xhtml”
Xxmlns:h="https://java. sun.com/jsf/html”
xmlns:f="https://java. sun.com/jsf/core”
>
<h:head>
<meta http-equiv-"Content - Type" content="text/html; charset-IS0-8859-1" />
<title>Success!!</title>
</h:head>
<h:body>
Number Generated Successful !!!
</h:body>
</html>
13
Conclusção:
O projeto foi feito usando as ferramentas e métodos pedidos, assim como a
implantação de filtros e criação de Xhtml, exception e etc.
14
Referencia Bibliografica:
EBOOK Matéria - UVA
DEITEL, P.. Java: como programar. 10. ed. São Paulo: Pearson Education do
Brasil, 2017. Biblioteca Virtual.
Guia de Referência JSF – JavaServer Faces. Devmedia (Links para um site
externo.), (Links para um site externo.) 2020. Acesso em: 29 set. 2020
ORACLE CORPORATION. JSR 366: Java Platform, Enterprise Edition 8 (Java
EE 8) Specification. Java Community Process (Links para um site externo.),
2020. (Links para um site externo.) Acesso em: 27 set. 2020.
https://www.javaavancado.com/servlet-filter-de-autenticacao/

Continue navegando