P. 1
Desenvolva Passo a Passo Um Sistema Web Utilizando Java, Hibernate e JSP [ Benefrancis do Nascimento ]

Desenvolva Passo a Passo Um Sistema Web Utilizando Java, Hibernate e JSP [ Benefrancis do Nascimento ]

5.0

|Views: 24,355|Likes:
Published by Benefrancis
Neste material mostrarei passo a passo o desenvolvimento de uma aplicação web utilizando programação orientada a objeto com Java em conjunto com o framework para mapeamento objeto relacional Hibernate. É indicado para estudantes e profissionais que queiram aprender Java para web, porém que procuram desenvolver softwares mais próximos do que o mercado atualmente exige. Neste material desenvolveremos um sistema para controlar um petshop contendo diversas operações que interagem com banco de dados.
Neste material mostrarei passo a passo o desenvolvimento de uma aplicação web utilizando programação orientada a objeto com Java em conjunto com o framework para mapeamento objeto relacional Hibernate. É indicado para estudantes e profissionais que queiram aprender Java para web, porém que procuram desenvolver softwares mais próximos do que o mercado atualmente exige. Neste material desenvolveremos um sistema para controlar um petshop contendo diversas operações que interagem com banco de dados.

More info:

Published by: Benefrancis on Dec 03, 2010
Copyright:Traditional Copyright: All rights reserved

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

10/18/2015

pdf

Benefrancis do Nascimento

SISTEMA WEB

 
 
 
 
 
Neste  material  mostrarei  passo  a  passo  o 
desenvolvimento  de  uma  aplicação  web 
utilizando programação orientada a objeto 
com  Java  em  conjunto  com  o  framework 
para  mapeamento  objeto  relacional 
Hibernate.  É  indicado  para  estudantes  e 
profissionais  que  queiram  aprender  Java 
para  web,  porém  que  procuram 
desenvolver  softwares  mais  próximos  do 
que  o  mercado  atualmente  exige.    Neste 
material  desenvolveremos  um  sistema 
para  controlar  um  petshop  contendo 
diversas  operações  que  interagem  com  
banco de dados. 
SISTEMA
WEB
Desenvolva passo a passo
um sistema web utilizando
Java, Hibernate e JSP.
Benefrancis do Nascimento 
Benefrancis do Nascimento
SISTEMA WEB

 
 
 
Nota do Autor
 
O material que o leitor tem em mãos, dirigido basicamente, mas não exlusivamente, a alunos 
de  graduação  e  pós  graduação  em  cursos  de  Ciencia  da  Computação  e  correlatos,  tem  como 
preocupação  fundamental  iniciá‐lo  no  desenvolvimento  de  aplicações  Java,  utilizando 
Hibernate em ambiente Web.  
O  objetivo  aqui  é  desenvolver  passo a  passo  um  sistema  em  Java  que  interage  com  banco  de 
dados  realcional  utilizando  o  framework  de  mapeamento  objeto  relacional  Hibernate.  Este 
sistema,  futuramente,  será  encaminhado  a  testes  de  desempenho  e  segurança  para  que,  em 
seguida,  possa  ser  evoluído.  Dessa  forma,  convido  você  a  participar  deste  projeto  que,  com 
certeza,  contribuirá  com  os  seus  estudos  e  futuramente  você  será  capaz  de  repassar  este 
conhecimento para outras pessoas.  
Não  indico  a  utilização  do  código  fonte  deste  material  para  desenvolvimento  de  sistema 
comercial, pois aspectos de segurança nesta obra não foram abordados. Desta forma, não me 
responsabilizo por qualquer dano que possa causar a quem quer que seja. 
Criticas  e  sugestões,  com  objetivo  de  alimentar  o  processo  de  melhoria  contínua  de  minhas 
obras, são bem vindas. O contato deverá ser estabelecido pelos meios abaixo. 
e‐mail: 
benefrancis@gmail.com 
twitter: 
@Benefrancis 
Skype: 
Benefrancis.com 
Desejo a todos muito sucesso. 
 
Benefrancis do Nascimento 
Benefrancis do Nascimento
SISTEMA WEB

 
 
 
 
 
 
 
Aos meus alunos do curso de Pós‐graduação em Desenvolvimento de Sistemas para Web da 
Faculdade Anhanguera – Campinas. 
Benefrancis do Nascimento
SISTEMA WEB

 
 
Nota do Autor ............................................................................................................................ 2 
Configurando o ambiente ............................................................................................................. 8 
Acessando o Mysql .................................................................................................................... 9 
Criando o banco de dados do sistema ...................................................................................... 9 
Criando uma aplicação Java para  web no Netbeans .............................................................. 10 
Criando os pacotes da nossa aplicação ................................................................................... 17 
Criando as classes da camada de controle .................................................................................. 18 
A Classe Pessoa ....................................................................................................................... 19 
Métodos da classe pessoa que interagem com o banco de dados ......................................... 21 
Mapeando a Classe Pessoa ..................................................................................................... 22 
A Classe PF ............................................................................................................................... 27 
Mapeando a Classe PF ............................................................................................................. 27 
A Classe PJ ............................................................................................................................... 28 
Mapeando a Classe PJ ............................................................................................................. 29 
A Classe Telefone .................................................................................................................... 30 
Métodos da classe Telefone que interagem com o banco de dados ...................................... 30 
Mapeando a Classe Telefone .................................................................................................. 31 
A classe Endereco .................................................................................................................... 35 
Métodos da classe Endereco que interagem com o banco de dados ..................................... 35 
Mapeando a classe Endereco .................................................................................................. 36 
A classe DocReceita ................................................................................................................. 40 
Mapeando a classe DocReceita ............................................................................................... 40 
A classe CPF ............................................................................................................................. 43 
A classe CNPJ ........................................................................................................................... 44 
A classe Animal ........................................................................................................................ 47 
Benefrancis do Nascimento
SISTEMA WEB

 
Métodos da classe Animal que interagem com o banco de dados ......................................... 47 
Mapeando a classe Animal ...................................................................................................... 48 
Informando ao Hibernate quais os atributos da classe animal que serão persistidos ........... 51 
A classe Cachorro .................................................................................................................... 53 
A classe Gato ........................................................................................................................... 54 
A classe abstrata Servico ......................................................................................................... 55 
Métodos da classe Servico que interagem com o banco de dados ........................................ 55 
Mapeando a Classe Servico ..................................................................................................... 57 
Informando ao Hibernate quais os atributos da classe Servico que serão persistidos ........... 58 
A classe Banho ......................................................................................................................... 60 
A classe Consulta ..................................................................................................................... 61 
A classe Tosa ........................................................................................................................... 62 
A classe Vacina ........................................................................................................................ 62 
Utilizando o Hibernate para criar as tabelas no banco de dados ............................................... 63 
Atualizando o arquivo hibernate.cfg.xml ................................................................................ 64 
Criando uma conexão com o hibernate .................................................................................. 65 
Criando uma classe para testar o funcionamento do Hibernate ............................................ 66 
Programando as classes DAO ...................................................................................................... 68 
Introdução ............................................................................................................................... 69 
Implementado os métodos da classe PessoaDAO .................................................................. 69 
Implementado os métodos da classe AnimalDAO .................................................................. 76 
Implementado os métodos da classe ServicoDAO .................................................................. 82 
Implementado os métodos da classe TelefoneDAO ............................................................... 89 
Implementado os métodos da classe EnderecoDAO .............................................................. 95 
Testando os métodos das classes do pacote DAO .................................................................... 101 
Salvando pessoa, telefone, endereço, animais e serviços. ................................................... 102 
Benefrancis do Nascimento
SISTEMA WEB

 
Criando as páginas JSP .............................................................................................................. 106 
Mapa do site .......................................................................................................................... 107 
Criando diretórios necessários .............................................................................................. 107 
Iniciando a programação das páginas JSP ............................................................................. 109 
Importando as classes necessárias ........................................................................................ 109 
Codificando arquivos do diretório geral ................................................................................... 115 
Codificando arquivos do diretório cadastros ............................................................................ 120 
Codificando arquivos do diretório serviços ............................................................................... 155 
Codificando arquivos do diretório consultas ............................................................................ 173 
Considerações finais .................................................................................................................. 265 
 
 
Benefrancis do Nascimento
SISTEMA WEB

 
 
Figura 1 ‐ Diagrama de classes do pacote controle
Benefrancis do Nascimento
SISTEMA WEB

 
 
 
 
 
 
 
 
 
 
 
 
Configurando o ambiente
Benefrancis do Nascimento
SISTEMA WEB

 
Acessando o Mysql
 
Iniciaremos a configuração do nosso ambiente de desenvolvimento, conectando com o Mysql. 
Para isso utilizaremos o HeidiSQL
1
. Conectamos com o usuário root em nossa máquina local. 
 
Figura 2 ‐ Conectando o Heidi SQL 
Criando o banco de dados do sistema
 
Criaremos agora o nosso database. Para isso, clique com o botão da direita do mouse 
no Treeview root@127.0.0.1; abrirá um menu suspenso no qual você deverá acessar a 
opção Create New / Database. A tela representad na imagem abaixo será aberta. 
Preencha os dados conforme a imagem abaixo. 
                                                           
1
 Disponível em: http://www.heidisql.com/ 
Benefrancis do Nascimento
SISTEMA WEB
10 
 
 
Figura 3 ‐ Criando o banco de dados com o nome estimacao 
Criando uma aplicação Java para web no Netbeans
 
Criaremos agora uma aplicação java para web no ide Netbeans
2
. Acesse o menu 
Arquivo / Novo projeto.  A configuração do projeto segue quatro passos que 
descreverei nas imagens a seguir.  
 
                                                           
2
 Disponível em: http://netbeans.org/ 
Benefrancis do Nascimento
SISTEMA WEB
11 
 
 
Figura 4 ‐ Criando uma aplicação Java para web no Netbeans [1 º Passo ] 
 
O primeiro passo consiste na escolha do projeto. No nosso caso a categoria do projeto 
será java Web e o projeto será Aplicação web. 
 
 
Benefrancis do Nascimento
SISTEMA WEB
12 
 
 
Figura 5 ‐ Criando uma aplicação Java para web no Netbeans [2 º Passo ] 
No segundo passo demos um nome para o projeto. O nome escolhido foi Estimacao. 
 
Figura 6 ‐ Criando uma aplicação Java para web no Netbeans [3 º Passo ] 
Benefrancis do Nascimento
SISTEMA WEB
13 
 
No terceiro passo deveremos escolher o servidor – container para a nossa aplicação. 
Escolha o Apache Tomcat. Para a versão do java EE você deverá escolher a 5 ou 
superior. O caminho do projeto será sugerido pelo Netbeans. Aceite a sugestão. 
 
 
Figura 7 ‐ Criando uma aplicação Java para web no Netbeans [4 º Passo ] 
O quarto passo será dividido em duas etapas. A primeira é escolher os frameworks que 
desejaremos trabalhar em nossa aplicação. Escolha somente o Hibernate 3.x.x. Para 
conexão com banco de dados o hibernate trabalha com dialeto, desta maneira ele 
saberá tratar as particularidades do banco de dados escolhido. Configuraremos uma 
nova conexão com banco de dados. A segunda etapa é apresentada na imagem abaixo: 
Benefrancis do Nascimento
SISTEMA WEB
14 
 
 
Figura 8 ‐ Segunda etapa do 4º passo da configuração do projeto Java para web 
A imagem acima mostra como deverá ser configurada a conexão com o banco de dados. 
Preencha conforme a imagem, porém você deverá saber qual o usuário e senha do seu banco 
de dados Mysql. Após o preenchimento clique em ok para aparecer a tela de finalização da 
configuração do projeto (imagem a seguir). 
 
Benefrancis do Nascimento
SISTEMA WEB
15 
 
Figura 9 ‐ Tela de finalização da configuração do projeto 
O seu projeto já está configurado para trabalhar com java para web utilizando o 
framework Hibernate. 
O Netbeans exibirá a estrutura de diretórios  conforme imagem a seguir, porém para 
visualizar o conteúdo do arquivo hibernate.cfg.xml, você deverá clicar na aba XML do 
referido arquivo. 
Benefrancis do Nascimento
SISTEMA WEB
16 
 
Figura 10 ‐ o conteúdo do arquivo hibernate.cfg.xml criado pelo ide Netbeans 
 
 
 
Figura 11 ‐ Alteramos o arquivo hibernate.cfg.xml 
Realizamos a primeira alteração no arquivo hibernate.cfg.xml com o objetivo de que: 
1º. Exiba no console os comandos sql; 
Benefrancis do Nascimento
SISTEMA WEB
17 
 
2º. Que os comandos sql sejam formatados; 
3º. Informando o tamanho do pool de conexões permitidas; 
4º. E, por fim, que o hibernate tenha permissão de criar tabelas na nossa base de 
dados.  
Falta apenas informar neste arquivo quais serão as classes da nossa aplicação que 
serão mapeadas para persistirem no banco de dados, mas informaremos após a 
criação, codificação e mapeamento das mesmas. 
 
Criando os pacotes da nossa aplicação
 
A  nossa  aplicação  terá  três  camadas,  porém  apenas  dois  pacotes,  pois  a  camada  de 
apresentação  será  composta  pelas  páginas  web  que  já  possuem  diretório  em  nosso  projeto. 
Veja imagem abaixo. 
 
Figura 12 ‐ Criando Pacotes: controle e modelo – A camada de visão será no diretório 
Páginas Web 
Cabe informar que apenas o arquivo hibernate.cfg.xml deverá permanecer no pacote padrão.
Benefrancis do Nascimento
SISTEMA WEB
18 
 
 
 
 
 
 
 
 
 
 
 

 
Criando as classes da camada de controle
Benefrancis do Nascimento
SISTEMA WEB
19 
 
A Classe Pessoa
 
 
Figura 13 ‐ Atributos da Classe abstrata Pessoa. 
 
No  momento  da  criação  dos  atributos  o  Netbeans  sugere  a  criação  das  classes.  Por 
exemplo,  ao  digitar  public  Collection<Telefone>  telefone  o  Netbeans  sugere  a  criação 
da  classe  telefone.  Aconselho  que  criem  imediatamente  conforme  o  Netbeans  vai 
sugerindo,  porém  depois  façam  as  devidas  alterações  visto  que,  por  exemplo,  ao 
digitar  public  DocReceita  docReceita  ele  sugere  a  criação  de  uma  classe,  mas 
conforme nosso diagrama UML, DocReceita é uma interface. Altere. 
 
 
Benefrancis do Nascimento
SISTEMA WEB
20 
 
 
Figura 14 ‐ Diretório após a criação das classes do pacote modelo 
Neste momento criei as classes DAO – Data Access Object ‐ Classes responsáveis pela 
camada de persistência na minha aplicação, mas sem nenhum código neste momento 
(apenas  para  podermos  referenciá‐las  nos  métodos  salvar,  alterar,  excluir  e  consultar 
nas  classes  do  pacote  controle).  Criaremos  também  uma  classe  para  testar  o 
funcionamento do Hibernate (detalharei estas classes mais adiante). 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
21 
 
Métodos da classe pessoa que interagem com o banco de dados
A seguir os métodos autenticar, existe, salvar, consultar, alterar e excluir da classe Pessoa. 
Quando estiver incluindo os métodos abaixo na classe Pessoa o Netbeans irá sugerir a criação 
dos métodos na classe PessoaDAO. Aceite a sugestão. 
public Autenticavel autenticar(String usuario, String senha) { 
        return PessoaDAO.autenticar(usuario, senha); 
    } 
 
    public boolean existe(String email) { 
        return PessoaDAO.existe(email); 
    } 
 
    public boolean existe(DocReceita documento) { 
        return PessoaDAO.existe(documento); 
    } 
 
    static public boolean salvar(Pessoa p) { 
        return PessoaDAO.salvar(p); 
    } 
 
    static public ArrayList<Pessoa> consultar() { 
        return PessoaDAO.consultar(); 
    } 
 
    static public Pessoa consultar(int idPessoa) { 
        return PessoaDAO.consultar(idPessoa); 
Benefrancis do Nascimento
SISTEMA WEB
22 
 
    } 
 
    static public Collection<Pessoa> consultar(String nome) { 
        return PessoaDAO.consultar(nome); 
    } 
 
    static public boolean alterar(Pessoa p) { 
        return PessoaDAO.alterar(p); 
    } 
 
    static public boolean excluir(Pessoa p) { 
        return PessoaDAO.excluir(p); 
    } 
 
 
Mapeando a Classe Pessoa
 
Iniciaremos o mapeamento Objeto Relacional da classe pessoa 
 
Informando que a Classe Pessoa dará origem a objetos que serão
persistidos
 
Precisamos informar ao Hibernate que a classe pessoa dará origem a objetos que serão 
persistidos em banco de dados. Para isso utilizamos a seguinte anotação: 
@Entity 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorColumn(name = "tipo") 
Benefrancis do Nascimento
SISTEMA WEB
23 
 
As anotações acima deverão ser inseridas antes do nome da classe. Veja imagem abaixo: 
Figura 15 ‐ Informando ao Hibernate que a Classe Pessoa será persistida e a estratégia de Herança 
utilizada 
Ao digitar as anotações o Netbeans sugere algumas importações, você deverá escolher as 
importações conforme as linhas que vão de 5 a 8 na imagem acima. 
Informando ao Hibernate qual será o id da tabela
 
O Netbeans ira sugerir a criação do id para hierarquia da classe, para criar o id – que será o id 
da tabela no banco de dados; insira o código abaixo antes do atributo idPessoa. Será 
necessário alterar de public para private o atributo idPessoa.  Não deixe de fazer as 
importações sugeridas pelo Netbeans, porém selecione sempre as que começam com 
javax.persistence 
 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int idPessoa; 
 
Benefrancis do Nascimento
SISTEMA WEB
24 
 
Informando ao Hibernate quais os atributos da classe pessoa que serão
persistidos
Necessitamos informar ao Hibernate quais atributos serão persistidos no banco de dados. Para 
isso deverão incluir as anotações conforme imagem abaixo: 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
25 
 
 
Benefrancis do Nascimento
SISTEMA WEB
26 
 
Figura 16 ‐ Atributos da classe pessoa que serão persistidos 
Encapsulando atributos da classe Pessoa
Para encapsular os campos da classe Pessoa  acesse o menú refatorar / encapsular campos. A 
tela abaixo será aberta. Selecione todos os campos e clique em refatorar. 
 
Figura 17 ‐ Encapsulando campos da classe Pessoa 

Criando métodos construtores para a classe Pessoa
Para criar métodos construtores para a classe telefone coloque o cursor em qualquer parte do 
código  fonte  da  classe  Pessoa,  sugiro  que  seja  logo  depois  dos  atributos,  de  o  comando  [  
control  +  espaço    ];  abrirá  o  menú  suspenso  conforme  a  imagem  abaixo.  Clique  em  cima  do 
método com o nome da classe (o mesmo que selecionei na imagem). Repita a operação agora 
selecionando o método sem atributos. 
Benefrancis do Nascimento
SISTEMA WEB
27 
 
Figura 18 ‐ Criando método construtor para a classe Pessoa 
Verifiquem em nosso diagrama de classes que Pessoa é classe ansestral das classes PF e PJ 
(Pessoa Física e Pessoa Jurídica respectivamente). Criaremos abaixo essas classes: 
 
A Classe PF
Iniciaremos a construção da classe que representará as Pessoas Físicas. 
 
 
 
Figura 19 ‐ A classe PF 
 
A classe PF herda os métodos e atributos da classe Pessoa, por este motivo o mapeamento 
desta classe é mais simples: bastará informar a estratégia de herança. Veja abaixo: 
 
Mapeando a Classe PF
Iniciaremos o mapeamento Objeto Relacional da classe PF. 
Informando que a Classe PF dará origem a objetos que serão persistidos 
Precisamos informar ao Hibernate que a classe PF dará origem a objetos que serão 
Benefrancis do Nascimento
SISTEMA WEB
28 
 
persistidos em banco de dados e que os objetos do tipo PF em nosso banco de dados possui 
identificador 1. Este é o valor que identifica que, dentre as classes filhas de Pessoa, o número 1 
será usado para PF. Veja a anotação: 
@Entity 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorValue("1") 
As anotações acima deverão ser inseridas antes do nome da classe. Veja imagem abaixo: 
 
 
 
Figura 20 ‐ Informando ao Hibernate que a Classe PF será persistida, a estratégia de Herança e o valor 
que a identifica entre as classes que são filhas da classe Pessoa 
A Classe PJ
Iniciaremos a construção da classe que representará as Pessoas Jurídicas. 
 
 
 
Figura 21 ‐ A classe PJ 
Benefrancis do Nascimento
SISTEMA WEB
29 
 
 
A classe PJ, assim como a classe PF, herda os métodos e atributos da classe Pessoa, por este 
motivo o mapeamento desta classe é semelhante ao da classe PF. Assim como PF, bastará 
informar a estratégia de herança. Veja abaixo: 
Mapeando a Classe PJ
Iniciaremos o mapeamento Objeto Relacional da classe PJ. 
Informando que a Classe PJ dará origem a objetos que serão persistidos 
Precisamos informar ao Hibernate que a classe PJ dará origem a objetos que serão persistidos 
em banco de dados e que os objetos do tipo PJ em nosso banco de dados possui identificador 
"2". Este é o valor que identifica que, dentre as classes filhas de Pessoa, o número "2" será 
usado para PJ. Veja a anotação: 
@Entity 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorValue("2") 
As anotações acima deverão ser inseridas antes do nome da classe. Veja imagem abaixo: 
 
 
 
Figura 22 ‐ Informando ao Hibernate que a Classe PJ será persistida, a estratégia de Herança 
e o valor que a identifica entre as classes que são filhas da classe Pessoa 
 
Benefrancis do Nascimento
SISTEMA WEB
30 
 
A Classe Telefone
 
Figura 23 ‐ Atributos da Classe Telefone 
 
Métodos da classe Telefone que interagem com o banco de dados
 
Incluiremos os métodos salvar, consultar, alterar e excluir na classe Telefone. Esses métodos 
serão a ligação entre a classe Telefone e a classe telefoneDAO. Abaixo mostramos os métodos 
da classe Telefone. Obs: Quando estiver inserindo os métodos abaixo, o Netbeans irá sugerir a 
criação dos métodos na Classe TelefoneDAO. Aceite a sugestão. 
    public static boolean salvar(Telefone t) { 
        return TelefoneDAO.salvar(t); 
    } 
    public static boolean salvar(Pessoa p) { 
        return TelefoneDAO.salvar(p); 
    } 
    public static Telefone consultar(int idTelefone) { 
        return TelefoneDAO.consultar(idTelefone); 
Benefrancis do Nascimento
SISTEMA WEB
31 
 
    } 
 
    public static Collection<Telefone> consultar(Pessoa p) { 
        return TelefoneDAO.consultar(p); 
    } 
    public static boolean alterar(Telefone t) { 
        return TelefoneDAO.alterar(t); 
    } 
    public static boolean excluir(Telefone t) { 
        return TelefoneDAO.excluir(t); 
    } 
    public static boolean excluir(Pessoa p) { 
        return TelefoneDAO.excluir(p); 
    } 
 
 
Mapeando a Classe Telefone
 
Iniciaremos o mapeamento objeto relacional da classe Telefone. 
 
Informando que a classe Telefone dará origem a objetos que serão
persistidos
 
Para informar que a classe telefone dará origem a objetos que serão persistidos em banco de 
dados, basta apenas incluir a anotação @Entity antes do nome da classe. 
 
Benefrancis do Nascimento
SISTEMA WEB
32 
 
Informando ao Hibernate qual será o Id da tabela telefone
 
Para criar o id – que será o id da tabela no banco de dados; insira o código abaixo antes do 
atributo idTelefone. Não deixe de fazer as importações sugeridas pelo Netbeans, porém 
selecione sempre as que começam com javax.persistence. 
Figura 24 ‐ Informando ao Hibernate qual será o Id da tabela telefone 
Informando ao Hibernate quais os atributos da classe Telefone que
serão persistidos
 
Benefrancis do Nascimento
SISTEMA WEB
33 
 
Figura 25 ‐ Atributos da classe Telefone que serão persistidos 
Encapsule os atributos da classe Telefone
 
Para encapsular os campos da classe telefone acesse o menú refatorar / encapsular campos. A 
tela abaixo será aberta. Selecione todos os campos e clique em refatorar. 
Benefrancis do Nascimento
SISTEMA WEB
34 
 
 
Figura 26 ‐ Encapsulando os atributos da classe Telefone 
Crie métodos construtores para a classe Telefone
Para criar os métodos construtores da classe telefone coloque o cursor em qualquer parte do 
código  fonte  da  classe  telefone,  sugiro  que  seja  logo  depois  dos  atributos,  de  o  comando  [  
control  +  espaço    ];  abrirá  o  menú  suspenso  conforme  a  imagem  abaixo.  Clique  em  cima  do 
método com o nome da classe (o mesmo que selecionei na imagem). Repita a operação agora 
selecionando o método sem atributos. 
 
Figura 27 ‐ Criando método construtor para a classe Telefone 
Benefrancis do Nascimento
SISTEMA WEB
35 
 
A classe Endereco
 
Figura 28 ‐ Atributos da classe Endereco 
 
Métodos da classe Endereco que interagem com o banco de dados
 
Incluiremos os métodos salvar, consultar, alterar e excluir na classe Endereco. Esses métodos 
serão a ligação entre a classe Endereco e a classe EnderecoDAO. Abaixo mostramos os 
métodos da classe Endereco. Obs: Quando estiver inserindo os métodos abaixo, o Netbeans irá 
sugerir a criação dos métodos na Classe EnderecoDAO. Aceite a sugestão. 
    public static boolean salvar(Endereco e) { 
        return EnderecoDAO.salvar(e); 
    } 
Benefrancis do Nascimento
SISTEMA WEB
36 
 
    public static boolean salvar(Pessoa p) { 
        return EnderecoDAO.salvar(p); 
    } 
    public static Endereco consultar(int idEndereco) { 
        return EnderecoDAO.consultar(idEndereco); 
    } 
    public static ArrayList<Endereco> consultar(Pessoa p) { 
        return EnderecoDAO.consultar(p); 
    } 
    public static boolean alterar(Endereco e) { 
        return EnderecoDAO.alterar(e); 
    } 
    public static boolean excluir(Endereco e) { 
        return EnderecoDAO.excluir(e); 
    } 
    public static boolean excluir(Pessoa p) { 
        return EnderecoDAO.excluir(p); 
    } 



Mapeando a classe Endereco
 
Iniciaremos o mapeamento objeto relacional da classe Endereco. 
 
Benefrancis do Nascimento
SISTEMA WEB
37 
 
Informando que a classe Endereco dará origem a objetos que serão
persistidos
 
Para informar que a classe Endereco dará origem a objetos que serão persistidos em banco de 
dados, basta apenas incluir a anotação @Entity antes do nome da classe. 
 
Informando ao Hibernate qual será o Id da tabela endereco
 
Para criar o id – que será o id da tabela no banco de dados; insira o código abaixo antes do 
atributo idEndereco. Não deixe de fazer as importações sugeridas pelo Netbeans, porém 
selecione sempre as que começam com javax.persistence. 
Figura 29 ‐ Informando ao Hibernate qual será o Id da tabela endereço 
Informando ao Hibernate quais os atributos da classe Endereco que
serão persistidos
 
Benefrancis do Nascimento
SISTEMA WEB
38 
 
Figura 30 ‐ Os atributos da classe Endereco que serão persistidos 
 
Benefrancis do Nascimento
SISTEMA WEB
39 
 
Encapsule os atributos da classe Endereco
 
Para encapsular os campos da classe endereco acesse o menú refatorar / encapsular campos. 
A tela abaixo será aberta. Selecione todos os campos e clique em refatorar. 
Figura 31 ‐ Encapsulando campos da classe endereço 
 
Crie métodos construtores para a classe Endereco
Para  criar  métodos  construtores  para  a  classe  endereço,  coloque  o  cursor  em  qualquer  parte 
do código fonte da classe Endereco, sugiro que seja logo depois dos atributos, de o comando [  
control  +  espaço    ];  abrirá  o  menú  suspenso  conforme  a  imagem  abaixo.  Clique  em  cima  do 
método com o nome da classe (o mesmo que selecionei na imagem). Repita a operação agora 
selecionando o método sem atributos. 
Benefrancis do Nascimento
SISTEMA WEB
40 
 
Figura 32 ‐ Métodos construtores para a classe Endereco 
A classe DocReceita
 
Codificaremos agora a classe DocReceita.  
Figura 33 ‐ A interface DocReceita 

Mapeando a classe DocReceita
 
Iniciaremos o mapeamento objeto relacional da classe DocReceita. 
Benefrancis do Nascimento
SISTEMA WEB
41 
 
Informando que a classe DocReceita dará origem a objetos que serão
persistidos
 
Para informar que a classe DocReceita dará origem a objetos que serão persistidos em banco 
de dados, basta apenas incluir a anotação @Entity antes do nome da classe, porém docReceita 
será a classe mãe de CPF e CNPJ, desta forma será necessário informar qual a estratégia de 
herança que utilizaremos.  
 
@Entity 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorColumn(name = "tipo") 
Informando ao Hibernate quais os atributos da classe DocReceita que
serão persistidos
 
Benefrancis do Nascimento
SISTEMA WEB
42 
 
Figure 1 ‐ Atributos da classe DocReceita que serão persistidos 
Benefrancis do Nascimento
SISTEMA WEB
43 
 
A classe CPF
 
Codificaremos agora a classe CPF. Esta classe implementa a Interface DocReceita. Portanto 
deverá possuir o método validar e getNumero. 
 
Figura 34 ‐ A classe CPF 

O método que validará o CPF
 
Abaixo apresento o método utilizado para calcular o dígito de um CPF. Na imagem acima ele 
está oculto, para melhor visualização. 
Benefrancis do Nascimento
SISTEMA WEB
44 
 
 
 
Figura 35 ‐ Método utilizado para calcular o dígito de um CPF. Deve estar dentro da classe CPF 

A classe CNPJ
 
A classe CNPJ, assim como a classe CPF implementa a interface DocReceita, portanto também 
deverá possuir os métodos validar e getnumero. 
 
Benefrancis do Nascimento
SISTEMA WEB
45 
 
Figura 36 ‐ A classe CNPJ 
 
O método que validará o CNPJ
 
Abaixo apresento o método utilizado para calcular o dígito de um CNPJ. Na imagem acima ele 
está oculto, para melhor visualização. 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
46 
 
 
 
Figura 37 ‐ Método utilizado para calcular o dígito de um CNPJ. Deve estar dentro da classe 
CNPJ. 
Benefrancis do Nascimento
SISTEMA WEB
47 
 
A classe Animal
 
Iniciaremos a codificação da classe abstrata Animal. 
Figura 38 ‐ A classe Abstrata Animal 
 
Métodos da classe Animal que interagem com o banco de dados
 
Incluiremos os métodos salvar, consultar, alterar e excluir na classe Animal. Esses métodos 
serão a ligação entre a classe Animal e a classe animalDAO. Abaixo mostramos os métodos da 
classe Animal. Obs: Quando estiver inserindo os métodos abaixo, o Netbeans irá sugerir a 
criação dos métodos na Classe AnimalDAO. Aceite a sugestão. 
    public static boolean salvar(Animal a) { 
        return AnimalDAO.salvar(a); 
    } 
    public static boolean salvar(Pessoa p) { 
Benefrancis do Nascimento
SISTEMA WEB
48 
 
        return AnimalDAO.salvar(p); 
    } 
    public static Animal consultar(int idAnimal) { 
        return AnimalDAO.consultar(idAnimal); 
    } 
    public static Collection<Animal> consultar() { 
        return AnimalDAO.consultar(); 
    } 
    public static Collection<Animal> consultar(Pessoa p) { 
        return AnimalDAO.consultar(p); 
    } 
    public static boolean alterar(Animal a) { 
        return AnimalDAO.alterar(a); 
    } 
    public static boolean excluir(Animal a) { 
        return AnimalDAO.excluir(a); 
    } 
    public static boolean excluir(Pessoa p) { 
        return AnimalDAO.excluir(p); 
    } 

Mapeando a classe Animal
 
Iniciaremos o mapeamento objeto relacional da classe Animal. 
 
Benefrancis do Nascimento
SISTEMA WEB
49 
 
Informando que a classe Animal dará origem a objetos que serão
persistidos
 
Precisamos informar ao Hibernate que a classe Animal dará origem a objetos que serão 
persistidos em banco de dados e qual será a estratégia para hierarquia. Para isso utilizamos as 
seguintes anotações: 
 
@Entity 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorColumn(name = "tipo") 
 
As anotações acima deverão ser inseridas antes do nome da classe. Veja imagem abaixo: 
Figura 39 ‐ informar ao Hibernate que a classe Animal dará origem a objetos que serão persistidos em 
banco de dados e qual será a estratégia para hierarquia 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
50 
 
Informando ao Hibernate qual será o Id da tabela animal
 
O Netbeans ira sugerir a criação do id para hierarquia da classe, para criar o id – que será o id 
da tabela no banco de dados; insira o código abaixo antes do atributo idAnimal. Não deixe de 
fazer as importações sugeridas pelo Netbeans, porém selecione sempre as que começam com 
javax.persistence 
 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private int idAnimal; 
Figura 40 ‐ A criação do id para hierarquia da classe 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
51 
 
Informando ao Hibernate quais os atributos da classe animal que
serão persistidos
 
Figura 41 ‐ Os atributos da classe animal que serão persistidos 
 
Benefrancis do Nascimento
SISTEMA WEB
52 
 
Encapsule os atributos da classe Animal
 
Para encapsular os campos da classe animal acesse o menú refatorar / encapsular campos. A 
tela abaixo será aberta. Selecione todos os campos e clique em refatorar. 
Figura 42 ‐ Encapsulando campos da classe Animal 
Crie métodos construtores para a classe Animal
Para criar métodos construtores para a classe Animal, coloque o cursor em qualquer parte do 
código  fonte  da  classe  Animal,  sugiro  que  seja  logo  depois  dos  atributos,  de  o  comando  [  
control  +  espaço    ];  abrirá  o  menú  suspenso  conforme  a  imagem  abaixo.  Clique  em  cima  do 
método com o nome da classe (o mesmo que selecionei na imagem). Repita a operação agora 
selecionando o método sem atributos. 
Figura 43 ‐ Métodos construtores para a classe Animal 
Benefrancis do Nascimento
SISTEMA WEB
53 
 
A classe Cachorro
 
Exibimos abaixo a classe Cachorro já com as devidas anotações e o método construtor. 
Figura 44 ‐ A classe Cachorro já com as devidas anotações e o método construtor. 
Benefrancis do Nascimento
SISTEMA WEB
54 
 
A classe Gato
 
Exibimos abaixo a classe Gato já com as devidas anotações e o método construtor. 
Figura 45 ‐ A classe Gato já com as devidas anotações e o método construtor 
 
Benefrancis do Nascimento
SISTEMA WEB
55 
 
A classe abstrata Servico
 
Iniciaremos a codificação da classe abstrata Servico. 
Figura 46 ‐ A classe abstrata serviço 


Métodos da classe Servico que interagem com o banco de dados
 
A seguir os métodos salvar, consultar, alterar e excluir da classe Servico. Quando estiver 
incluindo os métodos abaixo na classe Servico o Netbeans irá sugerir a criação dos métodos na 
classe ServicoDAO. Aceite a sugestão. 
Benefrancis do Nascimento
SISTEMA WEB
56 
 
public static boolean salvar(Servico s) { 
        return ServicoDAO.salvar(s); 
    } 
 
    public static boolean salvar(Animal a) { 
        return ServicoDAO.salvar(a); 
    } 
    public static Servico consultar(int idServico) { 
        return ServicoDAO.consultar(idServico); 
    } 
    public static Collection<Servico> consultar(Animal a) { 
        return ServicoDAO.consultar(a); 
    } 
    public static Collection<Servico> consultar() { 
        return ServicoDAO.consultar(); 
    } 
    public static boolean alterar(Servico s) { 
        return ServicoDAO.alterar(s); 
    } 
    public static boolean excluir(Servico s) { 
        return ServicoDAO.excluir(s); 
    } 
    public static boolean excluir(Animal a) { 
        return ServicoDAO.excluir(a); 
    } 
 
Benefrancis do Nascimento
SISTEMA WEB
57 
 
Mapeando a Classe Servico
 
Iniciaremos o mapeamento objeto relacional da classe abstrata Servico. 
Informando que a classe Servico dará origem a objetos que serão
persistidos
 
Precisamos informar ao Hibernate que a classe Servico dará origem a objetos que serão 
persistidos em banco de dados. Para isso utilizamos a seguinte anotação: 
@Entity 
@Inheritance(strategy = InheritanceType.JOINED) 
@DiscriminatorColumn(name = "tipo") 
As anotações acima deverão ser inseridas antes do nome da classe. Veja imagem abaixo: 
 
Figura 47 ‐ A classe Servico dará origem a objetos que serão persistidos em banco de dados 
Benefrancis do Nascimento
SISTEMA WEB
58 
 
Informando ao Hibernate quais os atributos da classe Servico que
serão persistidos
 
As constantes não serão mapeadas. 
 
Figura 48 ‐ Informando ao Hibernate quais os atributos da classe Servico que serão persistidos 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
59 
 
Encapsule os atributos da classe Servico
 
Para encapsular os campos da classe Servico acesse o menú refatorar / encapsular campos. A 
tela abaixo será aberta. Selecione todos os campos e clique em refatorar. 
Figura 49 ‐ Encapsulando campos da classe Servico 
Crie métodos construtores para a classe Servico
Para criar métodos construtores para a classe Servico, coloque o cursor em qualquer parte do 
código  fonte  da  classe  Servico,  sugiro  que  seja  logo  depois  dos  atributos,  de  o  comando  [  
control  +  espaço    ];  abrirá  o  menú  suspenso  conforme  a  imagem  abaixo.  Clique  em  cima  do 
método com o nome da classe (o mesmo que selecionei na imagem). Repita a operação agora 
selecionando o método sem atributos. 
Benefrancis do Nascimento
SISTEMA WEB
60 
 
Figura 50 ‐ Métodos construtores para a classe Servico 
A classe Banho
Abaixo o código e anotações da classe Banho 
Figure 2 ‐ A classe Banho 
Benefrancis do Nascimento
SISTEMA WEB
61 
 
A classe Consulta
Abaixo o código e anotações da classe Consulta 
Figure 3 ‐ A classe consulta 
Benefrancis do Nascimento
SISTEMA WEB
62 
 
A classe Tosa
Abaixo o código e anotações da classe Tosa 
 
A classe Vacina
Abaixo o código e anotações da classe Vacina 
 
Benefrancis do Nascimento
SISTEMA WEB
63 
 
 
 
 
 
 
 
 
 
 
 
 
 
Utilizando o Hibernate para criar as tabelas no banco de
dados
Benefrancis do Nascimento
SISTEMA WEB
64 
 
Atualizando o arquivo hibernate.cfg.xml
 
Neste momento atualizaremos o arquivo hibernate.cfg.xml. Deveremos incluir informação 
sobre as classes que foram mapeadas em nossa aplicação Java. 
Abra o arquivo e inclua entre as tags <session‐factory> </session‐factory> o código abaixo: 
 
        <mapping class="br.com.benefrancis.controle.Pessoa" /> 
        <mapping class="br.com.benefrancis.controle.PF" /> 
        <mapping class="br.com.benefrancis.controle.PJ" /> 
 
        <mapping class="br.com.benefrancis.controle.DocReceita" /> 
        <mapping class="br.com.benefrancis.controle.CPF" /> 
        <mapping class="br.com.benefrancis.controle.CNPJ" /> 
 
        <mapping class="br.com.benefrancis.controle.Telefone" /> 
        <mapping class="br.com.benefrancis.controle.Endereco" /> 
 
        <mapping class="br.com.benefrancis.controle.Animal" /> 
        <mapping class="br.com.benefrancis.controle.Cachorro" /> 
        <mapping class="br.com.benefrancis.controle.Gato" /> 
 
        <mapping class="br.com.benefrancis.controle.Servico" /> 
        <mapping class="br.com.benefrancis.controle.Banho" /> 
        <mapping class="br.com.benefrancis.controle.Consulta" /> 
        <mapping class="br.com.benefrancis.controle.Tosa" /> 
        <mapping class="br.com.benefrancis.controle.Vacina" /> 
Benefrancis do Nascimento
SISTEMA WEB
65 
 
Criando uma conexão com o hibernate
 
Para obter conexões com o Hibernate criamos a classe ConexaoHibernate no pacote modelo. 
O código poderá ser visualizado na imagem abaixo: 
Figura 51 ‐  A classe ConexaoHibernate 
A classe ConexaoHibernate possui um bloco estático no qual por meio da variável 
sessionFactory capturamos as configurações inseridas no arquivo hibernate.cfg.xml. Criamos 
também um método estático getInstance() que retornará uma sessão. 
Benefrancis do Nascimento
SISTEMA WEB
66 
 
Criando uma classe para testar o funcionamento do Hibernate
 
Criaremos a classe TestandoHibernate no pacote modelo. Esta classe será utilizada para testar 
o funcionamento do nosso sistema. A principio criaremos um método estático para gerar as 
tabelas no banco de dados. E um método main, pois neste momento poderemos executar o 
sistema para testar o funcionamento. 
Figura 52 ‐ Testando o funcionamento do Hibernate 
Podemos agora executrar este arquivo por meio do atalho [ shift + F6  ] . O console irá imprimir 
diversas informações e entre elas os comandos do SQL para criação das tabelas no banco de 
dados. Abaixo, segue o que foi imprimido: 
Benefrancis do Nascimento
SISTEMA WEB
67 
 
Figura 53 ‐ Saída do console da aplicação quando executamos o método gerarTabelas da classe 
TestandoHibernate 
 
Agora voltaremos para o HeidiSQL para verificar as tabelas criadas pela nossa aplicação: 
Figura 54 ‐ Verificando no HeidiSql as tabelas geradas 
Benefrancis do Nascimento
SISTEMA WEB
68 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programando as classes DAO
Benefrancis do Nascimento
SISTEMA WEB
69 
 
Introdução
 
Programaremos  os  métodos  das  classes  de  acesso  e  manipulação  dos  dados  de  nossa 
aplicação.  
Quando  estávamos  criando  os  métodos  salvar,  consultar,  alterar  e  excluir  das  classes  do 
pacote controle, o Netbeans nos sugeria criar os métodos nas classes DAO do pacote modelo. 
Caso tenha aceitado conforme orientei os métodos foram criados nas respectivas classes DAO. 
Porém  o  conteúdo  dos  métodos  lança  uma  exceção  dizendo  que  o  método  não  foi 
implementado. Veja a exceção abaixo: 
 
 
Figura 55 ‐ Exceção de método que não foi implementado 
Deveremos inserir o conteúdo dos métodos das classes DAO. E esta será a nossa atividade 
neste capitulo. Os códigos das classes DAO serão muito semelhantes aos métodos das outras 
classes de acesso e manipulação de dados. Vejam. 
 
Implementado os métodos da classe PessoaDAO
 
Para persistir e manipular os dados em nossa aplicação com segurança trabalharemos com o 
conceito de transação.  O hibernate possui o objeto Transaction para esse fim. Desta forma, 
em caso de erro durante o processamento a aplicação fará o rollback, mantendo assim nosso 
banco de dados integro. 
Toda comunicação nesses métodos dependerão de uma sessão com o hibernate, por esse 
motivo utilizaremos a variável session do tipo org.hibernate.Session.  
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
70 
 
Salvar
Neste método salvaremos uma pessoa no banco de dados. O método espera como parâmetro 
um objeto do tipo Pessoa. Poderemos enviar pessoas físicas e pessoas jurídicas, pois este é um 
clássico método polifórmico. 
Figura 56 ‐ Método salvar da classe PessoaDAO 
 
Para  salvar  uma  pessoa  no  banco  de  dados  utilizamos  polimorfismo  por  meio  de  método 
polifórmico. Repare que no método salvar o parâmetro esperado é do tipo Pessoa, entretanto 
se enviarmos uma PF ou PJ as informações serão salvas corretamente nas tabelas do banco de 
dados.  Outra  técnica  importante  da  orientação  a  objeto  empregada  nesta  classe  é  a 
sobrecarga de métodos presente no método consultar (veja a assinatura dos métodos). 
 
 
Benefrancis do Nascimento
SISTEMA WEB
71 
 
Consultar pessoa pelo id
Neste método consultaremos uma pessoa pelo id. Este método espera um inteiro como 
parâmetro. Retornará um objeto do tipo Pessoa. 
Figura 57 ‐ Consultando Pessoa pelo id 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
72 
 
Consultar Todas as pessoas
 
Usaremos a sobrecarga de métodos para criar mais uma opção de consulta. Agora 
consultaremos todas as pessoas cadastradas. 
Figura 58 ‐ Consultando todas as pessoas cadastradas 
Benefrancis do Nascimento
SISTEMA WEB
73 
 
Consultar pessoa pelo nome
 
Consultaremos pessoa pelo nome. Este método espera como parâmetro uma String e 
retornará uma coleção de objetos do tipo pessoa. 
Figura 59‐ Consultando pessoas pelo nome 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
74 
 
Alterando pessoas
 
Agora abordaremos o método alterar. Este método recebe um objeto do tipo pessoa como 
parâmetro e retorna verdadeiro; se a atualização for concretizada, ou falso caso aconteça 
alguma exceção. 
Figura 60 ‐ Alterando pessoa 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
75 
 
Excluindo pessoas
 
Codificaremos o método excluir. Este método recebe como parâmetro um objeto do tipo 
pessoa e retornará verdadeiro; se a transação concluir com sucesso, ou falso caso aconteça 
alguma exceção. 
Figura 61 ‐ Excluindo pessoas 
 
 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
76 
 
Implementado os métodos da classe AnimalDAO
 
Salvar
 
Neste método salvaremos um animal no banco de dados. O método espera como parâmetro 
um objeto do tipo Animal. Poderemos enviar cachorros ou gatos, pois este é um clássico 
método polifórmico. 
Figura 62 ‐ Salvando animais 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
77 
 
Salvando todos os animais de uma pessoa
 
Criamos um método para salvar todos os animais de uma pessoa. 
Figura 63 ‐ Salvando todos os animais de uma pessoa 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
78 
 
Consultando animais pelo Id
 
Codificaremos o método que consulta animal pelo id 
Figura 64 ‐ Consultando animais pelo Id 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
79 
 
 
Alterando animais
 
Codificaremos o método alterar da classe animalDAO. 
Figura 65 ‐ Alterando animal 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
80 
 
 
Excluindo animal
 
Abaixo o código do método excluir da classe AnimalDAO. 
Figura 66 ‐ Excluindo animal 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
81 
 
Excluindo todos os animais de uma pessoa
 
Codificaremos um método para exclusão de todos os animais de uma pessoa. 
Figura 67 ‐ Excluindo todos os animais de uma pessoa 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
82 
 
Implementado os métodos da classe ServicoDAO
 
Iniciaremos agora a codificação dos métodos da classe ServicoDAO. 
 
Salvar
 
Abaixo o método salvar da classe ServicoDAO. 
Figura 68 ‐ Salvando serviços 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
83 
 
Consultando serviço pelo id
 
Abaixo o código para consulta de serviço pelo id. 
Figura 69 ‐ Consultando serviço pelo id 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
84 
 
Salvando todos os serviços de um animal
 
Codificaremos um método para salvar todos os serviços de um animal. 
Figura 70 ‐ Salvando todos os serviços de um animal 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
85 
 
Consultando todos os serviços de um animal
 
Codificaremos o método que deverá retornar todos serviços realizados em um animal. 
Figura 71 ‐ Consultando todos serviços realizados em um animal 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
86 
 
Excluindo todos os serviços de um animal
 
Codificaremos um método para que seja possível excluir todos os serviços de um animal. 
Figura 72 ‐ Excluindo todos os serviços de um animal 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
87 
 
Alterando serviço
 
Desenvolvendo método para alterar um serviço. 
 
Figura 73 ‐ Alterando serviço 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
88 
 
 
Excluindo serviço
 
Abaixo o código para exclusão de serviço 
Figura 74 ‐ Excluindo serviço 
 
Benefrancis do Nascimento
SISTEMA WEB
89 
 
Implementado os métodos da classe TelefoneDAO
 
Iniciaremos agora a codificação dos métodos da classe TelefoneDAO. 
 
salvar
 
Figura 75 ‐ Salvando um telefone 
 
Benefrancis do Nascimento
SISTEMA WEB
90 
 
Consultando telefone pelo Id
Figura 76 ‐ Consultando telefone pelo id 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
91 
 
Consultando todos os telefones de uma pessoa
 
O método abaixo prove a consulta de todos os telefones de uma pessoa. 
Figura 77 ‐ Consultando todos os telefones de uma pessoa 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
92 
 
Salvando todos os telefones de uma pessoa
 
O método abaixo salva todos os telefones de uma pessoa 
Figura 78 ‐ Salvando todos os telefones de uma pessoa 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
93 
 
Excluindo telefone
 
O método abaixo exclui um telefone da base de dados 
Figura 79 ‐ Excluindo telefone 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
94 
 
Excluindo todos os telefones de uma pessoa
 
O código abaixo exclui todos os telefones de uma pessoa 
Figura 80 ‐ Excluindo todos os telefones de uma pessoa 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
95 
 
Implementado os métodos da classe EnderecoDAO
 
Iniciaremos agora a codificação dos métodos da classe EnderecoDAO. 
 
Salvar
 
O método abaixo salva um endereço no banco de dados 
Figura 81 ‐ Salvando todos os endereços de uma pessoa 
Benefrancis do Nascimento
SISTEMA WEB
96 
 
Consultando endereço pelo Id
 
O método abaixo consulta endereço pelo Id. 
Figura 82‐ Consultando endereço pelo id 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
97 
 
Consultando todos os endereços de uma pessoa
 
O método abaixo consulta todos os endereços de uma pessoa. 
Figura 83 ‐ Consultando todos os endereços de uma pessoa 
 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
98 
 
Alterando um endereço
 
Abaixo codificaremos um método para alterar endereço 
Figura 84 ‐ Alterando um endereço 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
99 
 
Excluindo um endereço
 
O método abaixo exclui um endereço 
Figura 85 ‐ Excluindo endereço 
 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
100 
 
Excluindo todos os endereços de uma pessoa
 
O método abaixo exclui todos os endereços de uma pessoa. 
Figura 86 ‐ Excluindo todos os endereços de uma pessoa 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
101 
 
 
 
 
 
 
 
 
 
 
 
 
 
Testando os métodos das classes do pacote DAO
Benefrancis do Nascimento
SISTEMA WEB
102 
 
Salvando pessoa, telefone, endereço, animais e serviços.
 
Testaremos agora os métodos das classes do pacote DAO. Para isso incluiremos um método a 
classe TestandoHibernate.  
Neste método invocamos apenas o método salvar da classe Pessoa, porém todos os outros 
objetos a ela relacionados foram criados. 
Veja código abaixo: 
    private static void persistindo() throws Exception { 
        PF pf = new PF(); 
        pf.setNome("Benefrancis do Nascimento"); 
        pf.setEmail("benefrancis@gmail.com"); 
        pf.setSenha("root"); 
 
        DocReceita cpf = new CPF("24878891874"); 
        pf.setDocReceita(cpf); 
        cpf.setPessoa(pf); 
 
        Endereco end = new Endereco(); 
        end.setBairro("Jd Leni"); 
        end.setCep("05818250"); 
        end.setCidade("São Paulo"); 
        end.setLogradouro("Rua faustino Allende"); 
        end.setNumero("39"); 
        end.setUf("SP"); 
        end.setPessoa(pf); 
 
Benefrancis do Nascimento
SISTEMA WEB
103 
 
        Collection<Endereco> e = new ArrayList<Endereco>(); 
        e.add(end); 
        pf.setEndereco(e); 
 
        Telefone t = new Telefone(); 
        t.setDdd(11); 
        t.setNumero("8281‐6536"); 
        t.setPessoa(pf); 
 
        Collection<Telefone> tel = new ArrayList<Telefone>(); 
        tel.add(t); 
        pf.setTelefone(tel); 
 
        Animal a = new Cachorro(); 
        Date d = new Date(2000, 5, 15); 
        a.setDataNascimento(d); 
        a.setNome("Pluto"); 
        a.setRaca("Vira lata"); 
        a.setSexo('M'); 
        a.setObservacao("Cachorro muito sem vergonha!"); 
        a.setPessoa(pf); 
 
        Servico s = new Banho(); 
        Date diaBanho = new Date(2010, 11, 18); 
        s.setData(diaBanho); 
Benefrancis do Nascimento
SISTEMA WEB
104 
 
        s.setDescricao("Banho completo"); 
        s.setValor(20.95); 
        s.setAnimal(a); 
 
        Collection<Servico> serv = new ArrayList<Servico>(); 
        serv.add(s); 
        a.setServico(serv); 
 
        Collection<Animal> ani = new ArrayList<Animal>(); 
        ani.add(a); 
        pf.setAnimal(ani); 
 
        pf.salvar(pf); 
    } 
 
Verificaremos agora no HeidiSql se todos os campos das tabelas foram preenchidos 
corretamente. 
Para isso executaremos o seguinte comando: 
select Pessoa. *, Ender eco. *, Ani mal . *, Ser vi co. * from
Pessoa left join Tel ef one on ( Pessoa. i dPessoa = Tel ef one. i dPessoa)
left join Ender eco on ( Pessoa. i dPessoa = Ender eco. i dPessoa)
left join Ani mal on ( Pessoa. i dPessoa = Ani mal . i dPessoa)
left join Ser vi co on ( Ani mal . i dAni mal = Ser vi co. i dAni mal ) ;
 
Benefrancis do Nascimento
SISTEMA WEB
105 
 
 
Figura 87 ‐ Resultado da consulta dos dados gravados no banco de dados 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
106 
 









Criando as páginas JSP
Benefrancis do Nascimento
SISTEMA WEB
107 
 
Mapa do site

O nosso sistema web deverá seguir a estrutura representada no mapa do site abaixo: 
Index.jsp
Inicio.jsp
Pessoa.jsp
Registrar.jsp
Animal.jsp
Animal.jsp
Detalhe_animal.jsp
Editar_animal.jsp
Excluir_animal.jsp
Pessoa.jsp
Detalhe_pessoa.jsp
Editar_pessoa.jsp
Excluir_pessoa.jsp
Servico.jsp
Detalhe_servico.jsp
Editar_servico.jsp
Excluir_servico.jsp
cadastros
serviços
consultas
 
Figura 88‐ Mapa do site 
 
Criando diretórios necessários
 
Agora trabalharemos com a camada de apresentação e, desta forma será necessário criar 
diretórios para armazenar imagens, css, javascript e etc. Para criar um diretório no seu projeto 
web.  
Clique com o botão direito do mouse em cima da pasta Páginas web um menú suspenso 
aparecerá; nele selecione: Novo / Diretório. A janela abaixo será exibida. 
Benefrancis do Nascimento
SISTEMA WEB
108 
 
 
Figura 89 ‐ Criando um novo diretório acessível para a internet no seu projeto web 
Crie os diretórios conforme tabela abaixo: 
Tabela 1 – Os diretórios do nosso sistema web. Neles estão as imagem, css, javascript e etc. (Solicite 
para o professor pelo e‐mail: Benefrancis@gmail.com) 
NOME  Motivo 
images  Será o local onde guardaremos as imagens do 
nosso sistema web. 
css  Onde serão inseridos os arquivos de estilo. 
javascript  Onde estarão os arquivos Java script  
geral  Onde estará o conteúdo html que aparecerá 
em todas as telas: 
 head.jsp – onde faremos os importes 
necessários. 
 topo.jsp – topo do site e o menú 
 rodapé.jsp – rodapé do site 
 inicio.jsp – tela de boas vindas do 
sistema (após autenticação) 
 
Benefrancis do Nascimento
SISTEMA WEB
109 
 
Iniciando a programação das páginas JSP
Importando as classes necessárias
Para se trabalhar com classes Java em páginas JSP, necessitaremos fazer o importe das classes 
que precisaremos utilizar. Portanto em nossa aplicação necessitaremos fazer o importe das 
classes do pacote controle. Para evitar esquecimento de alguma classe poderemos fazer o 
importe de todas as classes deste pacote. Veja como fazer na segunda linha do código na 
imagem abaixo: 
 
Figura 90 ‐ Importando todas as classes do pacote controle 
Portanto inclua a tag <%@page import="br.com.benefrancis.controle.*"%> em todas as 
páginas de nosso sistema web. 
Index.jsp
O arquivo index.jsp deverá está na raiz da nossa aplicação web (diretório Páginas web).  
Na pagina index, ou seja, a primeira página que será aberta em nossa aplicação. 
Desenvolveremos uma tela onde o usuário deverá ser autenticado. 
A tela deverá ter um formulário. Veja a tag: 
<form name="FrmLogin" id="FrmLogin" method="POST"  action="index.jsp"> 
<!—Incluir os campos do formulário aqui ‐‐> 
</form> 
Deverá possuir um campo oculto, dois campos editáveis e um botão obedecendo ao que 
descreve a tabela abaixo: 
TIPO  NOME  SIZE  VALUE 
text  usuario  15    
password  senha  15    
hidden  op  ‐  1 
submit  btn_autenticar    Autenticar 
Benefrancis do Nascimento
SISTEMA WEB
110 
 
O design semelhante à tela da imagem a seguir: 
 
 
Figura 91 ‐ Layout da página index.jsp 
Código fonte Java da pagina index.jsp
O código fonte da imagem abaixo recebe na linha 52 o valor do campo hidden e o converte 
para inteiro, já nas linhas 57 e 58 receberá os parâmetros sobre usuário e senha do formulário 
e aciona o método autenticar do objeto PF. 
Benefrancis do Nascimento
SISTEMA WEB
111 
 
Figura 92 ‐ Autenticando ‐ index.jsp 
Código fonte completo da pagina index.jsp
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*"%> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
        <meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8"> 
        <title>PETSHOP</title> 
        <link  rel="stylesheet" type="text/css" href="css/Estilo.css"> 
    </head> 
    <body> 
Benefrancis do Nascimento
SISTEMA WEB
112 
 
        <form name="FrmLogin" id="FrmLogin" method="POST"  action="index.jsp"> 
            <table width="103%"  border="0" cellpadding="0" cellspacing="0"align="center" > 
                <tr> 
                    <td align="center" valign="middle"> 
                        <table width="750"  border="0" cellspacing="0" cellpadding="0" align="center" 

                            <tr> 
                                <td width="40%" height="500" align="center" valign="middle"> 
                                    <img src="images/login.png" alt="Petshop"/> 
                                </td> 
                                <td width="60%" align="center" valign="middle"> 
                                    <table border="0" > 
                                        <tr> 
                                            <td class="Txt">USUARIO</td> 
                                            <td class="Txt"><input type="text" name="usuario" value="" 
size="15"/></td> 
                                        </tr> 
                                        <tr> 
                                            <td class="Txt">SENHA</td> 
                                            <td class="Txt"><input type="password" name="senha" value="" 
size="15" /></td> 
                                        </tr> 
                                        <tr> 
                                            <td colspan="2"><hr size="1"><input type="hidden" name="op" 
value="1" /></td> 
                                        </tr> 
                                        <tr> 
Benefrancis do Nascimento
SISTEMA WEB
113 
 
                                            <td></td> 
                                            <td><input type="submit" value="Autenticar" 
name="btn_autenticar" /></td> 
                                        </tr> 
                                        <tr><td colspan="2" class="Txt"> 
<% 
String usuario = ""; 
String senha = ""; 
int op = 0; 
try { 
    op = Integer.parseInt(request.getParameter("op")); 
} catch (Exception ex) {} 
try { 
    if (op == 1) { 
        usuario = request.getParameter("usuario"); 
        senha = request.getParameter("senha"); 
        Autenticavel p = new PF().autenticar(usuario, senha); 
        if (p != null) { 
            session.setAttribute("Usuario", p); 
            String novaURL = "geral/inicio.jsp"; 
            response.sendRedirect(novaURL); 
        } else { 
            out.print("<br>"); 
            out.print("<center><font face='verdana' color='red'   " + 
                    "size='2'>Usuario ou senha inválidos</font></center>"); 
            out.print("<br>"); 
Benefrancis do Nascimento
SISTEMA WEB
114 
 
        } 
    } 
} catch (Exception e) {} 
%> 
                                            </td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                        </table> 
                    </td> 
                </tr> 
            </table> 
        </form> 
    </body> 
</html> 
 
 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
115 
 

 
 
 
 
 
 
 
 
 
 
Codificando arquivos do diretório geral

Benefrancis do Nascimento
SISTEMA WEB
116 
 
Head.jsp
 
Abaixo o conteúdo do arquivo head.jsp 
Figura 93 ‐ conteúdo do arquivo head.jsp 
 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
117 
 
Topo.jsp
 
Abaixo o conteúdo do arquivo topo.jsp 
Figura 94 ‐ Código do arquivo topo.jsp 
 
Rodapé.jsp
 
Abaixo o código do arquivo rodapé.jsp 
Figura 95 ‐ Código do arquivo rodapé.jsp 
 
 
Benefrancis do Nascimento
SISTEMA WEB
118 
 
Inicio.jsp
 
Abaixo o código do arquivo inicio.jsp. A tela de boas vindas da nossa aplicação. 
Figura 96 ‐ Código do arquivo inicio.jsp 
 
 
 
 
 
 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
119 
 
Layout da tela de boas vindas
 
Abaixo a tela de boas vindas da nossa aplicação. 
 
Figura 97 ‐ A tela de boas vindas da nossa aplicação 
 
Benefrancis do Nascimento
SISTEMA WEB
120 
 
 
 
 
 
 
 
 
 
 
 
 
 
Codificando arquivos do diretório cadastros
Benefrancis do Nascimento
SISTEMA WEB
121 
 
Pessoa.jsp
 
O arquivo pessoa.jsp do diretório cadastros será a nossa tela para cadastramento de pessoas 
em nosso sistemas. Uma pessoa será um usuário ‐ utilizador do sistema. O sistema deverá 
verificar se existe uma pessoa cadastrada no sistema. Para fazer a verificação deveremos 
verificar, antes do cadastramento de uma pessoa, se: 
1º. O e‐mail informado já está registrado no banco de dados; 
2º. Se o documento da receita já está cadastrado no sistema. 
 
A tela deverá possuir um formulário. Veja a tag: 
<form action="pessoa.jsp" method="post" name="Formulario" > 
<!—Incluir os elementos do formulário aqui ‐‐> 
</form> 
Elementos do formulário
Abaixo segue a lista dos elementos e suas propriedades: 
Tabela 2 ‐ Elementos do formulário da página para cadastramento de pessoa 
Índice  Id  Nome  Tipo Valor Tamanho  Tamanho 
máximo 
0  Tipo  Tipo  select  
1  razao  razao  text 50  100 
2  CNPJ  CNPJ  text 24  18 
3  Nome  Nome  text 50  100 
4  CPF  CPF  text 17  14 
5  email  email  text 50  200 
6  senha  senha  text 50  200 
7  TelDDD  TelDDD  text 2 2 
8  Tel  Tel text 12  10 
Benefrancis do Nascimento
SISTEMA WEB
122 
 
9    TelCelDDD  text 2 2 
10    TelCel  text 12  10 
11    TelFaxDDD  text 2 2 
12    TelFax  text 12  10 
13    logradouro  text 50  50 
14    Numero  text 10  10 
15    Complemento  text 30  50 
16    Bairro  text 30  50 
17    Cidade  text 30  50 
18    uf select  
19    CEP  text 12  9 
20    op hidden 1  
21    Btn_Entrar  button Cadastrar  
 
Código fonte Java do arquivo pessoa.jsp
 
Exibiremos abaixo o código fonte da página de cadastramento de pessoas. Não será necessário 
digitar o código abaixo, pois o arquivo foi disponibilizado. 
Benefrancis do Nascimento
SISTEMA WEB
123 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%>
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@page import="java.util.ArrayList" %> 
<%@page import="java.util.Date" %> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <form action="pessoa.jsp" method="post" name="Formulario" > 
            <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
                <tr> 
                    <td colspan="2"> 
                        <jsp:include page="../geral/topo.jsp" /> 
                    </td> 
                </tr> 
                <tr> 
                    <td colspan="2"> 
                        <% 
                    int op = 0; 
                    String tipo = null; 
                    Pessoa pessoa = null; 
                    String username = null; 
                    String senha = null; 
                    DocReceita docReceita = null; 
                    try { 
                        op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 
                    } catch (Exception ex) { 
Benefrancis do Nascimento
SISTEMA WEB
124 
 
                    } 
 
                    try { 
                        if (op == 1) {//O formulário foi enviado 
                            try { 
                                tipo = request.getParameter("Tipo"); 
                            } catch (Exception ex) { 
                            } 
                            if (tipo == "PJ") { 
                                String razao = null; 
                                try { 
                                    razao = request.getParameter("razao"); 
                                    docReceita = new CNPJ(request.getParameter("CNPJ")); 
                                    //Criando uma pessoa juridica 
                                    pessoa = new PJ(); 
                                    pessoa.setDocReceita(docReceita); 
                                    pessoa.setNome(razao); 
                                    docReceita.setPessoa(pessoa); 
                                } catch (Exception ex) { 
                                    ex.printStackTrace(); 
                                    throw new RuntimeException("<center>" + 
                                    "<font face='verdana' color='red'   " + 
                                    "size='2'>Erro ao cadastrar Utilizador." + 
                                    "<br /> Verifique os dados de Pessoa Jurídica" + 
                                    " tente novamente</font></center>"); 
                                } 
                            } else { 
                                try { 
                                    String nome = request.getParameter("Nome"); 
Benefrancis do Nascimento
SISTEMA WEB
125 
 
                                    docReceita = new CPF(request.getParameter("CPF"));
                                    //Criando uma pessoa física 
                                    pessoa = new PF(); 
                                    pessoa.setDocReceita(docReceita); 
                                    pessoa.setNome(nome); 
                                    docReceita.setPessoa(pessoa); 
                                } catch (Exception ex) { 
                                    ex.printStackTrace(); 
                                    throw new RuntimeException("<center>" + 
                                            "<font face='verdana' color='red' " + 
                                            "  size='2'>Erro ao cadastrar Utilizador." + 
                                            "<br /> Verifique os dados de Pessoa física" + 
                                            " tente novamente</font></center>"); 
                                } 
                            } 
                            //Já existe pessoa com o CPF ou CNPJ informado? 
                            if (pessoa.existe(docReceita) == true) { 
                                if (pessoa.getTipo() == 1) { 
                                    throw new RuntimeException("<br>" + 
                                            "<center><font face='verdana' " + 
                                            "color='red'   size='2'><br />" + 
                                            "já existe cliente cadastrado com" + 
                                            " o CPF informado</font></center><br>"); 
                                } else { 
                                    throw new RuntimeException("<br>" + 
                                            "<center><font face='verdana' " + 
                                            "color='red'   size='2'><br />" + 
                                            "já existe cliente cadastrado com" + 
                                            " o CNPJ informado</font></center><br>"); 
Benefrancis do Nascimento
SISTEMA WEB
126 
 
 
                                } 
                            } 
                            try { 
                                username = request.getParameter("email"); 
                                senha = request.getParameter("senha"); 
                            } catch (Exception ex) { 
                                throw new RuntimeException("Verifique " + 
                                        "se o e‐mail e senha foram " + 
                                        "digitados corretamente"); 
                            } 
                            if (username == "" || senha == "") { 
                                throw new RuntimeException("<center>" + 
                                        "<font face='verdana' color='red'" + 
                                        " size='2'><br />Verifique o e‐mail " + 
                                        "e senha foram digitados corretamente" + 
                                        "</font></center>"); 
                            } else if (pessoa.existe(username) == true) { 
                                throw new RuntimeException("<br><center>" + 
                                        "<font face='verdana' color='red' " + 
                                        " size='2'><br />já existe usuário " + 
                                        "cadastrado com o e‐mail digitado</font>" + 
                                        "</center><br>"); 
                            } else { 
                                pessoa.setEmail(username); 
                                pessoa.setSenha(senha); 
                            } 
                            //Telefones da pessoa 
                            ArrayList<Telefone> telefone = new ArrayList<Telefone>(); 
Benefrancis do Nascimento
SISTEMA WEB
127 
 
                            try { 
                                int dddTel = Integer.parseInt(Util.SoNumero(request.getParameter("TelDDD"))); 
                                String Tel = Util.SoNumero(request.getParameter("Tel")); 
                                if (dddTel != 0 && Tel != "") { 
                                    telefone.add(new Telefone(dddTel, Tel, pessoa)); 
                                } 
                            } catch (Exception eTel) { 
                            } 
                            try { 
                                int dddCel = Integer.parseInt(Util.SoNumero(request.getParameter("TelCelDDD"))); 
                                String Cel = Util.SoNumero(request.getParameter("TelCel")); 
                                if (dddCel != 0 && Cel != "") { 
                                    telefone.add(new Telefone(dddCel, Cel, pessoa)); 
                                } 
                            } catch (Exception eCel) { 
                            } 
                            try { 
                                int dddFax = Integer.parseInt(Util.SoNumero(request.getParameter("TelFaxDDD"))); 
                                String Fax = Util.SoNumero(request.getParameter("TelFax")); 
                                if (dddFax != 0 && Fax != "") { 
                                    telefone.add(new Telefone(dddFax, Fax, pessoa)); 
                                } 
                            } catch (Exception eFax) { 
                            } 
                            //Endereços da pessoa 
                            ArrayList<Endereco> end = new ArrayList<Endereco>(); 
                            Endereco endereco = new Endereco(); 
                            String logradouro = ""; 
                            String numero = ""; 
Benefrancis do Nascimento
SISTEMA WEB
128 
 
                            String complemento = "";
                            String bairro = ""; 
                            String cep = ""; 
                            String cidade = ""; 
                            String uf = ""; 
                            try { 
                                logradouro = request.getParameter("logradouro"); 
                                numero = request.getParameter("Numero"); 
                                complemento = request.getParameter("Complemento"); 
                                bairro = request.getParameter("Bairro"); 
                                cep = Util.SoNumero(request.getParameter("CEP")); 
                                cidade = request.getParameter("Cidade"); 
                                uf = request.getParameter("uf"); 
                                if (logradouro == "" || numero == ""  
                                        || bairro == "" || cidade == "" 
                                        || uf == "" || cep == "") { 
                                    throw new RuntimeException("O endereço deve conter" + 
                                            " logradouro, número, Bairro, " + 
                                            "Cidade, Estado e CEP"); 
                                } else { 
                                    endereco.setLogradouro(logradouro); 
                                    endereco.setBairro(bairro); 
                                    endereco.setCep(cep); 
                                    endereco.setCidade(cidade); 
                                    endereco.setComplemento(complemento); 
                                    endereco.setNumero(numero); 
                                    endereco.setUf(uf); 
                                    endereco.setPessoa(pessoa); 
                                    end.add(endereco); 
Benefrancis do Nascimento
SISTEMA WEB
129 
 
                                } 
                            } catch (Exception ex) { 
                                ex.printStackTrace(); 
                                throw new RuntimeException("Logradouro é um campo obrigatório"); 
                            } 
                            //Salvando a pessoa e todos os seua relacionamentos em banco de dados 
                            //Adicionando a Pessoa 
                            pessoa.setTelefone(telefone); 
                            pessoa.setEndereco(end); 
                            pessoa.setAnimal(null); 
                            //Salvando: 
                            pessoa.salvar(pessoa); 
                            out.print("<br>"); 
                            out.print("<br>"); 
                            out.print("<br>"); 
                            out.print("<center><font face='verdana' color='blue'   size='2'>Utilizador cadastrado com 
sucesso</font></center>"); 
                            out.print("<br>"); 
                            out.print("<br>"); 
                            out.print("<br>"); 
                        } else {//Se op for diferente de 1 
%> 
 
                    </td> 
                </tr> 
                <tr> 
                    <td width="162" class="Txt">Tipo</td> 
                    <td width="436" class="Txt"> 
                        <select name="Tipo" id="Tipo" 
onChange="showCampo(document.forms[0][this.name].options[document.forms[0][this.name].selecte
Benefrancis do Nascimento
SISTEMA WEB
130 
 
dIndex].value,'campo_hidden');"> 
                            <option value="0">Selecione</option> 
                            <option value="PJ">PJ</option> 
                            <option value="PF">PF</option> 
                        </select> 
                    </td> 
                </tr> 
                <tr id="campo_hiddenPJ" style="display:none"> 
                    <td  height="104" colspan="2" valign="top"> 
 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0"> 
                            <!‐‐DWLayoutTable‐‐> 
                            <tr> 
                                <td height="1" colspan="2" valign="top"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" class="Txt"><strong>PESSOA JURÍDICA 
</strong></td> 
                            </tr> 
                            <tr> 
                                <td width="23%" height="27" valign="top" class="Txt">RAZÃO SOCIAL</td> 
                                <td width="77%" valign="top" class="Txt"><input name="razao" type="text" 
id="razao" size="50" maxlength="100"> 
                                    <span class="style1">*</span></td> 
                            </tr> 
 
                            <tr> 
                                <td height="27" valign="top" class="Txt">CNPJ</td> 
                                <td valign="top" class="Txt"><input name="CNPJ" type="text" id="CNPJ" 
OnKeyPress="formatar(this, '##.###.###/####‐##')" onKeyUp="javascript:Sonumero(this)" size="24"  
maxLength="18" > 
Benefrancis do Nascimento
SISTEMA WEB
131 
 
                                    + </td> 
                            </tr> 
                        </table> 
                    </td> 
 
                </tr> 
 
                <tr id="campo_hiddenPF" style="display:none"> 
                    <td  height="104" colspan="2" valign="top"> 
 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0"> 
                            <!‐‐DWLayoutTable‐‐> 
                            <tr> 
                                <td height="1" colspan="2" valign="top"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" class="Txt"><strong>PESSOA F&Iacute;SICA 
</strong></td> 
                            </tr> 
                            <tr> 
                                <td width="20%"  valign="top" class="Txt">Nome Completo </td> 
                                <td width="80%" valign="top" class="Txt"><input name="Nome" type="text" 
id="Nome" size="50" maxlength="100"> 
                                    <span class="style1">*</span></td> 
                            </tr> 
 
                            <tr> 
                                <td width="25%" valign="top" class="Txt">CPF</td> 
                                <td width="75%" valign="top" class="Txt"><input name="CPF" type="text" id="CPF" 
OnKeyPress="formatar(this, '###.###.###‐##')" onKeyUp="javascript:Sonumero(this)" size=17  
maxlength="14"> 
Benefrancis do Nascimento
SISTEMA WEB
132 
 
                                    + </td> 
                            </tr> 
                        </table> 
                    </td> 
 
                </tr> 
                <tr> 
                    <td id="contato" height="104" colspan="2" valign="top"> 
 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0"> 
                            <!‐‐DWLayoutTable‐‐> 
 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2" class="Txt"><strong>USUARIO DO SISTEMA</strong></td> 
                                <td></td> 
                            </tr> 
 
                            <tr> 
                                <td width="162" height="27" valign="top" class="Txt">E‐mail</td> 
                                <td width="436" valign="top" class="Txt"><input name="email" type="text" 
id="email" size="50" maxlength="200"> 
                                    <span class="style1">*</span></td> 
                            </tr> 
                            <tr> 
                                <td width="162" height="27" valign="top" class="Txt">Senha</td> 
                                <td width="436" valign="top" class="Txt"><input name="senha" type="text" 
Benefrancis do Nascimento
SISTEMA WEB
133 
 
id="senha" size="50" maxlength="200">
                                    <span class="style1">*</span></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2" class="Txt"><strong>CONTATO</strong></td> 
                                <td></td> 
                            </tr> 
 
                            <tr> 
                                <td class="Txt">Telelefone</td> 
                                <td class="Txt">(<input name="TelDDD" type="text" id="TelDDD" 
onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) <input name="Tel" type="text" id="Tel"  
OnKeyPress="formatar(this, '####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" 
maxlength="10"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Celular</td> 
                                <td class="Txt">(<input name="TelCelDDD" type="text" 
onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) <input name="TelCel" type="text" 
OnKeyPress="formatar(this, '####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" 
maxlength="10"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Fax</td> 
                                <td class="Txt">(<input name="TelFaxDDD" type="text" 
onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) <input name="TelFax" type="text" 
OnKeyPress="formatar(this, '####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" 
Benefrancis do Nascimento
SISTEMA WEB
134 
 
maxlength="10"></td>
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2" class="Txt"><strong>ENDERE&Ccedil;O</strong></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">LOGRADOURO</td> 
                                <td class="Txt"><input name="logradouro" type="text" size="50" 
maxlength="50"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Nº</td> 
                                <td class="Txt"><input name="Numero" type="text" size="10" maxlength="10"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Complemento</td> 
                                <td class="Txt"><input name="Complemento" type="text" size="30" 
maxlength="50"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Bairro</td> 
Benefrancis do Nascimento
SISTEMA WEB
135 
 
                                <td class="Txt"><input name="Bairro" type="text" size="30" maxlength="50"></td>
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Cidade</td> 
                                <td class="Txt"><input name="Cidade" type="text" size="30" maxlength="50"></td> 
                                <td></td> 
                            </tr> 
                            <tr id="estados" > 
                                <td class="Txt">Estado</td> 
                                <td class="Txt"> 
                                    <select name="uf"> 
                                        <option value="">Selecione</option> 
                                        <option value="AC">AC</option> 
                                        <option value="AL">AL</option> 
                                        <option value="AP">AP</option> 
                                        <option value="AM">AM</option> 
                                        <option value="BA">BA</option> 
                                        <option value="CE">CE</option> 
                                        <option value="DF">DF</option> 
                                        <option value="ES">ES</option> 
                                        <option value="GO">GO</option> 
                                        <option value="MA">MA</option> 
                                        <option value="MT">MT</option> 
                                        <option value="MS">MS</option> 
                                        <option value="MG">MG</option> 
                                        <option value="PA">PA</option> 
                                        <option value="PB">PB</option> 
                                        <option value="PR">PR</option> 
Benefrancis do Nascimento
SISTEMA WEB
136 
 
                                        <option value="PE">PE</option>
                                        <option value="PI">PI</option> 
                                        <option value="RJ">RJ</option> 
                                        <option value="RN">RN</option> 
                                        <option value="RS">RS</option> 
                                        <option value="RO">RO</option> 
                                        <option value="RR">RR</option> 
                                        <option value="SC">SC</option> 
                                        <option value="SP">SP</option> 
                                        <option value="SE">SE</option> 
                                        <option value="TO">TO</option> 
                                    </select></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">CEP</td> 
                                <td class="Txt"> 
                                    <input name="CEP" type="text" OnKeyPress="formatar(this, '#####‐###')" 
onKeyUp="javascript:Sonumero(this)" size="12" maxlength="9"> 
        + </td> 
                                <td></td> 
                            </tr> 
                        </table> 
                    </td> 
                </tr> 
                <tr> 
                    <td colspan="2">&nbsp;</td> 
                    <td></td> 
                </tr> 
                <tr><td>&nbsp;</td></tr> 
Benefrancis do Nascimento
SISTEMA WEB
137 
 
                <tr> 
                    <td class="Txt" width="20">&nbsp;</td> 
                    <td class="Txt" width="80" align="left"> 
                        <input type="hidden" name="op" value="1" /> 
                        <input type="button" name="Btn_Entrar" value="Cadastrar"  
onClick="Validar(document.Formulario);"    > 
                    </td> 
                </tr> 
                <tr><td>&nbsp;</td></tr> 
                <%} 
                            } catch (Exception e) { 
                                out.print("<br>"); 
                                out.print("<center><font face='verdana' color='red'   size='2'>" 
                                        + "Erro ao cadastrar Utilizador</font></center>"); 
                                out.print(e.getMessage()); 
                            } 
 %> 
                <tr> 
                    <td colspan="2"> 
                        <jsp:include page="../geral/rodape.jsp" /> 
                    </td> 
                </tr> 
            </table> 
        </form> 
    </body> 
</html> 
Figura 98 ‐ Código fonte do arquivo pessoa.jsp do diretório cadastros 
 
Layout da página de cadastramento de pessoa
 
Benefrancis do Nascimento
SISTEMA WEB
138 
 
Abaixo o layout da página de cadastramento de pessoa. 
 
Figura 99 ‐ Layout da página de cadastramento de pessoa 
Animal.jsp
 
Para cadastrar um animal o usuário deverá primeiro selecionar o dono do animal e em seguida 
pressionar o botão prosseguir. Em seguida digitar os dados do animal e por fim pressionar o 
botão cadastrar.  
 
Elementos do formulário
Abaixo segue a lista dos elementos e suas propriedades: 
Benefrancis do Nascimento
SISTEMA WEB
139 
 
Tabela 3 ‐ Elementos do formulário para cadastramento de animal 
Índice  Id  Nome Tipo Valor Tamanho  Tamanho 
máximo 
0    idPessoa  hidden 1  
1  tipoAnimal  tipoAnimal  select  
2  nome  nome  text 50  100 
3  raca  raca  text 24  50 
4    dataNascimento text 11  10 
5  sexo  sexo  select  
6    observacao  textarea  
7    op  hidden 2  
8    Btn_Entrar  button Cadastrar
 
 
Codificaremos agora a página para cadastramento de animais. 
Benefrancis do Nascimento
SISTEMA WEB
140 
 
<%‐‐ 
    Document   : animal.jsp 
    Created on : 22/11/2010, 16:35:56 
 
‐‐%> 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@page import="java.util.List" %> 
<%@page import="java.util.ListIterator" %> 
<%@page import="java.util.ArrayList" %> 
<%@page import="java.util.Collection" %> 
<%@page import="java.util.Date" %> 
 
<% 
//Operações: 
// 0 = nenhuma. Neste caso exibiremos o formulário pedindo para selecionar o 
//     dono do animal. Após selecionado submit será executado. 
// 1 = buscar os animais do dono: 
//    1a) Mostraremos os dados do dono(apagaremos o combobox de listagem de donos); 
//    1b) Aguardamos que o usuário escolha o animal. Após selecionado submit será 
executado. 
// 2 = registraremos o serviço executado. 
 
//Iniciando a variável op 
Benefrancis do Nascimento
SISTEMA WEB
141 
 
            int op = 0; 
//verificando a variável op enviada pelo formulário: 
            try { 
                op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 
            } catch (Exception ex) { 
                ex.printStackTrace(); 
            } 
            List<Pessoa> pList = new ArrayList<Pessoa>(); 
%> 
 
 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
            <tr> 
                <td height="22" colspan="2" valign="top" class="Txt"><strong>CADASTRAMENTO DE 
Benefrancis do Nascimento
SISTEMA WEB
142 
 
ANIMAL DE ESTIMAÇÃO</strong></td> 
            </tr> 
            <tr> 
                <td colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                </td> 
            </tr> 
            <%  if (op == 0) {%> 
            <tr> 
                <td colspan="2"> 
                    <form action="animal.jsp" method="post" name="Formulario" > 
 
                        <table width="750" border="0" cellpadding="0" cellspacing="0"> 
                            <tr> 
                                <td colspan="2"> 
                            <tr> 
                                <td width="162" class="Txt">Dono do animal</td> 
                                <td width="436" class="Txt"> 
                                    <select name="idPessoa"> 
                                        <option value="0">  Selecione  </option> 
                                        <% 
                                  pList = Pessoa.consultar(); 
                                  for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 
Benefrancis do Nascimento
SISTEMA WEB
143 
 
                                      Pessoa achei = (Pessoa) iter.next(); 
                                %> 
                                        <option value="<% out.print(achei.getIdPessoa());%>"><% 
out.print(achei.getNome());%></option> 
                                        <% 
                                  } 
                                %> 
                                    </select> 
                                </td> 
 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">&nbsp;</td> 
                                <td class="Txt"><input type="hidden" name="op" value="1" /> 
                                    <input type="button" name="Btn_Entrar" value="Prosseguir >>"  
onClick="ValidarRegistro1(document.Formulario);"  > 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
Benefrancis do Nascimento
SISTEMA WEB
144 
 
                            </tr> 
                        </table> 
 
                    </form> 
 
                    <jsp:include page="../geral/rodape.jsp" /> 
 
                </td> 
            </tr> 
            <% } else if (op == 1) {%> 
            <tr> 
                <td colspan="2"> 
                    <form action="animal.jsp" method="post" name="Formulario" > 
 
                        <table width="750" border="0" cellpadding="0" cellspacing="0"> 
                            <% 
                       int idPessoa = 
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 
                       Pessoa donoAnimal = Pessoa.consultar(idPessoa); 
                      %> 
 
                            <tr> 
                                <td colspan="2"> 
                                    <input type="hidden" name="idPessoa" 
value="<%out.print(donoAnimal.getIdPessoa());%>" /> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0"> 
Benefrancis do Nascimento
SISTEMA WEB
145 
 
                                        <tr> 
                                            <td width="20%" class="TopoTit">CLIENTE: </td> 
                                            <td class="TextoTit"><% out.print(donoAnimal.getNome());%></td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" 
class="Txt"><strong>ANIMAL</strong></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr> 
                                            <td width="162" class="Txt">Tipo</td> 
                                            <td width="436" class="Txt"> 
                                                <select name="tipoAnimal" id="tipoAnimal"> 
                                                    <option value="0">Selecione</option> 
                                                    <option value="1">Cachorro</option> 
                                                    <option value="2">Gato</option> 
                                                </select> 
Benefrancis do Nascimento
SISTEMA WEB
146 
 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td width="162" height="27" valign="top" class="Txt">Nome</td> 
                                            <td width="436" valign="top" class="Txt"><input name="nome" 
type="text" id="nome" size="50" maxlength="100"> 
                                            <span class="style1">*</span></td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Raça</td> 
                                            <td valign="top" class="Txt"><input name="raca" type="text" 
id="raca"  size="24"  maxLength="50" ></td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Data de Nascimento</td> 
                                            <td valign="top" class="Txt"><input name="dataNascimento" 
type="text"  size="11"  maxLength="10" OnKeyPress="formatar(this, '##/##/####')" 
onKeyUp="javascript:Sonumero(this)"></td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Sexo</td> 
                                            <td valign="top" class="Txt"> 
                                                <select name="sexo" id="sexo"> 
                                                    <option value="0">Selecione</option> 
                                                    <option value="M">Macho</option> 
                                                    <option value="F">Femea</option> 
                                                </select> 
Benefrancis do Nascimento
SISTEMA WEB
147 
 
                                            <td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Observacao</td> 
                                            <td valign="top" class="Txt"> 
                                                <textarea name="observacao" rows="4" cols="50"></textarea> 
                                            <td> 
                                        </tr> 
                                        <tr> 
                                            <td colspan="2">&nbsp;</td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td class="Txt" width="23%">&nbsp;</td> 
                                <td class="Txt" width="77%"> 
                                    <input type="hidden" name="op" value="2" /> 
                                    <input type="button" name="Btn_Entrar" value="Cadastrar"  
onClick="ValidarAnimal(document.Formulario);"    > 
                                </td> 
                            </tr> 
                            <tr> 
Benefrancis do Nascimento
SISTEMA WEB
148 
 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                        </table> 
                        <jsp:include page="../geral/rodape.jsp" /> 
 
                    </form> 
                </td> 
            </tr> 
            <%} else if (op == 2) {%> 
            <tr> 
                <td colspan="2"> 
                    <% 
      
                          //Declarando variáveis 
                          //Pessoa 
                          Pessoa pessoa = null; 
                          int idPessoa = 0; 
 
                          //Animal 
                          Animal animal = null; 
                          int tipoAnimal = 0; 
                          String nome = null; 
                          String raca = null; 
                          String dataNascimento = null; 
                          String sexo = null; 
Benefrancis do Nascimento
SISTEMA WEB
149 
 
                          String observacao = null; 
 
                          //Tipo, nome, data de nascimento e sexo são obrigatórios 
                          try { 
                              try { 
                                  idPessoa = 
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 
                                  pessoa = Pessoa.consultar(idPessoa); 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("Erro ao construir o Objeto pessoa"); 
                              } 
 
                              try { 
                                  tipoAnimal = 
Integer.parseInt(Util.SoNumero(request.getParameter("tipoAnimal"))); 
                                  if (tipoAnimal == 1) { 
                                      animal = new Cachorro(); 
                                  } else if (tipoAnimal == 2) { 
                                      animal = new Gato(); 
                                  } else { 
                                      throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Selecione o Tipo do animal</font></center><br>"); 
                                  } 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
Benefrancis do Nascimento
SISTEMA WEB
150 
 
color='red'   size='2'><br />Erro ao pegar o tipo do animal</font></center><br>"); 
                              } 
 
                              try { 
                                  nome = request.getParameter("nome"); 
                                  if (nome == null || nome == "" || nome == "0") { 
                                      throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Informe o nome do animal</font></center><br>"); 
                                  } else { 
                                      animal.setNome(nome); 
                                  } 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Erro ao pegar o nome do animal</font></center><br>"); 
                              } 
 
                              try { 
                                  raca = request.getParameter("raca"); 
                                  animal.setRaca(raca); 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Erro ao capturar a raça do animal</font></center><br>"); 
 
                              } 
 
Benefrancis do Nascimento
SISTEMA WEB
151 
 
                              try { 
                                  dataNascimento = request.getParameter("dataNascimento"); 
 
                                  //validar data e construir um objeto Date() caso a data seja válida 
                                  if (dataNascimento == null || dataNascimento == "" || dataNascimento == 
"0") { 
                                      throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Informe a data de nascimento do animal</font></center><br>"); 
                                  } else if (Util.validarData(dataNascimento) != true) { 
                                      throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />A data de nascimento do animal é inválida</font></center><br>"); 
                                  } else { 
                                      animal.setDataNascimento(new Date(dataNascimento)); 
                                  } 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                              } 
 
                              try { 
                                  sexo = request.getParameter("sexo"); 
                                  if (sexo == null || sexo == "" || sexo == "0") { 
                                      throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Informe o sexo do animal</font></center><br>"); 
                                  } else { 
                                      animal.setSexo(sexo.charAt(0)); 
                                  } 
                              } catch (Exception ex) { 
Benefrancis do Nascimento
SISTEMA WEB
152 
 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Informe o sexo do animal</font></center><br>"); 
 
                              } 
 
                              try { 
                                  observacao = request.getParameter("observacao"); 
                                  if (observacao != "") { 
                                      animal.setObservacao(observacao); 
                                  } 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Erro ao pegar o parâmetro Observação</font></center><br>"); 
                              } 
                              animal.setPessoa(pessoa); 
                              animal.setIdAnimal(1); 
                              //Adicionando a uma lista os servicos executados 
                              ArrayList<Servico> servico = new ArrayList<Servico>(); 
                              animal.setServico(servico); 
                              //salvando 
                              animal.salvar(animal); 
                              out.print("<br><center><font face='verdana' color='blue'   size='2'><br 
/>Animal cadastrado com sucesso em nosso banco de dados</font></center><br><br><br>");
                          } catch (Exception ex) { 
                              ex.printStackTrace(); 
Benefrancis do Nascimento
SISTEMA WEB
153 
 
                              out.print("<br>"); 
                              out.print("<br>"); 
                              out.print("<br>"); 
                              out.print("<br><center><font face='verdana' color='red'   size='2'><br />Erro 
ao cadastrar o animal</font></center><br>"); 
                              out.print(ex.getMessage()); 
                              out.print("<br>"); 
                              out.print("<br>"); 
                          } 
                    %> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            <tr> 
                <% }//fim do if de op%> 
        </table> 
 
    </body> 
</html> 
Figura 100 ‐ código fonte da página para cadastramento de animais 
Benefrancis do Nascimento
SISTEMA WEB
154 
 
Layout da página para registro de animal

Figura 101 ‐ Layout da página para registro de animal 
Benefrancis do Nascimento
SISTEMA WEB
155 
 

 
 
 
 
 
 
 
 
 
 
 
Codificando arquivos do diretório serviços
Benefrancis do Nascimento
SISTEMA WEB
156 
 
Introdução
 
Neste diretório teremos apenas um arquivo; O registra.jsp que será o responsável pelo 
cadastramento de serviços realizados no animal. 
registrar.jsp
 
Para registrar um serviço, será necessário selecionar uma pessoa, e em seguida o animal desta 
pessoa, para que seja aberto o formulário com os campos para cadastramento do serviço. 
 
A tela deverá possuir um formulário. Veja a tag: 
<form action="registrar.jsp" method="post" name="Formulario" > 
<!—Incluir os elementos do formulário aqui ‐‐> 
</form> 
Elementos do formulário para registro de serviço

Tabela 4 ‐ Elementos do formulário para registro de serviço 
Índice  Id  Nome  Tipo Valor Tamanho Tamanho 
máximo 
0    idPessoa  hidden 1  
1  servico  servico  select  
2  nome  nome  text 50 100 
3    valor  text 11 10 
4    observacao  textarea  
5    op hidden 3  
6    idAnimal  hidden 1  
7    Btn_Entrar  button Cadastrar
 
 
Benefrancis do Nascimento
SISTEMA WEB
157 
 
Codificaremos agora a página para registro de serviço.
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@page import="java.util.List" %> 
<%@page import="java.util.Date" %> 
<%@page import="java.util.ListIterator" %> 
<%@page import="java.util.ArrayList" %> 
<%@page import="java.util.Collection" %> 
<%@page import="java.util.Date" %> 
<% 
//Operações: 
// 0 = nenhuma. Neste caso exibiremos o formulário pedindo para selecionar o dono do 
animal. Após selecionado submit será executado. 
// 1 = buscar os animais do dono: 
//    1a) Mostraremos os dados do dono(apagaremos o combobox de listagem de donos); 
//    1b) Aguardamos que o usuário escolha o animal. Após selecionado submit será 
executado. 
// 2 = registraremos o serviço executado. 
 
//Iniciando a variável op 
            int op = 0; 
//verificando a variável op enviada pelo formulário: 
            try { 
                op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 
            } catch (Exception ex) { 
Benefrancis do Nascimento
SISTEMA WEB
158 
 
                ex.printStackTrace(); 
            } 
             
            List<Pessoa> pList = new ArrayList<Pessoa>(); 
            
            List<Animal> aList = new ArrayList<Animal>(); 
              
            //Serviço 
            int servicoEscolhido = 0; 
            Servico servico = null; 
            String nome = null; 
             
%> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body>         
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
Benefrancis do Nascimento
SISTEMA WEB
159 
 
            <tr> 
                <td height="22" colspan="2" valign="top" class="Txt"><strong>CADASTRAMENTO DE  
SERVIÇOS NO ANIMAL</strong></td> 
            </tr> 
            <tr> 
                <td colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                </td> 
            </tr> 
            <%  if (op == 0) {%> 
            <tr> 
                <td colspan="2"> 
                    <form action="registrar.jsp" method="post" name="Formulario" > 
                        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
                            <tr> 
                                <td colspan="2"> 
                            <tr> 
                                <td width="162" class="Txt">Dono do animal</td> 
                                <td width="436" class="Txt"> 
                                    <select name="idPessoa"> 
                                        <option value="0">  Selecione  </option> 
                                        <% 
                                  pList = Pessoa.consultar(); 
                                  for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 
Benefrancis do Nascimento
SISTEMA WEB
160 
 
                                      Pessoa achei = (Pessoa) iter.next(); 
                               %> 
                                        <option value="<% out.print(achei.getIdPessoa());%>"><% 
out.print(achei.getNome());%></option> 
                                        <% 
                                  } 
                             %> 
                                    </select> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">&nbsp;</td> 
                                <td class="Txt"><input type="hidden" name="op" value="1" /> 
                                    <input type="button" name="Btn_Entrar" value="Prosseguir >>"  
onClick="ValidarRegistro1(document.Formulario);"  > 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
 
Benefrancis do Nascimento
SISTEMA WEB
161 
 
                            </tr> 
                        </table> 
                    </form> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
            <% } else if (op == 1) {%> 
            <tr> 
                <td colspan="2"> 
                    <form action="registrar.jsp" method="post" name="Formulario" > 
                        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
                            <% 
                      int idPessoa = 
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 
                      Pessoa donoAnimal = Pessoa.consultar(idPessoa); 
                      %> 
                            <tr> 
                                <td colspan="2"> 
                                    <input type="hidden" name="idPessoa" 
value="<%out.print(donoAnimal.getIdPessoa());%>" /> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0"> 
                                        <tr> 
                                            <td width="20%" class="TopoTit">CLIENTE: </td> 
                                            <td class="TextoTit"><% out.print(donoAnimal.getNome());%></td> 
                                        </tr> 
                                    </table> 
Benefrancis do Nascimento
SISTEMA WEB
162 
 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            <tr> 
                                <td width="162" class="Txt">ANIMAL DE ESTIMAÇÃO</td> 
                                <td width="436" class="Txt"> 
                                    <select name="idAnimal"> 
                                        <option value="0">  Selecione  </option> 
                                        <% 
                                  aList = (ArrayList<Animal>) Animal.consultar(donoAnimal); 
                                  for (ListIterator iter = aList.listIterator(); iter.hasNext();) { 
                                      Animal acheiAnimal = (Animal) iter.next(); 
                               %> 
                                        <option value="<% out.print(acheiAnimal.getIdAnimal());%>"><% 
out.print(acheiAnimal.getNome());%></option> 
                                        <% 
                                  } 
                               %> 
                                    </select> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
Benefrancis do Nascimento
SISTEMA WEB
163 
 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">&nbsp;</td> 
                                <td class="Txt"> 
                                    <input type="hidden" name="op" value="2" /> 
                                    <input type="button" name="Btn_Entrar" value="Prosseguir >>"  
onClick="ValidarRegistro2(document.Formulario);" > 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
 
                            </tr> 
                        </table> 
                        <jsp:include page="../geral/rodape.jsp" /> 
 
                    </form> 
 
                </td> 
            </tr> 
            <%} else if (op == 2) {%> 
 
            <tr> 
                <td  height="104" colspan="2" valign="top" > 
                    <form action="registrar.jsp" method="post" name="Formulario" > 
Benefrancis do Nascimento
SISTEMA WEB
164 
 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                            <!‐‐DWLayoutTable‐‐> 
                            <% 
                          int idPessoa = 
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 
                          Pessoa donoAnimal = Pessoa.consultar(idPessoa); 
 
                          int idAnimal = 
Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 
                          Animal animal = Animal.consultar(idAnimal); 
                      %> 
                            <tr> 
                                <td colspan="2"> 
                                    <input type="hidden" name="idPessoa" 
value="<%out.print(donoAnimal.getIdPessoa());%>" /> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr > 
                                            <td width="20%" class="TopoTit">CLIENTE: </td> 
                                            <td class="TextoTit"><% out.print(donoAnimal.getNome());%></td> 
                                        </tr> 
                                        <tr> 
                                            <td width="20%" class="TopoTit">ANIMAL DE ESTIMAÇÃO: </td> 
                                            <td class="TextoTit" ><% out.print(animal.getNome());%></td> 
                                        </tr> 
                                    </table> 
Benefrancis do Nascimento
SISTEMA WEB
165 
 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" class="Txt"><strong>SERVIÇO 
EXECUTADO</strong></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr> 
                                            <td width="165" class="Txt">Serviço</td> 
                                            <td width="581" class="Txt"> 
                                                <select name="servico" id="servico"> 
                                                    <option value="0">Selecione</option> 
                                                    <option value="1">Consulta Veterinária</option> 
                                                    <option value="2">Banho</option> 
                                                    <option value="3">Tosa</option> 
                                                    <option value="4">Vacina</option> 
                                                </select> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td width="165" height="27" valign="top" class="Txt">Nome / 
Benefrancis do Nascimento
SISTEMA WEB
166 
 
Descrição </td> 
                                            <td width="581" valign="top" class="Txt"> 
                                                <input name="nome" type="text" id="nome" size="50" 
maxlength="100"> 
                                                <span class="style1">*</span></td> 
                                        </tr> 
 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Valor R$ </td> 
                                            <td valign="top" class="Txt"> 
                                                <input name="valor" type="text"  size="11"  maxLength="10" 
onKeyUp="javascript:Sonumero(this)"> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Observacao</td> 
                                            <td valign="top" class="Txt"> 
                                                <textarea name="observacao" rows="4" cols="50"></textarea> 
                                            <td width="10"> 
                                        </tr> 
                                        <tr> 
                                            <td colspan="2">&nbsp;</td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
Benefrancis do Nascimento
SISTEMA WEB
167 
 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td class="Txt" width="23%">&nbsp;</td> 
                                <td class="Txt" width="77%"> 
                                    <input type="hidden" name="op" value="3" /> 
                                    <input type="hidden" name="idAnimal" value="<% 
out.print(Util.SoNumero(request.getParameter("idAnimal")));%>" /> 
                                    <input type="button" name="Btn_Entrar" value="Cadastrar"  
onClick="ValidarRegistro(document.Formulario);"    > 
                                </td> 
                            </tr> 
 
                        </table> 
                    </form> 
                </td> 
            </tr> 
            <tr> 
                <td colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
Benefrancis do Nascimento
SISTEMA WEB
168 
 
            <%} else if (op == 3) {%> 
            <tr> 
                <td colspan="2"> 
                    <% 
                    try{ 
                    Animal animal=null; 
                          try { 
                              //Cadastraremos o serviço executado no animal de estimação de uma pessoa
                              //Buscando Animal 
                              int idAnimal = 
Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 
                              animal = Animal.consultar(idAnimal); 
                              if (animal == null) { 
                                  throw new RuntimeException("Erro na busca dos dados do animal."); 
                              } 
                              //Criando um objeto serviço conforme o serviço escolhido: 
                              try { 
                                  servicoEscolhido = 
Integer.parseInt(Util.SoNumero(request.getParameter("servico"))); 
                                  switch (servicoEscolhido) { 
                                      case 1: 
                                          servico = new Banho(); 
                                          break; 
                                      case 2: 
                                          servico = new Consulta(); 
                                          break; 
Benefrancis do Nascimento
SISTEMA WEB
169 
 
                                      case 3: 
                                          servico = new Tosa(); 
                                          break; 
                                      case 4: 
                                          servico = new Vacina(); 
                                          break; 
                                      default: 
                                          throw new RuntimeException("Serviço inválido! Favor selecionar o 
serviço executado."); 
                                  } 
                              } catch (Exception ex) { 
                              } 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Erro ao pegar o nome do serviço efetuado</font></center><br>"); 
                              } 
                              double valor = 0; 
                              try { 
                                  valor = Double.parseDouble(request.getParameter("valor")); 
                                  servico.setValor(valor); 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Informe corretamente o valor do serviço 
executado</font></center><br>"); 
                              } 
Benefrancis do Nascimento
SISTEMA WEB
170 
 
                              String descricao = null; 
                              try { 
                                  descricao = request.getParameter("nome"); 
                                  servico.setDescricao(descricao); 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Erro ao pegar o nome / descrição do serviço 
efetuado</font></center><br>"); 
                              } 
                              String observacao = null; 
                              try { 
                                  observacao = request.getParameter("observacao"); 
                                  servico.setObservacao(observacao); 
                              } catch (Exception ex) { 
                                  ex.printStackTrace(); 
                                  throw new RuntimeException("<br><center><font face='verdana' 
color='red'   size='2'><br />Erro ao pegar observação referente ao serviço 
efetuado</font></center><br>"); 
                              } 
                              //Adicionando o animal 
                              servico.setAnimal(animal); 
                              servico.setData(new Date()); 
                              //salvando 
                              servico.salvar(servico); 
                              out.print("<br>"); 
                              out.print("<br>"); 
Benefrancis do Nascimento
SISTEMA WEB
171 
 
                              out.print("<br>"); 
                              out.print("<br><center><font face='verdana' color='blue'   size='2'><br 
/>Serviço cadastrado com sucesso</font></center><br>"); 
                              out.print("<br>"); 
                              out.print("<br>"); 
                          } catch (Exception ex) { 
                              ex.printStackTrace(); 
                              out.print("<br>"); 
                              out.print("<br>"); 
                              out.print("<br>"); 
                              out.print("<br><center><font face='verdana' color='red'   size='2'><br />Erro 
ao cadastrar o serviço executado</font></center><br>"); 
                              out.print("<br><center><font face='verdana' color='red'   size='2'><br />" + 
ex.getMessage() + "</font></center><br>"); 
                              out.print("<br>"); 
                              out.print("<br>"); 
                          } 
                    %> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
            <% }//fim do if de op%> 
        </table> 
    </body> 
</html> 
Figura 102 ‐ Código fonte da página para registro de serviço 
 
Benefrancis do Nascimento
SISTEMA WEB
172 
 
Layout da pagina para registro de serviço
 
Figura 103 ‐ Layout da pagina para registro de serviço 
Benefrancis do Nascimento
SISTEMA WEB
173 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Codificando arquivos do diretório consultas
Benefrancis do Nascimento
SISTEMA WEB
174 
 
Introdução
 
Neste diretório teremos telas para consulta de Pessoas, animais e serviços. No relatório das 
consultas terão opções para detalhar, editar, excluir e etc. São arquivos deste diretório: 
Tabela 5 ‐ Arquivos do diretório consultas 
NOME  DESCRIÇÃO 
pessoa.jsp  Retorna todas as pessoas cadastradas no 
sistema. Apresenta link para cadastrar um 
novo animal para uma pessoa, visualizar os 
dados da pessoa, editar os dados da pessoa 
ou excluir a pessoa. 
animal.jsp  Retorna os animais cadastrados para uma 
pessoa selecionada ou todos os animais 
registrados. Apresenta link para incluir novo 
serviço para o animal, visualizar os dados 
deste animal, editar os dados do animal ou 
excluir o animal. 
servico.jsp  Retorna todos os serviços realizados. 
Apresenta link para visualizar os dados do 
serviço realizado, editar o serviço ou excluir o 
serviço. 
detalhe_pessoa.jsp  Exibe todas as informações de uma pessoa. 
detalhe_animal.jsp  Exibe todas as informações de um animal. 
detalhe_servico.jsp  Exibe todas as informações de um serviço 
realizado. 
editar_pessoa.jsp  Permite alterar os dados de uma pessoa 
editar_animal.jsp  Permite alterar os dados de um animal. 
editar_servico.jsp  Permite alterar os dados de um serviço 
realizado. 
excluir_pessoa.jsp  Permite excluir uma pessoa do sistema. 
excluir_animal.jsp  Permite excluir um animal do sistema. 
Benefrancis do Nascimento
SISTEMA WEB
175 
 
excluir_serviço.jsp  Permite excluir um serviço realizado em um 
animal cadastrado no sistema. 
Pessoa.jsp
 
A página pessoa.jsp do diretório consultas lista todas as pessoas cadastradas no sistema. Veja 
abaixo o código fonte. 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@page import="java.util.ArrayList" %> 
<%@page import="java.util.Date" %> 
<%@page import="java.util.List" %> 
<%@page import="java.util.ListIterator" %> 
<% 
//Iniciando variavel que receberá a lista de pessoas 
List<Pessoa> pList = new ArrayList<Pessoa>(); 
%> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
Benefrancis do Nascimento
SISTEMA WEB
176 
 
                </td> 
            </tr> 
            <tr> 
                <td height="22" colspan="2" valign="top" 
class="Txt"><strong>PESSOAS</strong></td> 
            </tr> 
            <tr> 
                <td colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                </td> 
            </tr> 
            <tr> 
                <td colspan="2"><hr size="1"></td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                    <table border="0" width="100%"> 
                        <thead> 
                            <tr class="TopoTit"> 
                                <th>NOME</th> 
                                <th>TELEFONES</th> 
                                <th>EMAIL</th> 
                                <th>ANIMAIS</th> 
                                <th>AÇÕES</th> 
Benefrancis do Nascimento
SISTEMA WEB
177 
 
                            </tr> 
                        </thead> 
                        <tbody> 
                            <% 
                                        pList = Pessoa.consultar(); 
                                        for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 
                                            Pessoa achei = (Pessoa) iter.next(); 
                      %> 
                            <tr> 
                                <td align="left" class="Txt"><% out.print(achei.getNome());%></td> 
                              
                                <td align="left" class="Txt"> 
                                <% 
                        List<Telefone> telefones = (List<Telefone>)   Telefone.consultar(achei); 
                        for (int i = 0; i <= telefones.size(); i++) { 
                            try { 
                                out.print(telefones.get(i).getDdd()); 
                                out.print(" ‐ "); 
                                out.print(telefones.get(i).getNumero()+"&nbsp;&nbsp;"); 
                                } catch (Exception e) { 
                                } 
                            } 
                        %> 
                                </td> 
                                <td align="left" class="Txt"><%out.print(achei.getEmail());%></td> 
Benefrancis do Nascimento
SISTEMA WEB
178 
 
                                <td align="center" class="Txt"> 
                                <% 
                        List<Animal> animais = (ArrayList<Animal>) Animal.consultar(achei); 
                         
                        out.print(animais.size()); 
 
                        %> 
                                </td> 
                                <td class="Txt" align="center"> 
                                    <table border="0" align="center" cellpadding="2" cellspacing="2" 
width="100%" > 
                                        <tr align="center" valign="middle"> 
                                            <td> 
                                                <a 
href="../cadastros/animal.jsp?op=1&amp;idPessoa=<%out.print(achei.getIdPessoa());%>"> 
                                                    <img src="../images/img_gato.png" width="30" height="30" 
alt="Inserir animal de estimação" title="Inserir animal de estimação" border="0" /> 
                                                </a> 
                                            </td> 
                                            <td> 
                                                <a 
href="../consultas/detalhe_pessoa.jsp?idPessoa=<%out.print(achei.getIdPessoa());%>"> 
                                                    <img src="../images/img_lupa_transparente.png" width="30" 
height="30" alt="consultar" title="consultar" border="0"/> 
                                                </a> 
                                            </td> 
                                            <td> 
                                                <a 
Benefrancis do Nascimento
SISTEMA WEB
179 
 
href="../consultas/editar_pessoa.jsp?op=2&amp;idPessoa=<%out.print(achei.getIdPessoa());%
>"> 
                                                    <img src="../images/img_caderno_transparente.png" width="30" 
height="30" border="0" alt="editar" title="editar"/> 
                                                </a> 
                                            </td> 
                                            <td> 
                                                <a 
href="../consultas/excluir_pessoa.jsp?idPessoa=<%out.print(achei.getIdPessoa());%>"> 
                                                    <img src="../images/img_lixeira_transparente.png" width="30" 
height="30" border="0" alt="excluir" title="excluir"/> 
                                                </a> 
                                            </td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <%}%> 
                        </tbody> 
                    </table> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
        </table> 
    </body> 
</html> 
 
Benefrancis do Nascimento
SISTEMA WEB
180 
 
Layout da página de consulta de pessoas
 
Abaixo o layout da página de consulta de pessoas. 
Figure 4 ‐ Layout da página de consulta de pessoas 

Editar_pessoa.jsp
Veja o código da pagina editar_pessoa.jsp 
 
Benefrancis do Nascimento
SISTEMA WEB
181 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@ page import="java.util.List"%> 
<%@ page import="java.util.ArrayList"%> 
<%@ page import="java.util.ListIterator" %> 
<%@ page import="java.util.Collection" %> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <form action="editar_pessoa.jsp" method="post" name="Formulario" > 
            <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
                <tr> 
                    <td colspan="2"> 
                        <jsp:include page="../geral/topo.jsp" /> 
                    </td> 
                </tr> 
                <tr> 
                    <td colspan="2"> 
                    <% 
                    //iniciando variáveis: 
                    int op = 0; 
                    String tipo = null; 
Benefrancis do Nascimento
SISTEMA WEB
182 
 
                    int idPessoa=0; 
                    Pessoa p = null; 
                    String nome = ""; 
                    String razao = ""; 
                    String docReceita = ""; 
                    int dddTel = 0; 
                    String Tel = ""; 
                    int dddCel = 0; 
                    String Cel = ""; 
                    int dddFax = 0; 
                    String Fax = ""; 
 
                    try { 
                        if (!request.getParameter("op").isEmpty()) { 
                            op = Integer.parseInt(request.getParameter("op")); 
                        } 
                    } catch (Exception ex) { 
                     throw new RuntimeException("<center><font face='verdana' color='red'   
size='2'>Erro ao tentar localizar dados da pessoa.<br /> Verifique os dados e tente 
novamente</font></center>"); 
                    } 
 
                    try{ 
                      idPessoa = Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 
                    }catch(Exception e){ 
                     throw new RuntimeException("<center><font face='verdana' color='red'   
size='2'>Erro ao tentar localizar dados da pessoa.<br /> Verifique os dados e tente 
Benefrancis do Nascimento
SISTEMA WEB
183 
 
novamente</font></center>"); 
                    } 
 
                    p = new PF().consultar(idPessoa); 
                    try { 
                    if (op == 1) { 
                    try{ 
                      idPessoa = Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 
                    }catch(Exception e){ 
                     throw new RuntimeException("<center><font face='verdana' color='red'   
size='2'>Erro ao tentar localizar dados da pessoa.<br /> Verifique os dados e tente 
novamente</font></center>"); 
                    } 
                        try { 
                            tipo = request.getParameter("Tipo"); 
                        } catch (Exception ex) { 
                        } 
                        if (tipo == "PJ") { 
 
                            p = new PJ().consultar(idPessoa); 
                            try { 
                                nome = request.getParameter("razao"); 
                                docReceita = request.getParameter("CNPJ"); 
                                docReceita = Util.SoNumero(docReceita); 
                                //Criando uma pessoa juridica 
                            } catch (Exception ex) { 
                                throw new RuntimeException("<center><font face='verdana' color='red'   
Benefrancis do Nascimento
SISTEMA WEB
184 
 
size='2'>Erro ao cadastrar Utilizador.<br /> Verifique os dados de Pessoa Jurídica tente 
novamente</font></center>"); 
                            } 
                        } else { 
 
                            p = new PF().consultar(idPessoa); 
 
                            try { 
                                nome = request.getParameter("Nome"); 
                                docReceita = request.getParameter("CPF"); 
                                docReceita = Util.SoNumero(docReceita); 
                            } catch (Exception ex) { 
                                throw new RuntimeException("<center><font face='verdana' color='red'   
size='2'>Erro ao cadastrar Utilizador.<br /> Verifique os dados de Pessoa física tente 
novamente</font></center>"); 
                            } 
                        } 
                        //Endereço da pessoa 
                        Endereco endereco = new Endereco(); 
                        String logradouro = ""; 
                        String numero = ""; 
                        String complemento = ""; 
                        String bairro = ""; 
                        String cep = ""; 
                        String cidade = ""; 
                        String uf = ""; 
                                                
Benefrancis do Nascimento
SISTEMA WEB
185 
 
                        //Endereço 
                        List<Endereco> novoEndereco = new ArrayList<Endereco>(); 
                        try { 
                            logradouro = request.getParameter("logradouro"); 
                            numero = request.getParameter("Numero"); 
                            complemento = request.getParameter("Complemento"); 
                            bairro = request.getParameter("Bairro"); 
                            cep = Util.SoNumero(request.getParameter("CEP")); 
                            cidade = request.getParameter("Cidade"); 
                            uf = request.getParameter("uf"); 
                            if (logradouro == "" || numero == "" || bairro == "" || cidade == "" || uf == "" 
|| cep == "") { 
                                throw new RuntimeException("O endereço deve conter logradouro, número, 
Bairro, Cidade, Estado e CEP"); 
                            } else { 
                                endereco.setLogradouro(logradouro); 
                                endereco.setBairro(bairro); 
                                endereco.setCep(cep); 
                                endereco.setCidade(cidade); 
                                endereco.setComplemento(complemento); 
                                endereco.setNumero(numero); 
                                endereco.setUf(uf); 
                            } 
                        } catch (Exception ex) { 
                            throw new RuntimeException("Logradouro é um campo obrigatório"); 
                        } 
Benefrancis do Nascimento
SISTEMA WEB
186 
 
 
                        //Telefones 
                        ArrayList<Telefone> telefone = new ArrayList<Telefone>(); 
                        try { 
                            dddTel = Integer.parseInt(Util.SoNumero(request.getParameter("TelDDD"))); 
                            Tel = Util.SoNumeroTel(request.getParameter("Tel")); 
                        } catch (Exception eTel) { 
                        } 
                        try { 
                            dddCel = 
Integer.parseInt(Util.SoNumero(request.getParameter("TelCelDDD"))); 
                            Cel = Util.SoNumeroTel(request.getParameter("TelCel")); 
                        } catch (Exception eCel) { 
                        } 
                        try { 
                            dddFax = 
Integer.parseInt(Util.SoNumero(request.getParameter("TelFaxDDD"))); 
                            Fax = Util.SoNumeroTel(request.getParameter("TelFax")); 
                        } catch (Exception eFax) { 
                        } 
 
                        if (dddTel != 0 && Tel != "") { 
                            telefone.add(new Telefone(dddTel, Tel, p)); 
                        } 
 
                        if (dddCel != 0 && Cel != "") { 
Benefrancis do Nascimento
SISTEMA WEB
187 
 
                            telefone.add(new Telefone(dddCel, Cel, p)); 
                        } 
 
                        if (dddFax != 0 && Fax != "") { 
                            telefone.add(new Telefone(dddFax, Fax, p)); 
                        } 
                                      
                        //Excluindo endereço anterior 
                        List<Endereco> end = endereco.consultar(p); 
                        for(int i=0; i<end.size();i++){ 
                          Endereco.excluir(end.get(i)); 
                        } 
 
                        //Excluindo Telefones anteriores 
                        List<Telefone> tel = (List<Telefone>) Telefone.consultar(p); 
                        for(int i=0; i<tel.size();i++){ 
                          Telefone.excluir(tel.get(i)); 
                        } 
                             
                        p.setNome(nome); 
                        endereco.setPessoa(p); 
                        novoEndereco.add(endereco); 
                        p.setEndereco(novoEndereco); 
                        p.setTelefone(telefone); 
                        p.alterar(p); 
Benefrancis do Nascimento
SISTEMA WEB
188 
 
 
                        out.print("<br>"); 
                        out.print("<br>"); 
                        out.print("<br>"); 
                        out.print("<center><font face='verdana' color='blue'   size='2'>Utilizador 
cadastrado com sucesso</font></center>"); 
                        out.print("<br>"); 
                        out.print("<br>"); 
                        out.print("<br>"); 
 
                    } else if (op == 2) { 
 
                    %> 
                    </td> 
                </tr> 
                <tr> 
                    <td width="162" class="Txt">Tipo</td> 
                    <td width="436" class="Txt"> 
                        <select name="Tipo" id="Tipo" 
onChange="showCampo(document.forms[0][this.name].options[document.forms[0][this.nam
e].selectedIndex].value,'campo_hidden');"> 
                            <option  <%if (p.getTipo()==2) {%>  selected <%}%> value="PJ" >PJ</option> 
                            <option  <%if (p.getTipo()==1) {%>  selected <%}%> value="PF" >PF</option> 
                        </select> 
                    </td> 
 
                </tr> 
Benefrancis do Nascimento
SISTEMA WEB
189 
 
 
                <tr id="campo_hiddenPJ" style<% if (p.getTipo()==2) {%> ="display:''" <%} else {%> 
="display:none" <%}%>> 
                <td  height="104" colspan="2" valign="top"> 
 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
                            <!‐‐DWLayoutTable‐‐> 
                            <tr> 
                                <td height="1" colspan="2" valign="top"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" class="Txt"><strong>PESSOA 
JURÍDICA </strong></td> 
                            </tr> 
                            <tr> 
                                <td width="162" height="27" valign="top" class="Txt">RAZÃO SOCIAL</td> 
                                <td width="436" valign="top" class="Txt"><input name="razao" value="<% if 
(p.getTipo()==2) { 
                                                                                out.print(p.getNome()); 
                                                                            }%>" type="text" id="razao" size="50" 
maxlength="100"> 
                                    <span class="style1">*</span></td> 
                            </tr> 
                            <tr> 
                                <td height="27" valign="top" class="Txt">CNPJ</td> 
                                <td valign="top" class="Txt"> 
                                    <input name="CNPJ" 
Benefrancis do Nascimento
SISTEMA WEB
190 
 
                                           type="text" 
                                           id="CNPJ" 
                                           OnKeyPress="formatar(this, '##.###.###/####‐##')" 
                                           onKeyUp="javascript:Sonumero(this)" 
                                           size="24" 
                                           maxLength="18" 
                                           value="<% if (p.getTipo()==2) 
{out.print(p.getDocReceita().getNumero());}%>" > 
                                    + </td> 
                            </tr> 
                        </table> 
                    </td> 
 
                </tr> 
 
                <tr id="campo_hiddenPF" style<% if (p.getTipo()==1) {%> ="display:''" <%} else {%> 
="display:none" <%}%>> 
                <td  height="104" colspan="2" valign="top"> 
 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
                            <!‐‐DWLayoutTable‐‐> 
                            <tr> 
                                <td height="1" colspan="2" valign="top"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" class="Txt"><strong>PESSOA 
F&Iacute;SICA </strong></td> 
Benefrancis do Nascimento
SISTEMA WEB
191 
 
                            </tr> 
                            <tr> 
                                <td width="162" height="27" valign="top" class="Txt">Nome Completo 
</td> 
                                <td width="436" valign="top" class="Txt"> 
                                    <input 
                                        name="Nome" 
                                        value="<% if (p.getTipo()==1) {out.print(p.getNome());}%>" 
                                        type="text" 
                                        id="Nome" 
                                        size="50" 
                                        maxlength="100"> 
                                    <span class="style1">*</span></td> 
                            </tr> 
                            <tr> 
                                <td height="27" valign="top" class="Txt">CPF</td> 
                                <td valign="top" class="Txt"> 
                                    <input 
                                        name="CPF" 
                                        type="text" 
                                        id="CPF" 
                                        OnKeyPress="formatar(this, '###.###.###‐##')" 
                                        onKeyUp="javascript:Sonumero(this)" 
                                        size=17 
                                        maxlength="14" 
                                        value="<% if (p.getTipo()==1) 
Benefrancis do Nascimento
SISTEMA WEB
192 
 
{out.print(p.getDocReceita().getNumero());}%>"> 
                                    + </td> 
                            </tr> 
                        </table> 
                    </td> 
 
                </tr> 
 
 
                <tr> 
                    <td id="contato" height="104" colspan="2" valign="top"> 
 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
                            <!‐‐DWLayoutTable‐‐> 
 
 
                            <tr> 
                                <td colspan="3"><hr size="1"></td> 
                                <td></td> 
                            </tr> 
                            <tr> 
                                <td colspan="3" class="Txt"><strong>TELEFONES</strong></td> 
                            </tr> 
                            <% 
                    List<Telefone> telefones = new ArrayList<Telefone>(); 
Benefrancis do Nascimento
SISTEMA WEB
193 
 
                    telefones = (List<Telefone>)Telefone.consultar(p); 
 
                    for (int i = 0; i <= 2; i++) { 
                        if (i == 0) { 
                            try { 
                    %> 
                            <tr> 
                                <td class="Txt">Telefone</td> 
                                <td colspan="2" class="Txt"> 
                                    <%if (telefones.size() >= 1) {%> 
                                    (<input name="TelDDD" value="<%out.print(telefones.get(i).getDdd());%>" 
type="text" id="TelDDD" onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 
                                    <input name="Tel" value="<%out.print(telefones.get(i).getNumero());%>" 
type="text" id="Tel"  OnKeyPress="formatar(this, '####‐####')" 
onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 
                                    <%} else {%> 
                                    (<input name="TelDDD"  type="text" id="TelDDD" 
onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 
                                    <input name="Tel"  type="text" id="Tel"  OnKeyPress="formatar(this, 
'####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 
 
                                    <%}%> 
                                </td> 
                            </tr> 
                            <% 
                        } catch (Exception e) { 
                            e.printStackTrace(); 
Benefrancis do Nascimento
SISTEMA WEB
194 
 
                        } 
                    } 
                    if (i == 1) { 
                        try { 
                    %> 
                            <tr> 
                                <td class="Txt">Telefone</td> 
                                <td colspan="2" class="Txt"> 
 
                                    <%if (telefones.size() >= 2) {%> 
                                    (<input name="TelCelDDD" 
value="<%out.print(telefones.get(i).getDdd());%>" type="text" 
onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 
                                    <input name="TelCel" 
value="<%out.print(telefones.get(i).getNumero());%>" type="text" OnKeyPress="formatar(this, 
'####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 
 
                                    <%} else {%> 
                                    (<input name="TelCelDDD"  onKeyUp="javascript:Sonumero(this)" 
size="2" maxlength="2">) 
                                    <input name="TelCel"  type="text" OnKeyPress="formatar(this, '####‐
####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 
 
                                    <%}%> 
                                </td> 
                            </tr> 
                            <% 
                        } catch (Exception e) { 
Benefrancis do Nascimento
SISTEMA WEB
195 
 
                            e.printStackTrace(); 
                        } 
                    } 
 
                    if (i == 2) { 
                        try { 
                    %> 
                            <tr> 
                                <td class="Txt">Telefone</td> 
                                <td colspan="2" class="Txt"> 
                                    <%if (telefones.size() >= 3) {%> 
                                    (<input name="TelFaxDDD" 
value="<%out.print(telefones.get(i).getDdd());%>" type="text" 
onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 
                                    <input name="TelFax" 
value="<%out.print(telefones.get(i).getNumero());%>" type="text" OnKeyPress="formatar(this, 
'####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 
                                    <%} else {%> 
                                    (<input name="TelFaxDDD"  type="text" 
onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 
                                    <input name="TelFax"  type="text" OnKeyPress="formatar(this, '####‐
####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 
                                    <%}%> 
                                </td> 
                            </tr> 
                            <% 
                            } catch (Exception e) { 
                                e.printStackTrace(); 
Benefrancis do Nascimento
SISTEMA WEB
196 
 
                            } 
                        } 
                    } 
                    %> 
                            <tr> 
                                <td colspan="3"><hr size="1"></td> 
                                <td></td> 
                            </tr> 
                            <% 
                    List<Endereco> enderecos = Endereco.consultar(p); 
 
                    for (ListIterator iter = enderecos.listIterator(); iter.hasNext();) { 
                        Endereco end = (Endereco) iter.next(); 
                    %> 
                            <tr> 
                                <td colspan="3" class="Txt"><strong>ENDERE&Ccedil;O</strong></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">LOGRADOURO</td> 
                                <td colspan="2" class="Txt"><input name="logradouro" 
value="<%out.print(end.getLogradouro());%>" type="text" size="50" maxlength="50"></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Nº</td> 
                                <td colspan="2" class="Txt"><input name="Numero" 
value="<%out.print(end.getNumero());%>" type="text" size="10" maxlength="10"></td> 
Benefrancis do Nascimento
SISTEMA WEB
197 
 
                            </tr> 
                            <tr> 
                                <td class="Txt">Complemento</td> 
                                <td colspan="2" class="Txt"><input name="Complemento" 
value="<%out.print(end.getComplemento());%>" type="text" size="30" maxlength="50"></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Bairro</td> 
                                <td colspan="2" class="Txt"><input name="Bairro" 
value="<%out.print(end.getBairro());%>"  type="text" size="30" maxlength="50"></td> 
                            </tr> 
                            <tr> 
                                <td class="Txt">Cidade</td> 
                                <td colspan="2" class="Txt"><input name="Cidade"  
value="<%out.print(end.getCidade());%>" type="text" size="30" maxlength="50"></td> 
                            </tr> 
 
                            <tr id="estados" > 
                                <td class="Txt">Estado</td> 
                                <td colspan="2" class="Txt"> 
                                    <select name="uf"> 
                                        <option value="AC">AC</option> 
                                        <option value="AL">AL</option> 
                                        <option value="AP">AP</option> 
                                        <option value="AM">AM</option> 
                                        <option value="BA">BA</option> 
                                        <option value="CE">CE</option> 
Benefrancis do Nascimento
SISTEMA WEB
198 
 
                                        <option value="DF">DF</option> 
                                        <option value="ES">ES</option> 
                                        <option value="GO">GO</option> 
                                        <option value="MA">MA</option> 
                                        <option value="MT">MT</option> 
                                        <option value="MS">MS</option> 
                                        <option value="MG">MG</option> 
                                        <option value="PA">PA</option> 
                                        <option value="PB">PB</option> 
                                        <option value="PR">PR</option> 
                                        <option value="PE">PE</option> 
                                        <option value="PI">PI</option> 
                                        <option value="RJ">RJ</option> 
                                        <option value="RN">RN</option> 
                                        <option value="RS">RS</option> 
                                        <option value="RO">RO</option> 
                                        <option value="RR">RR</option> 
                                        <option value="SC">SC</option> 
                                        <option value="SP">SP</option> 
                                        <option value="SE">SE</option> 
                                        <option value="TO">TO</option> 
                                        <option selected="true" 
value="<%out.print(end.getUf());%>"><%out.print(end.getUf());%></option> 
                                    </select></td> 
                            </tr> 
                            <tr> 
Benefrancis do Nascimento
SISTEMA WEB
199 
 
                                <td class="Txt">CEP</td> 
                                <td colspan="2" class="Txt"> 
                                    <input name="CEP" value="<%out.print(end.getCep());%>"  type="text" 
OnKeyPress="formatar(this, '#####‐###')" onKeyUp="javascript:Sonumero(this)" size="12" 
maxlength="9"> 
        + </td> 
                            </tr> 
                            <%}%> 
                        </table> 
                    </td> 
                </tr> 
                <tr> 
                    <td colspan="2">&nbsp;</td> 
                    <td></td> 
                </tr> 
                <tr> 
                    <td class="Txt" width="23%">&nbsp;</td> 
                    <td class="Txt" width="77%"> 
                        <input type="hidden" name="op" value="1" /> 
                        <input type="hidden" name="idPessoa" value="<%out.print(p.getIdPessoa());%>" 
/> 
                        <input type="button" name="Btn_Entrar" value="Alterar"  
onClick="Validar(document.Formulario);"    > 
                    </td> 
                    <td>&nbsp;</td> 
                </tr> 
                <tr> 
Benefrancis do Nascimento
SISTEMA WEB
200 
 
                    <td colspan="2"> 
                        <% 
                    } 
                } catch (Exception e) { 
                    out.print("<br>"); 
                    out.print("<center><font face='verdana' color='red'   size='2'>Erro ao 
cadastrar</font></center>"); 
                    out.print("<center><font face='verdana' color='red'   size='2'>" + e.getMessage() + 
"</font></center>"); 
                } 
                %> 
                         
                    </td> 
                </tr> 
                <tr> 
                    <td colspan="2"> 
                        <jsp:include page="../geral/rodape.jsp" /> 
                    </td> 
                </tr> 
            </table> 
        </form> 
    </body> 
</html> 
Figure 5 ‐ Código fonte da página editar_pessoa 
 
 
 
Benefrancis do Nascimento
SISTEMA WEB
201 
 
Layout da página editar_pessoa.jsp
 
Abaixo o layout da página editar_pessoa.jsp  
Figure 6 ‐ Layout da página editar_pessoa.jsp 
 
 
Excluir_pessoa.jsp
A página excluir_pessoa.jsp do diretório consultas solicita a confirmação da exclusão de uma 
pessoa, animais e serviços relacionados àquela pessoa. Veja abaixo o código fonte. 
Benefrancis do Nascimento
SISTEMA WEB
202 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@ page import="java.util.List"%> 
<%@ page import="java.util.ArrayList"%> 
<%@ page import="java.util.ListIterator" %> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                    <% 
                int op = 0; 
                int idPessoa = 0; 
                Pessoa p = null; 
               try { 
                    if (!request.getParameter("op").isEmpty()) { 
Benefrancis do Nascimento
SISTEMA WEB
203 
 
                        op = Integer.parseInt(request.getParameter("op")); 
                    } 
                } catch (Exception ex) { 
                    ex.printStackTrace(); 
                } 
                try { 
                    if (!request.getParameter("idPessoa").isEmpty()) { 
                        idPessoa = Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 
                    } 
                } catch (Exception ex) { 
                    ex.printStackTrace(); 
                } 
                p = Pessoa.consultar(idPessoa); 
                try { 
                    if (op == 1 && idPessoa > 0) { //Op =1 : Deletar 
                        p.excluir(p); 
                        out.print("<br>"); 
                        out.print("<br>"); 
                        out.print("<br>"); 
                        out.print("<center><font face='verdana' color='blue'   size='2'>Registro excluído 
com sucesso</font></center>"); 
                        out.print("<br>"); 
                        out.print("<br>"); 
                        out.print("<br>"); 
                } else {%> 
                    <table border="0" width="100%"> 
Benefrancis do Nascimento
SISTEMA WEB
204 
 
                        <thead> 
                            <tr  class="TextoTit" align="center"> 
                                <th colspan="2" height="50">Esta operação excluirá 
<%out.print(p.getNome());%>, seus animais de estimação e serviços realizados do sistema. 
</th> 
                            </tr> 
                        </thead> 
                        <tbody> 
                            <tr class="TextoTit"> 
                                <td colspan="2"align="center" height="60">Confirma a exclusão?</td> 
                            </tr> 
                            <tr align="center" > 
                                <td width="50%" align="right" height="150"><form 
action="excluir_pessoa.jsp" method="post"  name="Formulario"> <input type="hidden" 
name="op" value="1"><input type="hidden" name="idPessoa" 
value="<%out.print(p.getIdPessoa());%>">&nbsp;<input type="submit"   name="btn_sim" 
value="SIM">&nbsp;</form></td> 
                                <td width="50%" align="left" height="150"><form 
action="../consultas/pessoa.jsp" method="post"  name="Formulario">&nbsp;<input 
type="submit" name="btn_sim" value="NÃO" > &nbsp;</form></td> 
                            </tr> 
                        </tbody> 
                    </table> 
                    <% 
                } 
            } catch (Exception e) { 
                out.print("<br>"); 
                out.print("<center><font face='verdana' color='red'   size='2'>Erro ao 
excluir</font></center>"); 
Benefrancis do Nascimento
SISTEMA WEB
205 
 
                out.print("<center><font face='verdana' color='red'   size='2'>" + e.getMessage() + 
"</font></center>"); 
            } 
            %> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
        </table> 
    </body> 
</html> 
Figure 7 ‐ código fonte da página excluir_pessoa.jsp 
Benefrancis do Nascimento
SISTEMA WEB
206 
 
Layout da página excluir_pessoa.jsp
 
Abaixo, o layout da página excluir_pessoa.jsp. 
Figure 8 ‐ Layout da página excluir_pessoa.jsp 
 
Animal.jsp
 
A página animal.jsp do diretório de consultas lista todos os animais registrados no sistema. 
Apresenta link para inserir um serviço, detalhar, alterar e excluir. 
Abaixo, o código fonte da página animal.jsp. 
Benefrancis do Nascimento
SISTEMA WEB
207 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@page import="java.util.List" %> 
<%@page import="java.util.ListIterator" %> 
<%@page import="java.util.ArrayList" %> 
<% 
//Lista de animais 
List<Animal> pList = new ArrayList<Animal>(); 
%> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
            <tr> 
                <td height="22" colspan="2" valign="top" 
class="Txt"><strong>ANIMAIS</strong></td> 
            </tr> 
            <tr> 
Benefrancis do Nascimento
SISTEMA WEB
208 
 
                <td colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                </td> 
            </tr> 
            <tr> 
                <td colspan="2"><hr size="1"></td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                    <table border="0" width="100%"> 
                        <thead> 
                            <tr class="TopoTit"> 
                                <th>NOME</th> 
                                <th>NASCIMENTO</th> 
                                <th>TIPO</th> 
                                <th>RAÇA</th> 
                                <th>QTD SERVIÇOS</th> 
                                <th>AÇÕES</th> 
                            </tr> 
                        </thead> 
                        <tbody> 
                            <% 
                     pList = (List<Animal>) Animal.consultar(); 
Benefrancis do Nascimento
SISTEMA WEB
209 
 
                     for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 
                     Animal achei = (Animal) iter.next(); 
                    %> 
                            <tr class="Txt" > 
                                <td><%out.print(achei.getNome());%></td> 
                                <td><%out.print(achei.getDataNascimento().toLocaleString().substring(0, 
10));%></td> 
                                <td><%out.print(achei.getDescricao());%></td> 
                                <td><%out.print(achei.getRaca());%></td> 
                                <td align="center"> 
                                <% 
                        List<Servico> servicos = (List<Servico>)Servico.consultar(achei); 
                        out.print(servicos.size()); 
                       %> 
                                </td> 
                                <td class="Txt" align="center"> 
                                    <% 
                            int idPessoa = achei.getPessoa().getIdPessoa(); 
                          %> 
                                    <table border="0" align="center" cellpadding="2" cellspacing="2" 
width="100%"> 
                                        <tr align="center" valign="middle"> 
                                            <td> 
                                                <a 
href="../servicos/registrar.jsp?op=2&amp;idPessoa=<%out.print(idPessoa);%>&amp;idAnimal=
<%out.print(achei.getIdAnimal());%>"> 
                                                    <img src="../images/img_cesto.png" width="30" height="30" 
Benefrancis do Nascimento
SISTEMA WEB
210 
 
alt="Incluir serviço" title="Incluir serviço" border="0"/> 
                                                </a> 
                                            </td> 
                                            <td> 
                                                <a 
href="../consultas/detalhe_animal.jsp?idAnimal=<%out.print(achei.getIdAnimal());%>"> 
                                                    <img src="../images/img_lupa_transparente.png" width="30" 
height="30" alt="consultar" title="consultar" border="0"/> 
                                                </a> 
                                            </td> 
                                            <td> 
                                                <a 
href="../consultas/editar_animal.jsp?op=1&amp;idAnimal=<%out.print(achei.getIdAnimal());%
>"> 
                                                    <img src="../images/img_caderno_transparente.png" width="30" 
height="30" alt="editar" title="editar" border="0"/> 
                                                </a> 
                                            </td> 
                                            <td> 
                                                <a 
href="../consultas/excluir_animal.jsp?idAnimal=<%out.print(achei.getIdAnimal());%>"> 
 
                                                    <img src="../images/img_lixeira_transparente.png" width="30" 
height="30" alt="excluir" title="excluir" border="0"/> 
                                                </a> 
                                            </td> 
                                        </tr> 
                                    </table> 
Benefrancis do Nascimento
SISTEMA WEB
211 
 
                                </td> 
                            </tr> 
                            <%}%> 
                        </tbody> 
                    </table> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
        </table> 
    </body> 
</html> 
Figure 9 ‐ código fonte da página animal.jsp ‐ diretório consultas 
Benefrancis do Nascimento
SISTEMA WEB
212 
 
Layout da página animal.jsp
 
Abaixo, o layout da página animal.jsp, presente no diretório consultas. 
Figure 10 ‐ Layout da página animal.jsp 
 
detalhe_animal.jsp
 
Abaixo, o código da página detalhe_animal.jsp presente no diretório consultas. 
Benefrancis do Nascimento
SISTEMA WEB
213 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@page import="java.util.List" %> 
<%@page import="java.util.ListIterator" %> 
<%@page import="java.util.ArrayList" %> 
<%@page import="java.util.Date" %> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <form action="animal.jsp" method="post" name="Formulario" > 
            <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
                <tr> 
                    <td colspan="2"> 
                        <jsp:include page="../geral/topo.jsp" /> 
                    </td> 
                </tr> 
                <tr> 
                    <td height="22" colspan="2" valign="top" class="Txt"><strong>DETALHAMENTO 
DO ANIMAL DE ESTIMAÇÃO</strong></td> 
                </tr> 
                <% 
            Animal animal; 
            int idAnimal = 0; 
Benefrancis do Nascimento
SISTEMA WEB
214 
 
            try { 
                try { 
                    idAnimal = Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 
                    animal = Animal.consultar(idAnimal); 
                } catch (Exception ex) { 
                   throw new RuntimeException("Erro ao construir o Objeto animal"); 
                } 
                %> 
                <tr> 
                    <td colspan="2">&nbsp;</td> 
                </tr> 
                <tr> 
                    <td colspan="2"> 
                    </td> 
                </tr> 
                <% 
            Pessoa pessoa = Pessoa.consultar(animal.getPessoa().getIdPessoa()); 
            %> 
                <tr> 
                    <td  width="20%" class="TopoTit">Dono do animal</td> 
                    <td  width="80%" class="TextoTit"> 
                        <% out.print(pessoa.getNome());%> 
                    </td> 
                </tr> 
                <tr> 
Benefrancis do Nascimento
SISTEMA WEB
215 
 
                    <td  height="104" colspan="2" valign="top"> 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" 
class="Txt"><strong>ANIMAL</strong></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr> 
                                            <td width="162" class="Txt">Tipo</td> 
                                            <td width="436" class="Txt"> 
                                                <%out.print(animal.getDescricao());%> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td width="162" height="27" valign="top" class="Txt">Nome</td> 
                                            <td width="436" valign="top" class="Txt"> 
                                                <%out.print(animal.getNome());%> 
                                            </td> 
                                        </tr> 
                                        <tr> 
Benefrancis do Nascimento
SISTEMA WEB
216 
 
                                            <td height="27" valign="top" class="Txt">Raça</td> 
                                            <td valign="top" class="Txt"> 
                                                <%out.print(animal.getRaca());%> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Data de Nascimento</td> 
                                            <td valign="top" class="Txt"> 
                                                
<%out.print(animal.getDataNascimento().toLocaleString().substring(0, 10));%> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Sexo</td> 
                                            <td valign="top" class="Txt"> 
                                                <%out.print(animal.getSexo());%> 
                                            <td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Observacao</td> 
                                            <td valign="top" class="Txt"> 
                                                <%out.print(animal.getObservacao());%> 
                                            <td> 
                                        </tr> 
                                        <tr> 
                                            <td colspan="2">&nbsp;</td> 
Benefrancis do Nascimento
SISTEMA WEB
217 
 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                        </table> 
                        <%         } catch (Exception ex) { 
                                        ex.printStackTrace(); 
                                        out.print("<br>"); 
                                        out.print("<br><center><font face='verdana' color='red'   size='2'><br 
/>Erro ao consultar o animal</font></center><br>"); 
                                        out.print(ex.getMessage()); 
                                        out.print("<br>"); 
                                        out.print("<br>"); 
                                    }                        %> 
                        <jsp:include page="../geral/rodape.jsp" /> 
                    </td> 
                </tr> 
            </table> 
        </form> 
    </body> 
</html> 
Figure 11 ‐ O código da página detalhe_animal.jsp 
  
Benefrancis do Nascimento
SISTEMA WEB
218 
 
Layout da página detalhe_animal.jsp
 
Veja abaixo o layout da página detalhe animal.jsp 
Figure 12 ‐ layout da página detalhe_animal.jsp 
 
Editar_animal.jsp
 
Codificaremos agora a página editar_animal.jsp que deverá estar na pasta consultas. 
Benefrancis do Nascimento
SISTEMA WEB
219 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<%@page import="java.util.List" %> 
<%@page import="java.util.ListIterator" %> 
<%@page import="java.util.ArrayList" %> 
<%@page import="java.util.Date" %> 
 
<% 
            //Iniciando variaveis 
            int op = 0; 
            int idPessoa = 0; 
            int idAnimal = 0; 
 
            //verificando a variável op enviada pelo formulário: 
            try { 
                op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 
            } catch (Exception ex) { 
                ex.printStackTrace(); 
                throw new RuntimeException("Não foi informada a operação desejada!"); 
            } 
 
 
            try { 
                idAnimal = Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 
Benefrancis do Nascimento
SISTEMA WEB
220 
 
            } catch (Exception ex) { 
                ex.printStackTrace(); 
                throw new RuntimeException("É necessário informar o id do animal!"); 
            } 
            //Listando pessoas 
            List<Pessoa> pList = new ArrayList<Pessoa>(); 
            Animal animal; 
%> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <form action="editar_animal.jsp" method="post" name="Formulario" > 
            <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
                <tr> 
                    <td colspan="2"> 
                        <jsp:include page="../geral/topo.jsp" /> 
                    </td> 
                </tr> 
                <tr> 
                    <td height="22" colspan="2" valign="top" class="Txt"><strong>ATUALIZAÇÃO DE 
ANIMAL DE ESTIMAÇÃO</strong></td> 
                </tr> 
 
                <tr> 
Benefrancis do Nascimento
SISTEMA WEB
221 
 
                    <td colspan="2"> 
                     <% 
                try { 
                    animal = Animal.consultar(idAnimal); 
                } catch (Exception ex) { 
                    ex.printStackTrace(); 
                    throw new RuntimeException("Animal não encontrado"); 
                } 
                %> 
                    </td> 
                </tr> 
                <tr> 
                    <td ></td> 
                </tr> 
                <%if (op != 2) {%> 
                <tr> 
                    <td colspan="2"> 
 
                        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
                            <tr> 
                                <td width="23%" class="Txt">Dono do animal</td> 
                                <td width="77%" class="Txt"> 
                                    <select name="idPessoa"> 
                                        <option value="0">  Selecione  </option> 
                                        <% 
Benefrancis do Nascimento
SISTEMA WEB
222 
 
                                pList = Pessoa.consultar(); 
                                for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 
                                    Pessoa achei = (Pessoa) iter.next(); 
                             %> 
                                        <option value="<% out.print(achei.getIdPessoa());%>"  <%if 
(animal.getPessoa().getIdPessoa() == achei.getIdPessoa()) {%> selected="true" <%}%>    ><% 
out.print(achei.getNome());%></option> 
 
                                        <% 
                                 } 
                             %> 
                                    </select> 
                                </td> 
 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                            </tr> 
 
                        </table> 
 
                    </td> 
                </tr> 
Benefrancis do Nascimento
SISTEMA WEB
223 
 
                <%}%> 
                <% if (op == 1) {%> 
                <tr> 
                    <td colspan="2"> 
 
                        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" 
class="Txt"><strong>ANIMAL</strong></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr> 
                                            <td width="162" class="Txt">Tipo</td> 
                                            <td width="436" class="Txt"> 
                                                <select name="tipoAnimal" id="tipoAnimal"> 
                                                    <option value="1" <%if (animal.getTipo()==1) {%> 
selected="true" <%}%>  >Cachorro</option> 
                                                    <option value="2" <%if (animal.getTipo()==2) {%> 
selected="true" <%}%>   >Gato</option> 
                                                </select> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td width="162" height="27" valign="top" class="Txt">Nome</td> 
Benefrancis do Nascimento
SISTEMA WEB
224 
 
                                            <td width="436" valign="top" class="Txt"> 
                                                <input  value="<%out.print(animal.getNome());%>" name="nome" 
type="text" id="nome" size="50" maxlength="100"> 
                                                <span class="style1">*</span></td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Raça</td> 
                                            <td valign="top" class="Txt"> 
                                                <input value="<%out.print(animal.getRaca());%>" name="raca" 
type="text" id="raca"  size="24"  maxLength="50" > 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Data de Nascimento</td> 
                                            <td valign="top" class="Txt"> 
                                                <input 
value="<%out.print(animal.getDataNascimento().toLocaleString().substring(0, 10));%>" 
name="dataNascimento" type="text"  size="11"  maxLength="10" 
OnKeyPress="formatar(this, '##/##/####')" onKeyUp="javascript:Sonumero(this)"> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Sexo</td> 
                                            <td valign="top" class="Txt"> 
                                                <select name="sexo" id="sexo"> 
                                                    <option value="M"  <%if (animal.getSexo() == 'M') {%> 
selected="true" <%}%> >Macho</option> 
                                                    <option value="F"  <%if (animal.getSexo() == 'F') {%> 
Benefrancis do Nascimento
SISTEMA WEB
225 
 
selected="true" <%}%> >Femea</option> 
                                                </select> 
                                            <td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Observacao</td> 
                                            <td valign="top" class="Txt"> 
                                                <textarea name="observacao" rows="4" cols="50"> 
                                                 <% 
                                    if (animal.getObservacao() != null) { 
                                         out.print(animal.getObservacao()); 
                                     } 
                                   %> 
                                                </textarea> 
                                            <td> 
                                        </tr> 
                                        <tr> 
                                            <td colspan="2">&nbsp;</td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
Benefrancis do Nascimento
SISTEMA WEB
226 
 
                            <tr> 
                                <td class="Txt" width="23%">&nbsp;</td> 
                                <td class="Txt" width="77%"> 
                                    <input type="hidden" name="op" value="2" /> 
                                    <input type="hidden" name="idAnimal" 
value="<%out.print(animal.getIdAnimal());%>" /> 
                                    <input type="button" name="Btn_Entrar" value="Alterar"  
onClick="ValidarAnimal(document.Formulario);"    > 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"> 
                                    <jsp:include page="../geral/rodape.jsp" /> 
 
                                </td> 
                            </tr> 
                        </table> 
 
                    </td> 
                </tr> 
                <%} else if (op == 2) {%> 
                <tr> 
                    <td colspan="2"> 
                        <% 
                             //Declarando variáveis 
                             //Pessoa 
Benefrancis do Nascimento
SISTEMA WEB
227 
 
                             Pessoa pessoa = null; 
 
                             //Animal 
                             int tipoAnimal = 0; 
                             String nome = null; 
                             String raca = null; 
                             String dataNascimento = null; 
                             String sexo = null; 
                             String observacao = null; 
 
                             //Tipo, nome, data de nascimento e sexo são obrigatórios 
                             try { 
                                 try { 
                                     idPessoa = 
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 
                                     pessoa = Pessoa.consultar(idPessoa); 
                                 } catch (Exception ex) { 
                                     ex.printStackTrace(); 
                                     throw new RuntimeException("Erro ao construir o Objeto pessoa"); 
                                 } 
                                 try { 
                                     tipoAnimal = 
Integer.parseInt(Util.SoNumero(request.getParameter("tipoAnimal"))); 
                                     if (tipoAnimal == 0) { 
                                         throw new RuntimeException("Selecione o Tipo do animal"); 
                                        } else { 
Benefrancis do Nascimento
SISTEMA WEB
228 
 
                                         animal.setTipo(tipoAnimal); 
                                     } 
                                 } catch (Exception ex) { 
                                     ex.printStackTrace(); 
                                     throw new RuntimeException("Erro ao pegar o tipo do animal"); 
                                 } 
                                 try { 
                                     nome = request.getParameter("nome"); 
                                     if (nome == null || nome == "" || nome == "0") { 
                                         throw new RuntimeException("Informe o nome do animal"); 
                                     } else { 
                                         animal.setNome(nome); 
                                     } 
                                 } catch (Exception ex) { 
                                     ex.printStackTrace(); 
                                     throw new RuntimeException("Erro ao capturar o nome do animal"); 
                                 } 
                                 try { 
                                     raca = request.getParameter("raca"); 
                                     animal.setRaca(raca); 
                                 } catch (Exception ex) { 
                                     ex.printStackTrace(); 
                                     throw new RuntimeException("Erro ao capturar a raça do animal"); 
 
                                 } 
Benefrancis do Nascimento
SISTEMA WEB
229 
 
 
                                 try { 
                                     dataNascimento = request.getParameter("dataNascimento"); 
 
                                     //validar data e construir um objeto Date() caso a data seja válida 
                                     if (dataNascimento == null || dataNascimento == "" || dataNascimento 
== "0") { 
                                         throw new RuntimeException("Informe a data de nascimento do 
animal"); 
                                     } else if (Util.validarData(dataNascimento) != true) { 
                                         throw new RuntimeException("A data de nascimento do animal é 
inválida"); 
                                     } else { 
                                         animal.setDataNascimento(new Date(dataNascimento)); 
                                     } 
                                 } catch (Exception ex) { 
                                     ex.printStackTrace(); 
                                 } 
                                 try { 
                                     sexo = request.getParameter("sexo"); 
                                     if (sexo == null || sexo == "" || sexo == "0") { 
                                         throw new RuntimeException("Informe o sexo do animal"); 
                                     } else { 
                                         animal.setSexo(sexo.charAt(0)); 
                                     } 
                                 } catch (Exception ex) { 
                                     ex.printStackTrace(); 
Benefrancis do Nascimento
SISTEMA WEB
230 
 
                                     throw new RuntimeException("Informe o sexo do animal"); 
                                 } 
                                 try { 
                                     observacao = request.getParameter("observacao"); 
                                     if (observacao != "") { 
                                         animal.setObservacao(observacao.trim()); 
                                     } 
                                 } catch (Exception ex) { 
                                     ex.printStackTrace(); 
                                     throw new RuntimeException("Erro ao pegar o parâmetro Observação"); 
                                 } 
                                 animal.setIdAnimal(idAnimal); 
                                 animal.setPessoa(pessoa); 
                                 Animal.alterar(animal); 
                                 out.print("<br><center><font face='verdana' color='blue'   size='2'><br 
/>Animal atualizado com sucesso em nosso banco de dados</font></center><br>"); 
                             } catch (Exception ex) { 
                                 ex.printStackTrace(); 
                                 out.print("<br>"); 
                                 out.print("<br>"); 
                                 out.print("<br>"); 
                                 out.print("<br><center><font face='verdana' color='red'   size='2'><br 
/>Erro ao atualizar dados do animal</font></center><br>"); 
                                 out.print("<br><center><font face='verdana' color='red'   size='2'><br />" + 
ex.getMessage() + "</font></center><br>"); 
                                 out.print("<br>"); 
                                 out.print("<br>"); 
Benefrancis do Nascimento
SISTEMA WEB
231 
 
                             } 
                        %> 
                        <jsp:include page="../geral/rodape.jsp" /> 
                    </td> 
                <tr> 
                    <% }//fim do if de op%> 
            </table> 
        </form> 
    </body> 
</html> 
Figure 13 – código fonte da página editar_animal.jsp 
 
Benefrancis do Nascimento
SISTEMA WEB
232 
 
Layout da página editar_animal.jsp
 
Veja o layout da página editar_animal.jsp. 
Figure 14 ‐ Layout da página editar_animal.jsp 
 
Excluir_animal.jsp
 
Segue o código fonte da página que exclui um animal do sistema. 
Benefrancis do Nascimento
SISTEMA WEB
233 
 
<%@ page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@ page import="br.com.benefrancis.controle.*" %> 
<%@ page import="br.com.benefrancis.util.Util" %> 
<%@ page import="java.util.List"%> 
<%@ page import="java.util.ArrayList"%> 
<%@ page import="java.util.ListIterator" %> 
 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
 
            <tr> 
                <td colspan="2"> 
                    <% 
                                int op = 0; 
Benefrancis do Nascimento
SISTEMA WEB
234 
 
                                int idAnimal = 0; 
                                Animal a = null; 
                               
                                try { 
                                    if (!request.getParameter("op").isEmpty()) { 
                                        op = Integer.parseInt(request.getParameter("op")); 
                                    } 
                                } catch (Exception ex) { 
                                    ex.printStackTrace(); 
                                } 
                                try { 
                                    if (!request.getParameter("idAnimal").isEmpty()) { 
                                        idAnimal = 
Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 
                                    } 
                                } catch (Exception ex) { 
                                    ex.printStackTrace(); 
                                } 
                                a = Animal.consultar(idAnimal); 
                                try { 
                                    if (op == 1 && idAnimal > 0) { //Op =1 : Deletar 
 
                                        Animal.excluir(a); 
 
                                        out.print("<br>"); 
                                        out.print("<br>"); 
Benefrancis do Nascimento
SISTEMA WEB
235 
 
                                        out.print("<br>"); 
                                        out.print("<center><font face='verdana' color='blue'   size='2'>Registro 
excluído com sucesso</font></center>"); 
                                        out.print("<br>"); 
                                        out.print("<br>"); 
                                        out.print("<br>"); 
                    %> 
                    <%} else {%> 
                    <table border="0" width="100%"> 
                        <thead> 
                            <tr  class="TextoTit" align="center"> 
                                <th colspan="2" height="50">Esta operação excluirá o 
<%out.print(a.getDescricao());%> de&nbsp;<font 
color="blue"><%out.print(a.getPessoa().getNome());%> </font> chamado:<font color="blue"> 
<%out.print(a.getNome());%> </font> </th> 
                            </tr> 
                        </thead> 
                        <tbody> 
                            <tr class="TextoTit"> 
                                <td colspan="2"align="center" height="60">Confirma a exclusão?</td> 
                            </tr> 
                            <tr align="center" > 
                                <td width="50%" align="right" height="150"><form 
action="excluir_animal.jsp" method="post"  name="Formulario"> <input type="hidden" 
name="op" value="1"><input type="hidden" name="idAnimal" 
value="<%out.print(a.getIdAnimal());%>">&nbsp;<input type="submit"   name="btn_sim" 
value="SIM">&nbsp;</form></td> 
                                <td width="50%" align="left" height="150"><form 
action="../consultas/animal.jsp" method="post"  name="Formulario">&nbsp;<input 
Benefrancis do Nascimento
SISTEMA WEB
236 
 
type="submit" name="btn_sim" value="NÃO" > &nbsp;</form></td> 
                            </tr> 
                        </tbody> 
                    </table> 
                    <% 
                                    } 
                                } catch (Exception e) { 
                                    out.print("<br>"); 
                                    out.print("<center><font face='verdana' color='red'   size='2'>Erro ao 
excluir </font></center>"); 
                                    out.print("<center><font face='verdana' color='red'   size='2'>" + 
e.getMessage() + "<br>" + e.getCause() + "</font></center>"); 
                                } 
                    %> 
                   </td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                     <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
        </table> 
    </body> 
</html> 
Figure 15 ‐ código fonte da página excluir_animal.jsp 
 
 
Benefrancis do Nascimento
SISTEMA WEB
237 
 
Layout da página excluir_animal.jsp
 
Veja abaixo o layout da página excluir_animal.jsp. 
Figure 16 ‐ Layout da página excluir_animal.jsp 
 
servico.jsp
 
A página servico.jsp do diretório de consultas lista todos os serviços realizados que estão 
registrados no sistema. Apresenta link para  detalhar, alterar e excluir. 
Abaixo, o código fonte da página servico.jsp. 
Benefrancis do Nascimento
SISTEMA WEB
238 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@ page import="br.com.benefrancis.controle.*" %> 
<%@ page import="br.com.benefrancis.util.Util" %> 
<%@page import="java.util.List" %> 
<%@page import="java.util.ListIterator" %> 
<%@page import="java.util.ArrayList" %> 
<% 
List<Servico> sList = new ArrayList<Servico>(); 
String data = ""; 
%> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
            <tr> 
                <td height="22" colspan="2" valign="top" class="Txt"><strong>SERVIÇOS 
REALIZADOS</strong></td> 
            </tr> 
            <tr> 
Benefrancis do Nascimento
SISTEMA WEB
239 
 
                <td colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                </td> 
            </tr> 
            <tr> 
                <td colspan="2"><hr size="1"></td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                    <table border="0" width="100%"> 
                        <thead> 
                            <tr class="TopoTit"> 
                                <th>DATA</th> 
                                <th>TIPO</th> 
                                <th>NOME</th> 
                                <th>ANIMAL</th> 
                                <th>VALOR</th> 
                                <th>AÇÕES</th> 
                            </tr> 
                        </thead> 
                        <tbody><% 
                    try { 
                        sList = (List<Servico>)Servico.consultar(); 
Benefrancis do Nascimento
SISTEMA WEB
240 
 
                        for (ListIterator iter = sList.listIterator(); iter.hasNext();) { 
                            Servico achei = (Servico) iter.next(); 
                                data = achei.getData().toLocaleString().substring(0, 10); 
                             %> 
                            <tr class="Txt" > 
                                <td><%out.print(data);%></td> 
                                <td><%out.print(achei.getNome());%></td> 
                                <td><%out.print(achei.getDescricao());%></td> 
                                <td><% out.print(achei.getAnimal().getNome());%></td> 
                                <td align="right"><%out.print(achei.getValor());%></td> 
                                <td class="Txt" align="center"> 
                                    <table border="0" align="center" cellpadding="2" cellspacing="2" 
width="100%"> 
                                        <tr align="center" valign="middle"> 
                                            <td><a 
href="../consultas/detalhe_servico.jsp?idServico=<%out.print(achei.getIdServico());%>"> 
                                                    <img src="../images/img_lupa_transparente.png" width="30" 
height="30" alt="consultar" title="consultar" border="0"/> 
                                                </a> 
                                            </td> 
                                            <td><a 
href="../consultas/editar_servico.jsp?idServico=<%out.print(achei.getIdServico());%>"> 
                                                    <img src="../images/img_caderno_transparente.png" 
width="30" height="30" alt="editar" title="editar" border="0"/> 
                                                </a> 
                                            </td> 
                                            <td> 
Benefrancis do Nascimento
SISTEMA WEB
241 
 
<a href="../consultas/excluir_servico.jsp?idServico=<%out.print(achei.getIdServico());%>"> 
                                                    <img src="../images/img_lixeira_transparente.png" width="30" 
height="30" alt="excluir" title="excluir" border="0"/> 
                                                </a> 
                                            </td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <%} 
                    } catch (Exception e) { 
                        out.print("<br>"); 
                        out.print("<center><font face='verdana' color='red'   size='2'>Erro ao listar 
serviços </font></center>"); 
                        out.print("<center><font face='verdana' color='red'   size='2'>" + e.getMessage() 
+ "</font></center>"); 
                    } 
                   %> 
                        </tbody> 
                    </table> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
        </table> 
    </body> 
</html> 
Figure 17 ‐ O código fonte da página servico.jsp 
Benefrancis do Nascimento
SISTEMA WEB
242 
 
 
Layout da página Serviço.jsp
 
Veja abaixo o layout da página servico.jsp 
Figure 18 ‐ Layout da página servico.jsp 
 
detalhe_servico.jsp
 
Codificaremos agora a página detalhe_servico.jsp. 
Benefrancis do Nascimento
SISTEMA WEB
243 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="java.util.*" %> 
<%@page import="br.com.benefrancis.controle.*" %> 
<%@page import="br.com.benefrancis.util.Util" %> 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
            <tr> 
                <td height="22" colspan="2" valign="top" class="Txt"><strong>DETALHAMENTO DE 
SERVIÇO REALIZADO</strong></td> 
            </tr> 
            <tr> 
                <td colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                </td> 
            </tr> 
Benefrancis do Nascimento
SISTEMA WEB
244 
 
            <tr> 
                <td  height="104" colspan="2" valign="top" > 
                    <form action="registrar.jsp" method="post" name="Formulario" > 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                            <!‐‐DWLayoutTable‐‐> 
 
                            <tr> 
                                <td colspan="2"> 
 
                                    <% 
                            int idServico = 
Integer.parseInt(Util.SoNumero(request.getParameter("idServico"))); 
                            String data = ""; 
                            try { 
                                Servico servico = Servico.consultar(idServico); 
 
                                    data = servico.getData().toLocaleString().substring(0, 10); 
                         %> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr > 
                                            <td width="20%" class="TopoTit">CLIENTE: </td> 
                                            <td class="TextoTit"><% 
out.print(servico.getAnimal().getPessoa().getNome());%></td> 
                                        </tr> 
                                        <tr> 
Benefrancis do Nascimento
SISTEMA WEB
245 
 
                                            <td width="20%" class="TopoTit">ANIMAL DE ESTIMAÇÃO: </td> 
                                            <td class="TextoTit" ><% 
out.print(servico.getAnimal().getNome());%></td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" class="Txt"><strong>SERVIÇO 
EXECUTADO</strong></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"> 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr> 
                                            <td width="162" class="Txt">Serviço</td> 
                                            <td width="436" class="Txt"> 
                                                <%  out.print(servico.getNome());%> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td width="162" height="27" valign="top" class="Txt">Nome / 
Descrição </td> 
Benefrancis do Nascimento
SISTEMA WEB
246 
 
                                            <td width="436" valign="top" class="Txt"> 
                                                <%  out.print(servico.getNome());%> 
                                            </td> 
                                        </tr> 
 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Valor R$ </td> 
                                            <td valign="top" class="Txt"> 
                                                <%  out.print(servico.getValor());%> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Data de execução</td> 
                                            <td valign="top" class="Txt"> 
                                                <%  out.print(data);%> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Observacao</td> 
                                            <td valign="top" class="Txt"> 
                                                <%  out.print(servico.getObservacao());%> 
                                            <td> 
                                        </tr> 
                                        <tr> 
                                            <td colspan="2">&nbsp;</td> 
Benefrancis do Nascimento
SISTEMA WEB
247 
 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                        </table> 
                    </form> 
                </td> 
            </tr> 
            <tr> 
                <td class="Txt">&nbsp;</td> 
                <td class="Txt"> 
                </td> 
            </tr> 
 
 
            <tr> 
                <td colspan="2"> 
                    <%          } catch (Exception ex) { 
                                    ex.printStackTrace(); 
                                    out.print("<br>"); 
                                    out.print("<br>"); 
                                    out.print("<br>"); 
                                    out.print("<br><center><font face='verdana' color='red'   size='2'><br 
Benefrancis do Nascimento
SISTEMA WEB
248 
 
/>Erro ao cadastrar o serviço executado</font></center><br>"); 
                                    out.print("<br><center><font face='verdana' color='red'   size='2'><br />" 
+ ex.getMessage() + "</font></center><br>"); 
                                    out.print("<br>"); 
                                    out.print("<br>"); 
                                } 
                    %> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
        </table> 
    </body> 
</html> 
Figure 19 ‐ Código fonte da página detalhe_servico.jsp 
Layout da página detalhe_servico.jsp
 
Abaixo o layout da página detalhe_servico.jsp. 
Benefrancis do Nascimento
SISTEMA WEB
249 
 
Figure 20 ‐ Layout da página detalhe_servico.jsp 
Editar_servico.jsp
 
Codificaremos agora a página editar_servico.jsp. 
Benefrancis do Nascimento
SISTEMA WEB
250 
 
<%@page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@page import="java.util.*" %> 
<%@ page import="br.com.benefrancis.controle.*" %> 
<%@ page import="br.com.benefrancis.util.Util" %> 
 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
            <tr> 
                <td height="22" colspan="2" valign="top" class="Txt"><strong>DETALHAMENTO DE 
SERVIÇO REALIZADO</strong></td> 
            </tr> 
            <tr> 
                <td colspan="2">&nbsp;</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                </td> 
Benefrancis do Nascimento
SISTEMA WEB
251 
 
            </tr> 
            <tr> 
                <td  height="104" colspan="2" valign="top" > 
                    <form action="editar_servico.jsp" method="post" name="Formulario" > 
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                            <!‐‐DWLayoutTable‐‐> 
                            <tr> 
                                <td colspan="2"> 
                                    <% 
                            int op = 0; 
                            try { 
                                op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 
 
                            } catch (Exception e) { 
                                e.printStackTrace(); 
                            } 
 
                            int idServico = 
Integer.parseInt(Util.SoNumero(request.getParameter("idServico"))); 
                            String data = ""; 
 
                            Servico servico = Servico.consultar(idServico); 
                            data = servico.getData().toLocaleString().substring(0, 10); 
                            
                            try { 
Benefrancis do Nascimento
SISTEMA WEB
252 
 
                                if (op == 0) { 
                           %> 
 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr > 
                                            <td width="20%" class="TopoTit">CLIENTE: </td> 
                                            <td class="TextoTit"><% 
out.print(servico.getAnimal().getPessoa().getNome());%></td> 
                                        </tr> 
                                        <tr> 
                                            <td width="20%" class="TopoTit">ANIMAL DE ESTIMAÇÃO: </td> 
                                            <td class="TextoTit" ><% 
out.print(servico.getAnimal().getNome());%></td> 
                                        </tr> 
                                    </table> 
                                </td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"><hr size="1"></td> 
                            </tr> 
                            <tr> 
                                <td height="22" colspan="2" valign="top" class="Txt"><strong>SERVIÇO 
EXECUTADO</strong></td> 
                            </tr> 
                            <tr> 
                                <td colspan="2"> 
Benefrancis do Nascimento
SISTEMA WEB
253 
 
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 
align="center"> 
                                        <tr> 
                                            <td width="162" class="Txt">Serviço</td> 
                                            <td width="436" class="Txt"> 
                                                <select name="servico" id="servico"> 
                                                    <option value="Consulta"   <%if 
(servico.getNome().equals("Consulta")) {%> selected="true" <%}%>  >Consulta 
Veterinária</option> 
                                                    <option value="Banho" <%if 
(servico.getNome().equals("Banho")) {%> selected="true" <%}%> >Banho</option> 
                                                    <option value="Tosa" <%if (servico.getNome().equals("Tosa")) 
{%> selected="true" <%}%> >Tosa</option> 
                                                    <option value="Vacina" <%if 
(servico.getNome().equals("Vacina")) {%> selected="true" <%}%> >Vacina</option> 
                                                </select> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td width="162" height="27" valign="top" class="Txt">Nome / 
Descrição </td> 
                                            <td width="436" valign="top" class="Txt"> 
                                                <input name="nome" value="<%  
out.print(servico.getNome());%>"type="text" id="nome" size="50" maxlength="100"> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Valor R$ </td> 
                                            <td valign="top" class="Txt"> 
Benefrancis do Nascimento
SISTEMA WEB
254 
 
                                                <input name="valor" value="<%  out.print(servico.getValor());%>" 
type="text"  size="11"  maxLength="10" onKeyUp="javascript:Sonumero(this)"> 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Data de execução</td> 
                                            <td valign="top" class="Txt"> 
                                                <input type="text" value="<%  out.print(data);%>" name="data" > 
                                            </td> 
                                        </tr> 
                                        <tr> 
                                            <td height="27" valign="top" class="Txt">Observacao</td> 
                                            <td valign="top" class="Txt"> 
 
                                                <textarea name="observacao" rows="4" cols="50"><% 
                                    if (servico.getObservacao() != null && servico.getObservacao() != "" && 
servico.getObservacao() != "null") { 
                                        out.print(servico.getObservacao().trim()); 
                                    }%></textarea> 
                                         <td> 
                                        </tr> 
                                        <tr> 
                                            <td colspan="2">&nbsp;</td> 
                                        </tr> 
                                    </table> 
                                </td> 
Benefrancis do Nascimento
SISTEMA WEB
255 
 
                            </tr> 
                            <tr> 
                                <td colspan="2">&nbsp;</td> 
                            </tr> 
                            <tr> 
                                <td class="Txt" width="23%">&nbsp;</td> 
                                <td class="Txt" width="77%"> 
                                    <input type="hidden" name="op" value="3" /> 
                                    <input type="hidden" name="idAnimal" value="<% 
out.print(servico.getAnimal().getIdAnimal());%>" /> 
                                    <input type="hidden" name="idServico" value="<% 
out.print(servico.getIdServico());%>" /> 
                                    <input type="button" name="Btn_Entrar" value="Alterar"  
onClick="ValidarRegistro(document.Formulario);"    > 
                                </td> 
                            </tr> 
                        </table> 
                    </form> 
                </td> 
            </tr> 
            <tr> 
                <td class="Txt">&nbsp;</td> 
                <td class="Txt"> 
<% 
} else if (op == 3) { 
String servicoEscolhido = ""; 
String nome = ""; 
Benefrancis do Nascimento
SISTEMA WEB
256 
 
int periodicidade = 0; 
String novaData = ""; 
 
//Criando um objeto serviço 
servicoEscolhido = request.getParameter("servico"); 
novaData = request.getParameter("data"); 
 
servico = Servico.consultar(servico.getIdServico()); 
if (Util.validarData(novaData)) { 
servico.setData(new Date(novaData)); 

try { 
nome = request.getParameter("nome"); 
if (nome == null || nome == "" || nome == "0") { 
throw new RuntimeException("Informe o nome ou descrição do serviço efetuado"); 
} else { 
servico.setNome(nome); 

} catch (Exception ex) { 
ex.printStackTrace(); 
throw new RuntimeException("Erro ao pegar o nome do serviço efetuado"); 

double valor = 0; 
try { 
valor = Double.parseDouble(request.getParameter("valor")); 
Benefrancis do Nascimento
SISTEMA WEB
257 
 
servico.setValor(valor); 
} catch (Exception ex) { 
ex.printStackTrace(); 
throw new RuntimeException("Informe corretamente o valor do serviço executado"); 

 
String observacao = null; 
try { 
observacao = request.getParameter("observacao"); 
servico.setObservacao(observacao); 
} catch (Exception ex) { 
ex.printStackTrace(); 
throw new RuntimeException("Erro ao pegar o nome do serviço efetuado"); 

 
Servico.alterar(servico); 
out.print("<br>"); 
out.print("<br>"); 
out.print("<br>"); 
out.print("<br><center><font face='verdana' color='blue'   size='2'><br />Serviço atualizado 
com sucesso!</font></center><br>"); 
out.print("<br>"); 
out.print("<br>"); 
} else { 
throw new RuntimeException("Operação inválida"); 

Benefrancis do Nascimento
SISTEMA WEB
258 
 
%> 
                </td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                    <%          } catch (Exception ex) { 
                                    ex.printStackTrace(); 
                                    out.print("<br>"); 
                                    out.print("<br>"); 
                                    out.print("<br>"); 
                                    out.print("<br><center><font face='verdana' color='red'   size='2'><br 
/>Erro ao cadastrar o serviço executado</font></center><br>"); 
                                    out.print("<br><center><font face='verdana' color='red'   size='2'><br />" 
+ ex.getMessage() + "</font></center><br>"); 
                                    out.print("<br>"); 
                                    out.print("<br>"); 
                                } 
                    %> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
        </table> 
    </body> 
</html> 
Figure 19 ‐ Código fonte da página editar_servico.jsp 

Benefrancis do Nascimento
SISTEMA WEB
259 
 
Layout da página editar_servico.jsp
 
Abaixo o layout da página editar_servico.jsp. 
Figure 20 ‐ Layout da página editar_servico.jsp 
 
Excluir_servico.jsp
 
E para finalizar codificaremos a página excluir_servico.jsp 
Benefrancis do Nascimento
SISTEMA WEB
260 
 
<%@ page contentType="text/html" pageEncoding="UTF‐8"%> 
<%@ page import="br.com.benefrancis.controle.*" %> 
<%@ page import="br.com.benefrancis.util.Util" %> 
<%@ page import="java.util.List"%> 
<%@ page import="java.util.ArrayList"%> 
<%@ page import="java.util.ListIterator" %> 
 
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <jsp:include page="../geral/head.jsp" /> 
    <body> 
        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/topo.jsp" /> 
                </td> 
            </tr> 
 
            <tr> 
                <td colspan="2"> 
                    <% 
            int op = 0; 
            int idServico = 0; 
            Servico s = null; 
Benefrancis do Nascimento
SISTEMA WEB
261 
 
            try { 
                if (!request.getParameter("op").isEmpty()) { 
                    op = Integer.parseInt(request.getParameter("op")); 
                } 
            } catch (Exception ex) { 
                ex.printStackTrace(); 
            } 
            try { 
                if (!request.getParameter("idServico").isEmpty()) { 
                    idServico = Integer.parseInt(Util.SoNumero(request.getParameter("idServico"))); 
                } 
            } catch (Exception ex) { 
                ex.printStackTrace(); 
            } 
            s = Servico.consultar(idServico); 
            try { 
                if (op == 1 && idServico > 0) { //Op =1 : Deletar 
                    Servico.excluir(s); 
                    out.print("<br>"); 
                    out.print("<br>"); 
                    out.print("<br>"); 
                    out.print("<center><font face='verdana' color='blue'   size='2'>Registro excluído 
com sucesso</font></center>"); 
                    out.print("<br>"); 
                    out.print("<br>"); 
                    out.print("<br>"); 
Benefrancis do Nascimento
SISTEMA WEB
262 
 
            } else {%> 
 
                    <table border="0" width="100%"> 
                        <thead> 
                            <tr  class="TextoTit" align="center"> 
                                <th colspan="2" height="50">Esta operação excluirá o serviço referente <% 
out.print(s.getNome() +" ‐ "+s.getDescricao() );%> em&nbsp;<font 
color="blue"><%out.print(s.getAnimal().getNome());%> </font> que pertence a <font 
color="blue"> <%out.print(s.getAnimal().getPessoa().getNome());%></font> </th> 
                            </tr> 
                        </thead> 
                        <tbody> 
                            <tr class="TextoTit"> 
                                <td colspan="2"align="center" height="60">Confirma a exclusão?</td> 
                            </tr> 
                            <tr align="center" > 
                                <td width="50%" align="right" height="150"><form 
action="excluir_servico.jsp" method="post"  name="Formulario"> <input type="hidden" 
name="op" value="1"><input type="hidden" name="idServico" 
value="<%out.print(s.getIdServico());%>">&nbsp;<input type="submit"   name="btn_sim" 
value="SIM">&nbsp;</form></td> 
                                <td width="50%" align="left" height="150"><form 
action="../consultas/servico.jsp" method="post"  name="Formulario">&nbsp;<input 
type="submit" name="btn_sim" value="NÃO" > &nbsp;</form></td> 
                            </tr> 
                        </tbody> 
                    </table> 
                    <% 
                } 
Benefrancis do Nascimento
SISTEMA WEB
263 
 
            } catch (Exception e) { 
                out.print("<br>"); 
                out.print("<center><font face='verdana' color='red'   size='2'>Erro ao excluir 
</font></center>"); 
                out.print("<center><font face='verdana' color='red'   size='2'>" + e.getMessage() + 
"<br>" + e.getCause() + "</font></center>"); 
            } 
            %> 
                </td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                    <jsp:include page="../geral/rodape.jsp" /> 
                </td> 
            </tr> 
        </table> 
    </body> 
</html> 
Figure 21 ‐ Código fonte da página excluir_servico.jsp 
Benefrancis do Nascimento
SISTEMA WEB
264 
 
Layout da página excluir_servico.jsp
 
Aprento o layout da página excluir_servico.jsp. 
Figure 22 ‐ excluir_servico.jsp 
Benefrancis do Nascimento
SISTEMA WEB
265 
 
Considerações finais
 
Desenvolvemos um sistema completo e funcional utilizando java, hibernate e J SP.
Espero que este artigo se torne um material de grande valor aos estudantes e
desenvolvedores de sistemas para web. Este material veio para completar o meu
artigo sobre MAPEAMENTO OBJETO RELACIONAL COM HIBERNATE.
Lembrando mais uma vez que estou aberto à criticas e sugestões, com objetivo de
alimentar o processo de melhoria contínua de meus artigos. O contato deverá ser
estabelecido por meio do seguinte endereço eletrônico:
benefrancis@gmail.com 
twitter: 
@Benefrancis 
Skype: 
Benefrancis.com 
 
Importante:
1 ‐ Conforme lei 9.610/98, que dispõe sobre direitos autorais, a reprodução parcial ou integral 
desta obra sem autorização prévia e expressa do autor constitui ofensa aos seus direitos 
autorais (art. 29). Em caso de interesse, em editar ou publicar esta obra entre em contato com 
o autor do texto. 
2 ‐ Entretanto, de acordo com a lei 9.610/98, art. 46, não constitui ofensa aos direitos autorais 
a citação de passagens da obra para fins de estudo, crítica ou polêmica, na medida justificada 
para o fim a atingir, indicando‐se o nome do autor (Benefrancis do Nascimento) . 

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->