Buscar

Programacao orientada a objetos 3 AV2

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

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

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ê viu 3, do total de 7 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

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

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ê viu 6, do total de 7 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

Prévia do material em texto

Programação orientada a objetos 3
Criação de aplicativo Web usando interface JSF emodelos de arquitetura MVC, com integração dosrecursos das bibliotecas JPA
	
Nome: Juliana Tavares Lacerda da Rocha
Matrícula: 1200104960
Turno: EAD
OBJETIVO:
Em um aplicativo Web com persistência de dados, é preciso criar páginas para permitir a interação com os usuários, como a entrada de dados para posterior tratamento pela aplicação. Também é necessária a integração com as funcionalidades da biblioteca Java Persistent API – JPA para armazenamento das informações no banco de dados e implementação do tratamento de exceções de forma adequada.
No desenvolvimento de aplicações Web, a interação com o usuário é feita por meio das páginas JSF usando o padrão de arquitetura MVC. Por outro lado, as aplicações Web também precisam de funcionalidades de persistência dos dados realizada pela integração com a interface JPA. Dessa forma, torna-se necessário configurar e integrar os recursos de ambas as ferramentas, além da implementação do tratamento de exceções de forma adequada. 
Crie um aplicativo Web para a geração de um número aleatório pelo usuário utilizando o padrão MVC pela tecnologia JSF e a integração com a biblioteca JPA.
Procedimentos para elaboração:
Para a elaboração do trabalho, você deverá utilizar fonte Arial com tamanho 12 e páginas formato A4. Considere as normas ABNT. 
Resposta:
1. Descreva de forma detalhada as características do modelo de arquitetura MVC, relacionando pelo menos duas vantagens de utilizar esse modelo (mínimo de 10 linhas). 
R: O modelo de arquitetura MVC (Model-View-Controller) é uma abordagem de design amplamente utilizada no desenvolvimento de aplicativos e sistemas de software. Ele divide uma aplicação em três componentes principais: Model (Modelo), View (Visualização) e Controller (Controlador). Aqui estão as características do modelo MVC:
Modelo (Model): O modelo representa os dados e a lógica de negócios da aplicação. Ele gerencia o estado dos dados, realiza operações de leitura e gravação e implementa as regras de negócios. O modelo é independente da interface do usuário e pode ser reutilizado em diferentes visualizações.
Visualização (View): A visualização é responsável pela apresentação dos dados ao usuário. Ela exibe a interface do usuário e interage com o usuário para receber entradas. A visualização não contém lógica de negócios; seu papel é apenas mostrar os dados fornecidos pelo modelo.
Controlador (Controller): O controlador atua como intermediário entre o modelo e a visualização. Ele recebe as entradas do usuário da visualização e as processa. Com base nessas entradas, o controlador atualiza o modelo e solicita à visualização que atualize sua exibição. Ele também lida com a lógica de fluxo de controle da aplicação.
Vantagens do modelo MVC:
Separação de preocupações: O MVC permite uma separação clara das responsabilidades entre os componentes. O modelo lida com a lógica de negócios, a visualização trata da interface do usuário e o controlador gerencia a interação entre eles. Isso facilita a manutenção do código, o reuso e a escalabilidade, pois as alterações em um componente não afetam necessariamente os outros.
Facilidade de teste: O MVC suporta testes unitários eficientes. Como o modelo é independente da interface do usuário, é possível testá-lo isoladamente, validando a lógica de negócios sem a necessidade de interação com a interface gráfica. Da mesma forma, a visualização pode ser testada separadamente, simulando entradas e verificando as respostas.
Essas são apenas duas das várias vantagens do modelo MVC, mas elas demonstram a importância da separação de preocupações e da facilidade de teste proporcionadas por essa arquitetura.
2. Descreva a configuração das unidades de persistência no arquivo “persistence.xml”. 
R: O arquivo "persistence.xml" é um arquivo de configuração utilizado em projetos Java que fazem uso da tecnologia de persistência JPA (Java Persistence API). Nesse arquivo, são definidas as configurações relacionadas às unidades de persistência, que representam as conexões com os bancos de dados. Abaixo, descrevo a configuração das unidades de persistência no arquivo "persistence.xml":
· Declaração do arquivo XML: O arquivo "persistence.xml" é um arquivo XML que geralmente é colocado no diretório "META-INF" do projeto.
· Declaração do namespace: No início do arquivo, é necessário declarar o namespace utilizado pelo arquivo XML. Geralmente, é utilizado o namespace "http://java.sun.com/xml/ns/persistence".
· Configuração da unidade de persistência: É necessário definir a unidade de persistência no elemento <persistence-unit>. Esse elemento possui um atributo "name" para fornecer um nome único para a unidade de persistência.
· Configuração do provedor de persistência: Dentro do elemento <persistence-unit>, é necessário especificar o provedor de persistência que será utilizado. Isso é feito por meio do elemento <provider>, que contém o nome da classe do provedor de persistência, como "org.hibernate.jpa.HibernatePersistenceProvider" para o provedor Hibernate.
· Configuração da conexão com o banco de dados: Dentro do elemento <persistence-unit>, é possível definir as configurações de conexão com o banco de dados por meio do elemento <properties>. Dentro desse elemento, são especificadas as propriedades de configuração, como URL de conexão, nome de usuário, senha, entre outras.
· Mapeamento de classes: Também dentro do elemento <persistence-unit>, é possível especificar o mapeamento das entidades (classes de domínio) com as tabelas do banco de dados. Isso é feito por meio do elemento <class>, onde cada classe é especificada usando seu nome totalmente qualificado.
Esses são os principais aspectos da configuração das unidades de persistência no arquivo "persistence.xml". No entanto, é importante destacar que os detalhes exatos podem variar dependendo do provedor de persistência utilizado, como Hibernate, EclipseLink, entre outros. Cada provedor pode ter configurações adicionais específicas.
3. 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 é uma técnica utilizada na persistência de dados, onde as classes de uma aplicação são mapeadas para tabelas de um banco de dados relacional. No contexto do Java e JPA, o mapeamento é feito através da anotação "@Entity", que indica que uma classe representa uma tabela no banco de dados. Os atributos da classe são mapeados para colunas da tabela, podendo ser personalizados com a anotação "@Column". O identificador da entidade é definido com a anotação "@Id", podendo ser gerado automaticamente com a anotação "@GeneratedValue". Para relacionamentos entre entidades, são utilizadas anotações como "@OneToOne", "@OneToMany" e "@ManyToMany". O mapeamento objeto-relacional permite a persistência e recuperação de dados de forma transparente para o desenvolvedor.
4. Descreva os métodos para a inicialização e a finalização das unidades de persistência usando a interface javax.servlet.Filter. 
A interface javax.servlet.Filter é utilizada em aplicações web Java para interceptar e processar requisições e respostas. Por meio dessa interface, é possível implementar os métodos init() e destroy() para realizar a inicialização e a finalização da unidade de persistência, respectivamente. No método init(), é realizada a configuração da unidade de persistência, enquanto no método destroy(), ocorre a finalização da unidade de persistência, liberando recursos e encerrando conexões com o banco de dados. Esses métodos podem ser utilizados para garantir a correta inicialização e finalização da unidade de persistência durante o ciclo de vida da aplicação web.
5. 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. 
A interface javax.servlet.Filter pode ser usada em aplicações web Java para interceptare processar requisições e respostas. Por meio dessa interface, é possível implementar os métodos init(), doFilter(), e destroy() para realizar a abertura e a confirmação de transações na aplicação, além de lidar com exceções. A abertura da transação é feita com entityManager.getTransaction().begin(), seguida pelo processamento do filtro. Em caso de sucesso, a transação é confirmada com entityManager.getTransaction().commit(), enquanto em caso de exceção, o rollback é realizado com entityManager.getTransaction().rollback(). O método destroy() permite a finalização dos recursos relacionados ao controle transacional. Essa implementação garante o controle adequado das transações na aplicação web, além do tratamento de exceções.
6. 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”. 
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import java.util.Random;
@ManagedBean
@SessionScoped
public class RandomNumberBean {
 private int userInput;
 private double randomNumber;
 public int getUserInput() {
 return userInput;
 }
 public void setUserInput(int userInput) {
 this.userInput = userInput;
 }
 public double getRandomNumber() {
 return randomNumber;
 }
 public void generateRandomNumber() {
 Random random = new Random();
 randomNumber = random.nextDouble() * userInput;
 }
}
7. Crie uma página XHTML de entrada de dados pelo usuário. 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:f="http://java.sun.com/jsf/core">
<head>
 <title>Entrada de Dados</title>
</head>
<body>
 <h:form>
 <h:panelGrid columns="2">
 <h:outputLabel for="userInput" value="Digite um valor numérico: " />
 <h:inputText id="userInput" value="#{randomNumberBean.userInput}" />
 <h:commandButton value="Gerar Número" action="#{randomNumberBean.generateRandomNumber}" />
 </h:panelGrid>
 </h:form>
</body>
</html>
8. Crie uma página XHTML de resposta para exibir o número aleatório gerado.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:f="http://java.sun.com/jsf/core">
<head>
 <title>Resposta</title>
</head>
<body>
 <h:outputText value="Número Aleatório Gerado: #{randomNumberBean.randomNumber}" />
</body>
</html>

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes