Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

<p>Rio de Janeiro - RJ</p><p>2024</p><p>DANIEL ESCOVINO COELHO</p><p>PROGRAMAÇÃO ORIENTADA A OBJETOS III</p><p>Criação de aplicativo Web usando interface JSF e modelos de arquitetura MVC,</p><p>com integração dos recursos das bibliotecas JPA</p><p>Introdução</p><p>O objetivo deste trabalho é continuar explorando classes em Java, abordando filtros,</p><p>criação de XHTML e trabalhando com Managed Beans.</p><p>A) Uma descrição detalhada do modelo de arquitetura MVC:</p><p>MVC é um padrão de arquitetura de software que divide uma aplicação em três</p><p>camadas: interação do usuário (view), processamento de dados (model) e controle</p><p>(controller).</p><p>Model: Responsável pela manipulação dos dados, leitura, gravação e validação.</p><p>View: Exibe os dados e interage com o usuário.</p><p>Controller: Recebe todas as solicitações do usuário, controlando o modelo a ser</p><p>utilizado e a visualização a ser exibida.</p><p>A arquitetura MVC é eficiente para lidar com a complexidade crescente dos</p><p>sistemas, facilitando a manutenção e atualização do código, além de promover a</p><p>reutilização de código e a divisão de trabalho.</p><p>B) descreva a configuração das unidades de persistência no arquivo “persistence.xml”</p><p>O arquivo persistence.xml é usado pelo JPA para configuração. Ele contém</p><p>informações como URL, nome de usuário, senha e o mapeamento das classes</p><p>transformadas em tabelas, realizado com anotações.</p><p>Exemplo de persistence.xml:</p><p>xml</p><p><persistence></p><p><persistence-unit name="myPersistenceUnit" transaction-</p><p>type="RESOURCE_LOCAL"></p><p><provider>org.hibernate.ejb.HibernatePersistence</provider></p><p><properties></p><p><property name="hibernate.show_sql" value="true"/></p><p><property name="javax.persistence.jdbc.driver"</p><p>value="com.mysql.cj.jdbc.Driver"/></p><p><property name="javax.persistence.jdbc.url"</p><p>value="jdbc:mysql://localhost:3306/mydb"/></p><p><property name="javax.persistence.jdbc.user" value="username"/></p><p><property name="javax.persistence.jdbc.password" value="password"/></p><p></properties></p><p></persistence-unit></p><p></persistence></p><p>C) Descreva o mapeamento objeto-relacional das entidades, no qual as classes da</p><p>aplicação são estruturadas para tabelas do banco de dados pela anotação “@Entity”.</p><p>O mapeamento objeto-relacional abstrai a diferença entre o modelo relacional e o</p><p>paradigma orientado a objetos. No Java, após a especificação JPA, podemos usar</p><p>anotações para viabilizar o mapeamento. A anotação @Entity indica que uma classe</p><p>é uma entidade e será mapeada para uma tabela no banco de dados.</p><p>Exemplo:</p><p>java</p><p>@Entity</p><p>public class Carro {</p><p>// Atributos e métodos da classe</p><p>}</p><p>D) Descreva os métodos para a inicialização e a finalização das unidades de persistência</p><p>usando a interface javax.servlet.Filter.</p><p>Filtros são classes que permitem a execução de código antes da requisição e após a</p><p>geração da resposta. Para criar um filtro, implemente a interface javax.servlet.Filter e</p><p>anote a classe com @WebFilter.</p><p>Métodos principais:</p><p>init(FilterConfig config): Inicializa o filtro.</p><p>destroy(): Finaliza o filtro.</p><p>doFilter(ServletRequest request, ServletResponse response, FilterChain chain):</p><p>Executa o filtro.</p><p>E) Descreva os métodos para a abertura e a confirmação das transações da aplicação</p><p>usando a interface javax.servlet.Filter. Implemente o tratamento de exceções.</p><p>Implemente o tratamento de exceções ao abrir e confirmar transações.</p><p>Exemplo:</p><p>java</p><p>public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc)</p><p>throws IOException, ServletException {</p><p>HttpServletRequest hreq = (HttpServletRequest) req;</p><p>HttpServletResponse hres = (HttpServletResponse) res;</p><p>HibernateUtil.beginTransaction();</p><p>try {</p><p>fc.doFilter(req, res);</p><p>HibernateUtil.commitTransaction();</p><p>} catch (Exception e) {</p><p>HibernateUtil.rollbackTransaction();</p><p>hres.sendRedirect("erro.jsf");</p><p>throw new ServletException(e);</p><p>} finally {</p><p>HibernateUtil.closeSession();</p><p>}</p><p>}</p><p>F) Crie um objeto “Managed Bean” para gerar um número randômico entre zero e um</p><p>valor numérico inserido pelo usuário usando o método “Random” da biblioteca “Math”.</p><p>Ao final, guarde o valor em uma propriedade do “Managed Bean”.</p><p>Crie um Managed Bean que gera um número aleatório entre zero e um valor</p><p>fornecido pelo usuário utilizando a classe Random da biblioteca Math.</p><p>java</p><p>package random.bean;</p><p>import java.io.Serializable;</p><p>import java.util.Random;</p><p>import javax.faces.bean.ManagedBean;</p><p>import javax.faces.bean.SessionScoped;</p><p>import javax.faces.context.FacesContext;</p><p>@ManagedBean</p><p>@SessionScoped</p><p>public class RandomNumberBean implements Serializable {</p><p>private int maxValue;</p><p>private int randomValue;</p><p>public int getMaxValue() {</p><p>return maxValue;</p><p>}</p><p>public void setMaxValue(int maxValue) {</p><p>this.maxValue = maxValue;</p><p>}</p><p>public int getRandomValue() {</p><p>return randomValue;</p><p>}</p><p>public void generateRandomValue() {</p><p>Random gerador = new Random();</p><p>this.randomValue = gerador.nextInt(maxValue);</p><p>}</p><p>}</p>

Mais conteúdos dessa disciplina