Você está na página 1de 265

 

Benefrancis do Nascimento 1 
Neste  material  mostrarei  passo  a  passo  o 
desenvolvimento  de  uma  aplicação  SISTEMA WEB
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 2 

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 3 

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 4 

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 5 

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 6 

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 7 

SISTEMA WEB

 
Figura 1 ‐ Diagrama de classes do pacote controle
Benefrancis do Nascimento 8 

SISTEMA WEB

Configurando o ambiente
Benefrancis do Nascimento 9 

SISTEMA WEB

Acessando o Mysql
 

Iniciaremos a configuração do nosso ambiente de desenvolvimento, conectando com o Mysql. 
Para isso utilizaremos o HeidiSQL1. 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 10 

SISTEMA WEB

 
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 Netbeans2. 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 11 

SISTEMA WEB

 
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 12 

SISTEMA WEB

 
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 13 

SISTEMA WEB

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 14 

SISTEMA WEB

 
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 15 

SISTEMA WEB

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 16 

SISTEMA WEB

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 17 

SISTEMA WEB

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 18 

SISTEMA WEB

Criando as classes da camada de controle


Benefrancis do Nascimento 19 

SISTEMA WEB

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 20 

SISTEMA WEB

 
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 21 

SISTEMA WEB

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 22 

SISTEMA WEB

    } 

    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 23 

SISTEMA WEB

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 24 

SISTEMA WEB

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 25 

SISTEMA WEB

 
Benefrancis do Nascimento 26 

SISTEMA WEB

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 27 

SISTEMA WEB

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 28 

SISTEMA WEB

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 29 

SISTEMA WEB

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 30 

SISTEMA WEB

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 31 

SISTEMA WEB

    } 

    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 32 

SISTEMA WEB

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 33 

SISTEMA WEB

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 34 

SISTEMA WEB

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 35 

SISTEMA WEB

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 36 

SISTEMA WEB

    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 37 

SISTEMA WEB

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 38 

SISTEMA WEB

Figura 30 ‐ Os atributos da classe Endereco que serão persistidos 

 
Benefrancis do Nascimento 39 

SISTEMA WEB

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 40 

SISTEMA WEB

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 41 

SISTEMA WEB

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 42 

SISTEMA WEB

Figure 1 ‐ Atributos da classe DocReceita que serão persistidos 
Benefrancis do Nascimento 43 

SISTEMA WEB

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 44 

SISTEMA WEB

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 45 

SISTEMA WEB

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 46 

SISTEMA WEB

Figura 37 ‐ Método utilizado para calcular o dígito de um CNPJ. Deve estar dentro da classe 
CNPJ. 
Benefrancis do Nascimento 47 

SISTEMA WEB

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 48 

SISTEMA WEB

        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 49 

SISTEMA WEB

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 50 

SISTEMA WEB

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 51 

SISTEMA WEB

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 52 

SISTEMA WEB

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 53 

SISTEMA WEB

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 54 

SISTEMA WEB

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 55 

SISTEMA WEB

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 56 

SISTEMA WEB

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 57 

SISTEMA WEB

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 58 

SISTEMA WEB

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 59 

SISTEMA WEB

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 60 

SISTEMA WEB

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 61 

SISTEMA WEB

A classe Consulta
Abaixo o código e anotações da classe Consulta 

Figure 3 ‐ A classe consulta 
Benefrancis do Nascimento 62 

SISTEMA WEB

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 63 

SISTEMA WEB

Utilizando o Hibernate para criar as tabelas no banco de


dados
Benefrancis do Nascimento 64 

SISTEMA WEB

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 65 

SISTEMA WEB

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 66 

SISTEMA WEB

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 67 

SISTEMA WEB

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 68 

SISTEMA WEB

Programando as classes DAO


Benefrancis do Nascimento 69 

SISTEMA WEB

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 70 

SISTEMA WEB

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 71 

SISTEMA WEB

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 72 

SISTEMA WEB

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 73 

SISTEMA WEB

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 74 

SISTEMA WEB

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 75 

SISTEMA WEB

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 76 

SISTEMA WEB

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 77 

SISTEMA WEB

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 78 

SISTEMA WEB

Consultando animais pelo Id


 

Codificaremos o método que consulta animal pelo id 

Figura 64 ‐ Consultando animais pelo Id 

 
Benefrancis do Nascimento 79 

SISTEMA WEB

Alterando animais
 

Codificaremos o método alterar da classe animalDAO. 

Figura 65 ‐ Alterando animal 

 
Benefrancis do Nascimento 80 

SISTEMA WEB

Excluindo animal
 

Abaixo o código do método excluir da classe AnimalDAO. 

Figura 66 ‐ Excluindo animal 

 
Benefrancis do Nascimento 81 

SISTEMA WEB

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 82 

SISTEMA WEB

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 83 

SISTEMA WEB

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 84 

SISTEMA WEB

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 85 

SISTEMA WEB

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 86 

SISTEMA WEB

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 87 

SISTEMA WEB

Alterando serviço
 

Desenvolvendo método para alterar um serviço. 

Figura 73 ‐ Alterando serviço 

 
Benefrancis do Nascimento 88 

SISTEMA WEB

Excluindo serviço
 

Abaixo o código para exclusão de serviço 

Figura 74 ‐ Excluindo serviço 

 
Benefrancis do Nascimento 89 

SISTEMA WEB

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 90 

SISTEMA WEB

Consultando telefone pelo Id

Figura 76 ‐ Consultando telefone pelo id 

 
Benefrancis do Nascimento 91 

SISTEMA WEB

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 92 

SISTEMA WEB

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 93 

SISTEMA WEB

Excluindo telefone
 

O método abaixo exclui um telefone da base de dados 

Figura 79 ‐ Excluindo telefone 

 
Benefrancis do Nascimento 94 

SISTEMA WEB

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 95 

SISTEMA WEB

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 96 

SISTEMA WEB

Consultando endereço pelo Id


 

O método abaixo consulta endereço pelo Id. 

Figura 82‐ Consultando endereço pelo id 

 
Benefrancis do Nascimento 97 

SISTEMA WEB

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 98 

SISTEMA WEB

Alterando um endereço
 

Abaixo codificaremos um método para alterar endereço 

Figura 84 ‐ Alterando um endereço 

 
Benefrancis do Nascimento 99 

SISTEMA WEB

Excluindo um endereço
 

O método abaixo exclui um endereço 

Figura 85 ‐ Excluindo endereço 

 
Benefrancis do Nascimento 100 

SISTEMA WEB

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 101 

SISTEMA WEB

Testando os métodos das classes do pacote DAO


Benefrancis do Nascimento 102 

SISTEMA WEB

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 103 

SISTEMA WEB

        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 104 

SISTEMA WEB

        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.*, Endereco.*, Animal.*, Servico.* from


Pessoa left join Telefone on (Pessoa.idPessoa = Telefone.idPessoa)
left join Endereco on (Pessoa.idPessoa = Endereco.idPessoa)
left join Animal on (Pessoa.idPessoa = Animal.idPessoa)
left join Servico on (Animal.idAnimal = Servico.idAnimal);
 
Benefrancis do Nascimento 105 

SISTEMA WEB

Figura 87 ‐ Resultado da consulta dos dados gravados no banco de dados 

 
Benefrancis do Nascimento 106 

SISTEMA WEB

Criando as páginas JSP


Benefrancis do Nascimento 107 

SISTEMA WEB

Mapa do site


O nosso sistema web deverá seguir a estrutura representada no mapa do site abaixo: 

Index.jsp

Inicio.jsp

cadastros serviços consultas

Pessoa.jsp Registrar.jsp Animal.jsp

Detalhe_animal.jsp

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
 
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 108 

SISTEMA WEB

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 109 

SISTEMA WEB

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 110 

SISTEMA WEB

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 111 

SISTEMA WEB

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 112 

SISTEMA WEB

        <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 113 

SISTEMA WEB

                                            <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 114 

SISTEMA WEB

        } 

    } 

} catch (Exception e) {} 

%> 

                                            </td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                        </table> 

                    </td> 

                </tr> 

            </table> 

        </form> 

    </body> 

</html> 

 
Benefrancis do Nascimento 115 

SISTEMA WEB

Codificando arquivos do diretório geral


Benefrancis do Nascimento 116 

SISTEMA WEB

Head.jsp
 

Abaixo o conteúdo do arquivo head.jsp 

Figura 93 ‐ conteúdo do arquivo head.jsp 

 
Benefrancis do Nascimento 117 

SISTEMA WEB

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 118 

SISTEMA WEB

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 119 

SISTEMA WEB

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 120 

SISTEMA WEB

Codificando arquivos do diretório cadastros


Benefrancis do Nascimento 121 

SISTEMA WEB

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 122 

SISTEMA WEB

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 123 

SISTEMA WEB

<%@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 124 

SISTEMA WEB

                    } 

                    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 125 

SISTEMA WEB

                                    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 126 

SISTEMA WEB

                                } 

                            } 

                            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 127 

SISTEMA WEB

                            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 128 

SISTEMA WEB

                            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 129 

SISTEMA WEB

                                } 

                            } 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 130 

SISTEMA WEB

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 131 

SISTEMA WEB

                                    + </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 132 

SISTEMA WEB

                                    + </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 133 

SISTEMA WEB

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 134 

SISTEMA WEB

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 135 

SISTEMA WEB

                                <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 136 

SISTEMA WEB

                                        <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 137 

SISTEMA WEB

                <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 138 

SISTEMA WEB

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 139 

SISTEMA WEB

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 140 

SISTEMA WEB

<%‐‐ 

    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 141 

SISTEMA WEB

            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 142 

SISTEMA WEB

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 143 

SISTEMA WEB

                                      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 144 

SISTEMA WEB

                            </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 145 

SISTEMA WEB

                                        <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 146 

SISTEMA WEB

                                            </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 147 

SISTEMA WEB

                                            <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 148 

SISTEMA WEB

                                <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 149 

SISTEMA WEB

                          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 150 

SISTEMA WEB

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 151 

SISTEMA WEB

                              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 152 

SISTEMA WEB

                                  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 153 

SISTEMA WEB

                              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 154 

SISTEMA WEB

Layout da página para registro de animal

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

SISTEMA WEB

Codificando arquivos do diretório serviços


Benefrancis do Nascimento 156 

SISTEMA WEB

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 157 

SISTEMA WEB

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 158 

SISTEMA WEB

                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 159 

SISTEMA WEB

            <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 160 

SISTEMA WEB

                                      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 161 

SISTEMA WEB

                            </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 162 

SISTEMA WEB

                                </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 163 

SISTEMA WEB

                                <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 164 

SISTEMA WEB

                        <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 165 

SISTEMA WEB

                                </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 166 

SISTEMA WEB

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 167 

SISTEMA WEB

                            <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 168 

SISTEMA WEB

            <%} 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 169 

SISTEMA WEB

                                      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 170 

SISTEMA WEB

                              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 171 

SISTEMA WEB

                              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 172 

SISTEMA WEB

Layout da pagina para registro de serviço


 

Figura 103 ‐ Layout da pagina para registro de serviço 
Benefrancis do Nascimento 173 

SISTEMA WEB

Codificando arquivos do diretório consultas


Benefrancis do Nascimento 174 

SISTEMA WEB

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 175 

SISTEMA WEB

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 176 

SISTEMA WEB

                </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 177 

SISTEMA WEB

                            </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 178 

SISTEMA WEB

                                <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 179 

SISTEMA WEB

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 180 

SISTEMA WEB

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 181 

SISTEMA WEB

<%@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 182 

SISTEMA WEB

                    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 183 

SISTEMA WEB

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 184 

SISTEMA WEB

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 185 

SISTEMA WEB

                        //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 186 

SISTEMA WEB

                        //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 187 

SISTEMA WEB

                            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 188 

SISTEMA WEB

                        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 189 

SISTEMA WEB

                <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 190 

SISTEMA WEB

                                           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 191 

SISTEMA WEB

                            </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 192 

SISTEMA WEB

{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 193 

SISTEMA WEB

                    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 194 

SISTEMA WEB

                        } 

                    } 

                    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 195 

SISTEMA WEB

                            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 196 

SISTEMA WEB

                            } 

                        } 

                    } 

                    %> 

                            <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 197 

SISTEMA WEB

                            </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 198 

SISTEMA WEB

                                        <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 199 

SISTEMA WEB

                                <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 200 

SISTEMA WEB

                    <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 201 

SISTEMA WEB

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 202 

SISTEMA WEB

<%@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 203 

SISTEMA WEB

                        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 204 

SISTEMA WEB

                        <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 205 

SISTEMA WEB

                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 206 

SISTEMA WEB

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 207 

SISTEMA WEB

<%@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 208 

SISTEMA WEB

                <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 209 

SISTEMA WEB

                     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 210 

SISTEMA WEB

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 211 

SISTEMA WEB

                                </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 212 

SISTEMA WEB

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 213 

SISTEMA WEB

<%@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 214 

SISTEMA WEB

            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 215 

SISTEMA WEB

                    <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 216 

SISTEMA WEB

                                            <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 217 

SISTEMA WEB

                                        </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 218 

SISTEMA WEB

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 219 

SISTEMA WEB

<%@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 220 

SISTEMA WEB

            } 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 221 

SISTEMA WEB

                    <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 222 

SISTEMA WEB

                                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 223 

SISTEMA WEB

                <%}%> 

                <% 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 224 

SISTEMA WEB

                                            <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 225 

SISTEMA WEB

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 226 

SISTEMA WEB

                            <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 227 

SISTEMA WEB

                             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 228 

SISTEMA WEB

                                         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 229 

SISTEMA WEB

                                 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 230 

SISTEMA WEB

                                     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 231 

SISTEMA WEB

                             } 

                        %> 

                        <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 232 

SISTEMA WEB

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 233 

SISTEMA WEB

<%@ 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 234 

SISTEMA WEB

                                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 235 

SISTEMA WEB

                                        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 236 

SISTEMA WEB

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 237 

SISTEMA WEB

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 238 

SISTEMA WEB

<%@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 239 

SISTEMA WEB

                <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 240 

SISTEMA WEB

                        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 241 

SISTEMA WEB

<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 242 

SISTEMA WEB

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 243 

SISTEMA WEB

<%@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 244 

SISTEMA WEB

            <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 245 

SISTEMA WEB

                                            <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 246 

SISTEMA WEB

                                            <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 247 

SISTEMA WEB

                                        </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 248 

SISTEMA WEB

/>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 249 

SISTEMA WEB

Figure 20 ‐ Layout da página detalhe_servico.jsp 

Editar_servico.jsp
 

Codificaremos agora a página editar_servico.jsp. 
Benefrancis do Nascimento 250 

SISTEMA WEB

<%@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 251 

SISTEMA WEB

            </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 252 

SISTEMA WEB

                                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 253 

SISTEMA WEB

                                    <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 254 

SISTEMA WEB

                                                <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 255 

SISTEMA WEB

                            </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 256 

SISTEMA WEB

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 257 

SISTEMA WEB

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 258 

SISTEMA WEB

%> 

                </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 259 

SISTEMA WEB

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 260 

SISTEMA WEB

<%@ 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 261 

SISTEMA WEB

            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 262 

SISTEMA WEB

            } 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 263 

SISTEMA WEB

            } 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 264 

SISTEMA WEB

Layout da página excluir_servico.jsp


 

Aprento o layout da página excluir_servico.jsp. 

Figure 22 ‐ excluir_servico.jsp 
Benefrancis do Nascimento 265 

SISTEMA WEB

Considerações finais
 

Desenvolvemos um sistema completo e funcional utilizando java, hibernate e JSP.


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) . 

Você também pode gostar