Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Desenvolvimento Web I / Aula
Vamos agora estudar o conteúdo desse arquivo, o qual será apresentado aos poucos, iniciando-se pela Listagem 4.1. Nas primeiras duas linhas do arquivo, vemos a declaração das taglibs c e fmt. Em seguida, temos a montagem da parte superior da tela, a qual é a mesma da tela inicial do sistema e de todas as outras. Isso quer dizer que estamos duplicando código, não é mesmo? Duplicar código significa aumentar, desnecessariamente, o tamanho do código-fonte, além de dificultar a manutenção e entendimento do sistema. Mas, não se preocupe, na próxima aula, depois de entender bem o código da tela de catálogo, veremos como tratar esse problema!
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>
Minha Livraria Virtual
</title>
</head>
<body bgcolor="#FFFFFF">
<center>
<hr>
<br>
<h1>
<img width="50" src="../imagem/livro.gif">
<font size="+3">Minha Livraria Virtual</font>
<img width="50" src="../imagem/livro.gif">
</h1>
</center>
<br>
<hr>
O restante do conteúdo do arquivo catalogo.jsp irá acessar o sistema da livraria virtual para fazer consulta a livros disponíveis etc. Essas consultas exigirão o uso da classe LivrariaBean, mostrada na Listagem 5. Essa classe representa um bean que irá implementar as operações necessárias para a execução do arquivo JSP. Podemos ver que essa classe tem como atributo o próprio sistema da livraria (atributo sistema, do tipo Livraria) e um atributo idLivro do tipo String. O primeiro atributo receberá, como veremos adiante, o objeto Livraria armazenado no contexto dos Servlets. Já o segundo atributo representa o identificador do livro escolhido pelos usuários em operações como adicionar um livro ao carrinho.
Observe nessa classe como funciona os métodos getLivro() e getLivros(). O primeiro retorna o objeto do tipo Livro, que possui identificador igual ao do atributo idLivro. Já o segundo método retorna todos os livros em estoque na livraria. Por fim, temos o método comprarLivros(), que realiza a compra dos livros existentes no carrinho de compras recebido como parâmetro. Esses métodos fazem uma “ponte”, ou seja, uma interligação entre o código dos arquivos JSP e o sistema (classe Livraria). Dessa forma seu código fica mais organizado, isolando a camada de apresentação de HTML (no JSP), as ações a serem realizadas no LivrariaBean e mantém o processamento dos dados na classe Livraria. Veremos seu uso à medida que apresentamos os códigos JSP.
package livraria.negocio;
import java.util.List;
import livraria.negocio.excecoes.CompraException;
import livraria.negocio.excecoes.LivroNaoEncontradoException;
public class LivrariaBean {
private Livraria sistema = null;
private String idLivro = "0";
public LivrariaBean() {
}
public void setIdLivro(String id) {
this.idLivro = id;
}
public void setSistema(Livraria livraria) {
this.sistema = livraria;
}
public Livro getLivro() throws LivroNaoEncontradoException {
return (Livro) sistema.getLivro(idLivro);
}
public List<Livro> getLivros() {
return sistema.getLivros();
}
public void comprarLivros(CarrinhoCompras cart) throws CompraException {
sistema.comprarLivros(cart);
}
}
Versão 5.3 - Todos os Direitos reservados