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

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

Benefrancis do Nascimento

SISTEMA WEB

 

 

 

 

 

Neste material mostrarei passo a passo o 

desenvolvimento  de  uma  aplicação  web 

utilizando programação orientada a objeto 

com  Java  em  conjunto  com o  framework 

para  mapeamento  objeto  relacional 

Hibernate.  É  indicado  para  estudantes  e 

profissionais  que  queiram  aprender  Java 

para  web,  porém  que  procuram 

desenvolver  softwares mais  próximos  do 

que o mercado  atualmente  exige.   Neste 

material  desenvolveremos  um  sistema 

para  controlar  um  petshop  contendo 

diversas  operações  que  interagem  com  

banco de dados. 

SISTEMAWEBDesenvolva passo a passoum sistema web utilizandoJava,HibernateeJSP.

Benefrancis do Nascimento 

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

Benefrancis do Nascimento

SISTEMA WEB

 

 

 

NotadoAutor 

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: 

[email protected] 

twitter: 

@Benefrancis 

Skype: 

Benefrancis.com 

Desejo a todos muito sucesso. 

 

Benefrancis do Nascimento 

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

Benefrancis do Nascimento

SISTEMA WEB

 

 

 

 

 

 

 

Aos meus alunos do curso de Pós‐graduação em Desenvolvimento de Sistemas para Web da 

Faculdade Anhanguera – Campinas. 

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

Benefrancis do Nascimento

SISTEMA WEB

 

 

Nota do Autor ............................................................................................................................ 2 

Configurando o ambiente ............................................................................................................. 8 

Acessando o Mysql .................................................................................................................... 9 

Criando o banco de dados do sistema ...................................................................................... 9 

Criando uma aplicação Java para  web no Netbeans .............................................................. 10 

Criando os pacotes da nossa aplicação ................................................................................... 17 

Criando as classes da camada de controle .................................................................................. 18 

A Classe Pessoa ....................................................................................................................... 19 

Métodos da classe pessoa que interagem com o banco de dados ......................................... 21 

Mapeando a Classe Pessoa ..................................................................................................... 22 

A Classe PF ............................................................................................................................... 27 

Mapeando a Classe PF ............................................................................................................. 27 

A Classe PJ ............................................................................................................................... 28 

Mapeando a Classe PJ ............................................................................................................. 29 

A Classe Telefone .................................................................................................................... 30 

Métodos da classe Telefone que interagem com o banco de dados ...................................... 30 

Mapeando a Classe Telefone .................................................................................................. 31 

A classe Endereco .................................................................................................................... 35 

Métodos da classe Endereco que interagem com o banco de dados ..................................... 35 

Mapeando a classe Endereco .................................................................................................. 36 

A classe DocReceita ................................................................................................................. 40 

Mapeando a classe DocReceita ............................................................................................... 40 

A classe CPF ............................................................................................................................. 43 

A classe CNPJ ........................................................................................................................... 44 

A classe Animal ........................................................................................................................ 47 

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

Benefrancis do Nascimento

SISTEMA WEB

 

Métodos da classe Animal que interagem com o banco de dados ......................................... 47 

Mapeando a classe Animal ...................................................................................................... 48 

Informando ao Hibernate quais os atributos da classe animal que serão persistidos ........... 51 

A classe Cachorro .................................................................................................................... 53 

A classe Gato ........................................................................................................................... 54 

A classe abstrata Servico ......................................................................................................... 55 

Métodos da classe Servico que interagem com o banco de dados ........................................ 55 

Mapeando a Classe Servico ..................................................................................................... 57 

Informando ao Hibernate quais os atributos da classe Servico que serão persistidos ........... 58 

A classe Banho ......................................................................................................................... 60 

A classe Consulta ..................................................................................................................... 61 

A classe Tosa ........................................................................................................................... 62 

A classe Vacina ........................................................................................................................ 62 

Utilizando o Hibernate para criar as tabelas no banco de dados ............................................... 63 

Atualizando o arquivo hibernate.cfg.xml ................................................................................ 64 

Criando uma conexão com o hibernate .................................................................................. 65 

Criando uma classe para testar o funcionamento do Hibernate ............................................ 66 

Programando as classes DAO ...................................................................................................... 68 

Introdução ............................................................................................................................... 69 

Implementado os métodos da classe PessoaDAO .................................................................. 69 

Implementado os métodos da classe AnimalDAO .................................................................. 76 

Implementado os métodos da classe ServicoDAO .................................................................. 82 

Implementado os métodos da classe TelefoneDAO ............................................................... 89 

Implementado os métodos da classe EnderecoDAO .............................................................. 95 

Testando os métodos das classes do pacote DAO .................................................................... 101 

Salvando pessoa, telefone, endereço, animais e serviços. ................................................... 102 

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

Benefrancis do Nascimento

SISTEMA WEB

 

Criando as páginas JSP .............................................................................................................. 106 

Mapa do site .......................................................................................................................... 107 

Criando diretórios necessários .............................................................................................. 107 

Iniciando a programação das páginas JSP ............................................................................. 109 

Importando as classes necessárias ........................................................................................ 109 

Codificando arquivos do diretório geral ................................................................................... 115 

Codificando arquivos do diretório cadastros ............................................................................ 120 

Codificando arquivos do diretório serviços ............................................................................... 155 

Codificando arquivos do diretório consultas ............................................................................ 173 

Considerações finais .................................................................................................................. 265 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

 

 

Figura 1 ‐ Diagrama de classes do pacote controle

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

Benefrancis do Nascimento

SISTEMA WEB

 

 

 

 

 

 

 

 

 

 

 

 

Configurandooambiente

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

Benefrancis do Nascimento

SISTEMA WEB

 

AcessandooMysql 

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 

Criandoobancodedadosdosistema 

Criaremos agora o nosso database. Para isso, clique com o botão da direita do mouse 

no Treeview [email protected]; 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/ 

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

Benefrancis do Nascimento

SISTEMA WEB

10 

 

 

Figura 3 ‐ Criando o banco de dados com o nome estimacao 

CriandoumaaplicaçãoJavaparawebnoNetbeans 

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/ 

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

Benefrancis do Nascimento

SISTEMA WEB

11 

 

 

Figura 4 ‐ Criando uma aplicação Java para web no Netbeans [1 º Passo ] 

 

O primeiro passo consiste na escolha do projeto. No nosso caso a categoria do projeto 

será java Web e o projeto será Aplicação web. 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

12 

 

 

Figura 5 ‐ Criando uma aplicação Java para web no Netbeans [2 º Passo ] 

No segundo passo demos um nome para o projeto. O nome escolhido foi Estimacao. 

 

Figura 6 ‐ Criando uma aplicação Java para web no Netbeans [3 º Passo ] 

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

Benefrancis do Nascimento

SISTEMA WEB

13 

 

No terceiro passo deveremos escolher o servidor – container para a nossa aplicação. 

Escolha o Apache Tomcat. Para a versão do java EE você deverá escolher a 5 ou 

superior. O caminho do projeto será sugerido pelo Netbeans. Aceite a sugestão. 

 

 

Figura 7 ‐ Criando uma aplicação Java para web no Netbeans [4 º Passo ] 

O quarto passo será dividido em duas etapas. A primeira é escolher os frameworks que 

desejaremos trabalhar em nossa aplicação. Escolha somente o Hibernate 3.x.x. Para 

conexão com banco de dados o hibernate trabalha com dialeto, desta maneira ele 

saberá tratar as particularidades do banco de dados escolhido. Configuraremos uma 

nova conexão com banco de dados. A segunda etapa é apresentada na imagem abaixo: 

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

Benefrancis do Nascimento

SISTEMA WEB

14 

 

 

Figura 8 ‐ Segunda etapa do 4º passo da configuração do projeto Java para web 

A imagem acima mostra como deverá ser configurada a conexão com o banco de dados. 

Preencha conforme a imagem, porém você deverá saber qual o usuário e senha do seu banco 

de dados Mysql. Após o preenchimento clique em ok para aparecer a tela de finalização da 

configuração do projeto (imagem a seguir). 

 

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

Benefrancis do Nascimento

SISTEMA WEB

15 

 

Figura 9 ‐ Tela de finalização da configuração do projeto 

O seu projeto já está configurado para trabalhar com java para web utilizando o 

framework Hibernate. 

O Netbeans exibirá a estrutura de diretórios  conforme imagem a seguir, porém para 

visualizar o conteúdo do arquivo hibernate.cfg.xml, você deverá clicar na aba XML do 

referido arquivo. 

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

Benefrancis do Nascimento

SISTEMA WEB

16 

 

Figura 10 ‐ o conteúdo do arquivo hibernate.cfg.xml criado pelo ide Netbeans 

 

 

 

Figura 11 ‐ Alteramos o arquivo hibernate.cfg.xml 

Realizamos a primeira alteração no arquivo hibernate.cfg.xml com o objetivo de que: 

1º. Exiba no console os comandos sql; 

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

Benefrancis do Nascimento

SISTEMA WEB

17 

 

2º. Que os comandos sql sejam formatados; 

3º. Informando o tamanho do pool de conexões permitidas; 

4º. E, por fim, que o hibernate tenha permissão de criar tabelas na nossa base de 

dados.  

Falta apenas informar neste arquivo quais serão as classes da nossa aplicação que 

serão mapeadas para persistirem no banco de dados, mas informaremos após a 

criação, codificação e mapeamento das mesmas. 

 

Criandoospacotesdanossaaplicaçã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.

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

Benefrancis do Nascimento

SISTEMA WEB

18 

 

 

 

 

 

 

 

 

 

 

 

 

Criandoasclassesdacamadadecontrole

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

Benefrancis do Nascimento

SISTEMA WEB

19 

 

AClassePessoa 

 

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. 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

20 

 

 

Figura 14 ‐ Diretório após a criação das classes do pacote modelo 

Neste momento criei as classes DAO – Data Access Object ‐ Classes responsáveis pela 

camada de persistência na minha aplicação, mas sem nenhum código neste momento 

(apenas para podermos referenciá‐las nos métodos salvar, alterar, excluir e consultar 

nas  classes  do  pacote  controle).  Criaremos  também  uma  classe  para  testar  o 

funcionamento do Hibernate (detalharei estas classes mais adiante). 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

21 

 

MétodosdaclassepessoaqueinteragemcomobancodedadosA 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); 

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

Benefrancis do Nascimento

SISTEMA WEB

22 

 

    } 

 

    static public Collection<Pessoa> consultar(String nome) { 

        return PessoaDAO.consultar(nome); 

    } 

 

    static public boolean alterar(Pessoa p) { 

        return PessoaDAO.alterar(p); 

    } 

 

    static public boolean excluir(Pessoa p) { 

        return PessoaDAO.excluir(p); 

    } 

 

 

MapeandoaClassePessoa 

Iniciaremos o mapeamento Objeto Relacional da classe pessoa 

 

InformandoqueaClassePessoadaráorigemaobjetosqueserãopersistidos 

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

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

Benefrancis do Nascimento

SISTEMA WEB

23 

 

As anotações acima deverão ser inseridas antes do nome da classe. Veja imagem abaixo: 

Figura 15 ‐ Informando ao Hibernate que a Classe Pessoa será persistida e a estratégia de Herança 

utilizada 

Ao digitar as anotações o Netbeans sugere algumas importações, você deverá escolher as 

importações conforme as linhas que vão de 5 a 8 na imagem acima. 

InformandoaoHibernatequalseráoiddatabela 

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; 

 

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

Benefrancis do Nascimento

SISTEMA WEB

24 

 

InformandoaoHibernatequaisosatributosdaclassepessoaqueserãopersistidosNecessitamos informar ao Hibernate quais atributos serão persistidos no banco de dados. Para 

isso deverão incluir as anotações conforme imagem abaixo: 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

25 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

26 

 

Figura 16 ‐ Atributos da classe pessoa que serão persistidos 

EncapsulandoatributosdaclassePessoaPara 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 

CriandométodosconstrutoresparaaclassePessoaPara 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. 

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

Benefrancis do Nascimento

SISTEMA WEB

27 

 

Figura 18 ‐ Criando método construtor para a classe Pessoa 

Verifiquem em nosso diagrama de classes que Pessoa é classe ansestral das classes PF e PJ 

(Pessoa Física e Pessoa Jurídica respectivamente). Criaremos abaixo essas classes: 

 

AClassePFIniciaremos 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: 

 

MapeandoaClassePFIniciaremos 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 

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

Benefrancis do Nascimento

SISTEMA WEB

28 

 

persistidos em banco de dados e que os objetos do tipo PF em nosso banco de dados possui 

identificador 1. Este é o valor que identifica que, dentre as classes filhas de Pessoa, o número 1 

será usado para PF. Veja a anotação: 

@Entity 

@Inheritance(strategy = InheritanceType.JOINED) 

@DiscriminatorValue("1") 

As anotações acima deverão ser inseridas antes do nome da classe. Veja imagem abaixo: 

 

 

 

Figura 20 ‐ Informando ao Hibernate que a Classe PF será persistida, a estratégia de Herança e o valor 

que a identifica entre as classes que são filhas da classe Pessoa 

AClassePJIniciaremos a construção da classe que representará as Pessoas Jurídicas. 

 

 

 

Figura 21 ‐ A classe PJ 

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

Benefrancis do Nascimento

SISTEMA WEB

29 

 

 

A classe PJ, assim como a classe PF, herda os métodos e atributos da classe Pessoa, por este 

motivo o mapeamento desta classe é semelhante ao da classe PF. Assim como PF, bastará 

informar a estratégia de herança. Veja abaixo: 

MapeandoaClassePJIniciaremos 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 

 

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

Benefrancis do Nascimento

SISTEMA WEB

30 

 

AClasseTelefone 

Figura 23 ‐ Atributos da Classe Telefone 

 

MétodosdaclasseTelefonequeinteragemcomobancodedados 

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

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

Benefrancis do Nascimento

SISTEMA WEB

31 

 

    } 

 

    public static Collection<Telefone> consultar(Pessoa p) { 

        return TelefoneDAO.consultar(p); 

    } 

    public static boolean alterar(Telefone t) { 

        return TelefoneDAO.alterar(t); 

    } 

    public static boolean excluir(Telefone t) { 

        return TelefoneDAO.excluir(t); 

    } 

    public static boolean excluir(Pessoa p) { 

        return TelefoneDAO.excluir(p); 

    } 

 

 

MapeandoaClasseTelefone 

Iniciaremos o mapeamento objeto relacional da classe Telefone. 

 

InformandoqueaclasseTelefonedaráorigemaobjetosqueserãopersistidos 

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. 

 

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

Benefrancis do Nascimento

SISTEMA WEB

32 

 

InformandoaoHibernatequalseráoIddatabelatelefone 

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 

InformandoaoHibernatequaisosatributosdaclasseTelefonequeserãopersistidos 

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

Benefrancis do Nascimento

SISTEMA WEB

33 

 

Figura 25 ‐ Atributos da classe Telefone que serão persistidos 

EncapsuleosatributosdaclasseTelefone 

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. 

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

Benefrancis do Nascimento

SISTEMA WEB

34 

 

 

Figura 26 ‐ Encapsulando os atributos da classe Telefone 

CriemétodosconstrutoresparaaclasseTelefonePara 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 

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

Benefrancis do Nascimento

SISTEMA WEB

35 

 

AclasseEndereco 

Figura 28 ‐ Atributos da classe Endereco 

 

MétodosdaclasseEnderecoqueinteragemcomobancodedados 

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

    } 

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

Benefrancis do Nascimento

SISTEMA WEB

36 

 

    public static boolean salvar(Pessoa p) { 

        return EnderecoDAO.salvar(p); 

    } 

    public static Endereco consultar(int idEndereco) { 

        return EnderecoDAO.consultar(idEndereco); 

    } 

    public static ArrayList<Endereco> consultar(Pessoa p) { 

        return EnderecoDAO.consultar(p); 

    } 

    public static boolean alterar(Endereco e) { 

        return EnderecoDAO.alterar(e); 

    } 

    public static boolean excluir(Endereco e) { 

        return EnderecoDAO.excluir(e); 

    } 

    public static boolean excluir(Pessoa p) { 

        return EnderecoDAO.excluir(p); 

    } 

MapeandoaclasseEndereco 

Iniciaremos o mapeamento objeto relacional da classe Endereco. 

 

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

Benefrancis do Nascimento

SISTEMA WEB

37 

 

InformandoqueaclasseEnderecodaráorigemaobjetosqueserãopersistidos 

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. 

 

InformandoaoHibernatequalseráoIddatabelaendereco 

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 

InformandoaoHibernatequaisosatributosdaclasseEnderecoqueserãopersistidos 

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

Benefrancis do Nascimento

SISTEMA WEB

38 

 

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

 

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

Benefrancis do Nascimento

SISTEMA WEB

39 

 

EncapsuleosatributosdaclasseEndereco 

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 

 

CriemétodosconstrutoresparaaclasseEnderecoPara 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. 

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

Benefrancis do Nascimento

SISTEMA WEB

40 

 

Figura 32 ‐ Métodos construtores para a classe Endereco 

AclasseDocReceita 

Codificaremos agora a classe DocReceita.  

Figura 33 ‐ A interface DocReceita 

MapeandoaclasseDocReceita 

Iniciaremos o mapeamento objeto relacional da classe DocReceita. 

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

Benefrancis do Nascimento

SISTEMA WEB

41 

 

InformandoqueaclasseDocReceitadaráorigemaobjetosqueserãopersistidos 

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

InformandoaoHibernatequaisosatributosdaclasseDocReceitaqueserãopersistidos 

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

Benefrancis do Nascimento

SISTEMA WEB

42 

 

Figure 1 ‐ Atributos da classe DocReceita que serão persistidos 

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

Benefrancis do Nascimento

SISTEMA WEB

43 

 

AclasseCPF 

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 

OmétodoquevalidaráoCPF 

Abaixo apresento o método utilizado para calcular o dígito de um CPF. Na imagem acima ele 

está oculto, para melhor visualização. 

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

Benefrancis do Nascimento

SISTEMA WEB

44 

 

 

 

Figura 35 ‐ Método utilizado para calcular o dígito de um CPF. Deve estar dentro da classe CPF 

AclasseCNPJ 

A classe CNPJ, assim como a classe CPF implementa a interface DocReceita, portanto também 

deverá possuir os métodos validar e getnumero. 

 

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

Benefrancis do Nascimento

SISTEMA WEB

45 

 

Figura 36 ‐ A classe CNPJ 

 

OmétodoquevalidaráoCNPJ 

Abaixo apresento o método utilizado para calcular o dígito de um CNPJ. Na imagem acima ele 

está oculto, para melhor visualização. 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

46 

 

 

 

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

CNPJ. 

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

Benefrancis do Nascimento

SISTEMA WEB

47 

 

AclasseAnimal 

Iniciaremos a codificação da classe abstrata Animal. 

Figura 38 ‐ A classe Abstrata Animal 

 

MétodosdaclasseAnimalqueinteragemcomobancodedados 

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

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

Benefrancis do Nascimento

SISTEMA WEB

48 

 

        return AnimalDAO.salvar(p); 

    } 

    public static Animal consultar(int idAnimal) { 

        return AnimalDAO.consultar(idAnimal); 

    } 

    public static Collection<Animal> consultar() { 

        return AnimalDAO.consultar(); 

    } 

    public static Collection<Animal> consultar(Pessoa p) { 

        return AnimalDAO.consultar(p); 

    } 

    public static boolean alterar(Animal a) { 

        return AnimalDAO.alterar(a); 

    } 

    public static boolean excluir(Animal a) { 

        return AnimalDAO.excluir(a); 

    } 

    public static boolean excluir(Pessoa p) { 

        return AnimalDAO.excluir(p); 

    } 

MapeandoaclasseAnimal 

Iniciaremos o mapeamento objeto relacional da classe Animal. 

 

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

Benefrancis do Nascimento

SISTEMA WEB

49 

 

InformandoqueaclasseAnimaldaráorigemaobjetosqueserãopersistidos 

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 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

50 

 

InformandoaoHibernatequalseráoIddatabelaanimal 

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 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

51 

 

InformandoaoHibernatequaisosatributosdaclasseanimalqueserãopersistidos

 

Figura 41 ‐ Os atributos da classe animal que serão persistidos 

 

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

Benefrancis do Nascimento

SISTEMA WEB

52 

 

EncapsuleosatributosdaclasseAnimal 

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 

CriemétodosconstrutoresparaaclasseAnimalPara 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 

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

Benefrancis do Nascimento

SISTEMA WEB

53 

 

AclasseCachorro 

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. 

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

Benefrancis do Nascimento

SISTEMA WEB

54 

 

AclasseGato 

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 

 

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

Benefrancis do Nascimento

SISTEMA WEB

55 

 

AclasseabstrataServico 

Iniciaremos a codificação da classe abstrata Servico. 

Figura 46 ‐ A classe abstrata serviço 

MétodosdaclasseServicoqueinteragemcomobancodedados 

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. 

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

Benefrancis do Nascimento

SISTEMA WEB

56 

 

public static boolean salvar(Servico s) { 

        return ServicoDAO.salvar(s); 

    } 

 

    public static boolean salvar(Animal a) { 

        return ServicoDAO.salvar(a); 

    } 

    public static Servico consultar(int idServico) { 

        return ServicoDAO.consultar(idServico); 

    } 

    public static Collection<Servico> consultar(Animal a) { 

        return ServicoDAO.consultar(a); 

    } 

    public static Collection<Servico> consultar() { 

        return ServicoDAO.consultar(); 

    } 

    public static boolean alterar(Servico s) { 

        return ServicoDAO.alterar(s); 

    } 

    public static boolean excluir(Servico s) { 

        return ServicoDAO.excluir(s); 

    } 

    public static boolean excluir(Animal a) { 

        return ServicoDAO.excluir(a); 

    } 

 

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

Benefrancis do Nascimento

SISTEMA WEB

57 

 

MapeandoaClasseServico 

Iniciaremos o mapeamento objeto relacional da classe abstrata Servico. 

InformandoqueaclasseServicodaráorigemaobjetosqueserãopersistidos 

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 

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

Benefrancis do Nascimento

SISTEMA WEB

58 

 

InformandoaoHibernatequaisosatributosdaclasseServicoqueserãopersistidos 

As constantes não serão mapeadas. 

 

Figura 48 ‐ Informando ao Hibernate quais os atributos da classe Servico que serão persistidos 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

59 

 

EncapsuleosatributosdaclasseServico 

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 

CriemétodosconstrutoresparaaclasseServicoPara 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. 

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

Benefrancis do Nascimento

SISTEMA WEB

60 

 

Figura 50 ‐ Métodos construtores para a classe Servico 

AclasseBanhoAbaixo o código e anotações da classe Banho 

Figure 2 ‐ A classe Banho 

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

Benefrancis do Nascimento

SISTEMA WEB

61 

 

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

Figure 3 ‐ A classe consulta 

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

Benefrancis do Nascimento

SISTEMA WEB

62 

 

AclasseTosaAbaixo o código e anotações da classe Tosa 

 

AclasseVacinaAbaixo o código e anotações da classe Vacina 

 

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

Benefrancis do Nascimento

SISTEMA WEB

63 

 

 

 

 

 

 

 

 

 

 

 

 

 

UtilizandooHibernateparacriarastabelasnobancodedados

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

Benefrancis do Nascimento

SISTEMA WEB

64 

 

Atualizandooarquivohibernate.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" /> 

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

Benefrancis do Nascimento

SISTEMA WEB

65 

 

Criandoumaconexãocomohibernate 

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. 

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

Benefrancis do Nascimento

SISTEMA WEB

66 

 

CriandoumaclasseparatestarofuncionamentodoHibernate 

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: 

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

Benefrancis do Nascimento

SISTEMA WEB

67 

 

Figura 53 ‐ Saída do console da aplicação quando executamos o método gerarTabelas da classe 

TestandoHibernate 

 

Agora voltaremos para o HeidiSQL para verificar as tabelas criadas pela nossa aplicação: 

Figura 54 ‐ Verificando no HeidiSql as tabelas geradas 

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

Benefrancis do Nascimento

SISTEMA WEB

68 

 

 

 

 

 

 

 

 

 

 

 

 

 

ProgramandoasclassesDAO

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

Benefrancis do Nascimento

SISTEMA WEB

69 

 

Introdução 

Programaremos  os  métodos  das  classes  de  acesso  e  manipulação  dos  dados  de  nossa 

aplicação.  

Quando  estávamos  criando  os  métodos  salvar,  consultar,  alterar  e  excluir  das  classes  do 

pacote controle, o Netbeans nos sugeria criar os métodos nas classes DAO do pacote modelo. 

Caso tenha aceitado conforme orientei os métodos foram criados nas respectivas classes DAO. 

Porém  o  conteúdo  dos  métodos  lança  uma  exceção  dizendo  que  o  método  não  foi 

implementado. Veja a exceção abaixo: 

 

 

Figura 55 ‐ Exceção de método que não foi implementado 

Deveremos inserir o conteúdo dos métodos das classes DAO. E esta será a nossa atividade 

neste capitulo. Os códigos das classes DAO serão muito semelhantes aos métodos das outras 

classes de acesso e manipulação de dados. Vejam. 

 

ImplementadoosmétodosdaclassePessoaDAO 

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.  

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

70 

 

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

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

71 

 

ConsultarpessoapeloidNeste 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 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

72 

 

ConsultarTodasaspessoas 

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 

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

Benefrancis do Nascimento

SISTEMA WEB

73 

 

Consultarpessoapelonome 

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 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

74 

 

Alterandopessoas 

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 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

75 

 

Excluindopessoas 

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 

 

 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

76 

 

ImplementadoosmétodosdaclasseAnimalDAO 

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 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

77 

 

Salvandotodososanimaisdeumapessoa 

Criamos um método para salvar todos os animais de uma pessoa. 

Figura 63 ‐ Salvando todos os animais de uma pessoa 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

78 

 

ConsultandoanimaispeloId 

Codificaremos o método que consulta animal pelo id 

Figura 64 ‐ Consultando animais pelo Id 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

79 

 

 

Alterandoanimais 

Codificaremos o método alterar da classe animalDAO. 

Figura 65 ‐ Alterando animal 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

80 

 

 

Excluindoanimal 

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

Figura 66 ‐ Excluindo animal 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

81 

 

Excluindotodososanimaisdeumapessoa 

Codificaremos um método para exclusão de todos os animais de uma pessoa. 

Figura 67 ‐ Excluindo todos os animais de uma pessoa 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

82 

 

ImplementadoosmétodosdaclasseServicoDAO 

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 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

83 

 

Consultandoserviçopeloid 

Abaixo o código para consulta de serviço pelo id. 

Figura 69 ‐ Consultando serviço pelo id 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

84 

 

Salvandotodososserviçosdeumanimal 

Codificaremos um método para salvar todos os serviços de um animal. 

Figura 70 ‐ Salvando todos os serviços de um animal 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

85 

 

Consultandotodososserviçosdeumanimal 

Codificaremos o método que deverá retornar todos serviços realizados em um animal. 

Figura 71 ‐ Consultando todos serviços realizados em um animal 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

86 

 

Excluindotodososserviçosdeumanimal 

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 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

87 

 

Alterandoserviço 

Desenvolvendo método para alterar um serviço. 

 

Figura 73 ‐ Alterando serviço 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

88 

 

 

Excluindoserviço 

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

Figura 74 ‐ Excluindo serviço 

 

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

Benefrancis do Nascimento

SISTEMA WEB

89 

 

ImplementadoosmétodosdaclasseTelefoneDAO 

Iniciaremos agora a codificação dos métodos da classe TelefoneDAO. 

 

salvar 

Figura 75 ‐ Salvando um telefone 

 

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

Benefrancis do Nascimento

SISTEMA WEB

90 

 

ConsultandotelefonepeloId

Figura 76 ‐ Consultando telefone pelo id 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

91 

 

Consultandotodosostelefonesdeumapessoa 

O método abaixo prove a consulta de todos os telefones de uma pessoa. 

Figura 77 ‐ Consultando todos os telefones de uma pessoa 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

92 

 

Salvandotodosostelefonesdeumapessoa 

O método abaixo salva todos os telefones de uma pessoa 

Figura 78 ‐ Salvando todos os telefones de uma pessoa 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

93 

 

Excluindotelefone 

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

Figura 79 ‐ Excluindo telefone 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

94 

 

Excluindotodosostelefonesdeumapessoa 

O código abaixo exclui todos os telefones de uma pessoa 

Figura 80 ‐ Excluindo todos os telefones de uma pessoa 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

95 

 

ImplementadoosmétodosdaclasseEnderecoDAO 

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 

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

Benefrancis do Nascimento

SISTEMA WEB

96 

 

ConsultandoendereçopeloId 

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

Figura 82‐ Consultando endereço pelo id 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

97 

 

Consultandotodososendereçosdeumapessoa 

O método abaixo consulta todos os endereços de uma pessoa. 

Figura 83 ‐ Consultando todos os endereços de uma pessoa 

 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

98 

 

Alterandoumendereço 

Abaixo codificaremos um método para alterar endereço 

Figura 84 ‐ Alterando um endereço 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

99 

 

Excluindoumendereço 

O método abaixo exclui um endereço 

Figura 85 ‐ Excluindo endereço 

 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

100 

 

Excluindotodososendereçosdeumapessoa 

O método abaixo exclui todos os endereços de uma pessoa. 

Figura 86 ‐ Excluindo todos os endereços de uma pessoa 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

101 

 

 

 

 

 

 

 

 

 

 

 

 

 

TestandoosmétodosdasclassesdopacoteDAO

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

Benefrancis do Nascimento

SISTEMA WEB

102 

 

Salvandopessoa,telefone,endereço,animaiseserviç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("[email protected]"); 

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

 

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

Benefrancis do Nascimento

SISTEMA WEB

103 

 

        Collection<Endereco> e = new ArrayList<Endereco>(); 

        e.add(end); 

        pf.setEndereco(e); 

 

        Telefone t = new Telefone(); 

        t.setDdd(11); 

        t.setNumero("8281‐6536"); 

        t.setPessoa(pf); 

 

        Collection<Telefone> tel = new ArrayList<Telefone>(); 

        tel.add(t); 

        pf.setTelefone(tel); 

 

        Animal a = new Cachorro(); 

        Date d = new Date(2000, 5, 15); 

        a.setDataNascimento(d); 

        a.setNome("Pluto"); 

        a.setRaca("Vira lata"); 

        a.setSexo('M'); 

        a.setObservacao("Cachorro muito sem vergonha!"); 

        a.setPessoa(pf); 

 

        Servico s = new Banho(); 

        Date diaBanho = new Date(2010, 11, 18); 

        s.setData(diaBanho); 

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

Benefrancis do Nascimento

SISTEMA WEB

104 

 

        s.setDescricao("Banho completo"); 

        s.setValor(20.95); 

        s.setAnimal(a); 

 

        Collection<Servico> serv = new ArrayList<Servico>(); 

        serv.add(s); 

        a.setServico(serv); 

 

        Collection<Animal> ani = new ArrayList<Animal>(); 

        ani.add(a); 

        pf.setAnimal(ani); 

 

        pf.salvar(pf); 

    } 

 

Verificaremos agora no HeidiSql se todos os campos das tabelas foram preenchidos 

corretamente. 

Para isso executaremos o seguinte comando: 

select Pessoa.*, 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);  

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

Benefrancis do Nascimento

SISTEMA WEB

105 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

106 

 

CriandoaspáginasJSP

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

Benefrancis do Nascimento

SISTEMA WEB

107 

 

Mapadosite

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

Index.jsp

Inicio.jsp

Pessoa.jsp Registrar.jsp Animal.jsp

Animal.jsp

Detalhe_animal.jsp

Editar_animal.jsp

Excluir_animal.jsp

Pessoa.jsp

Detalhe_pessoa.jsp

Editar_pessoa.jsp

Excluir_pessoa.jsp

Servico.jsp

Detalhe_servico.jsp

Editar_servico.jsp

Excluir_servico.jsp

cadastros serviços consultas

 

Figura 88‐ Mapa do site 

 

Criandodiretóriosnecessá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. 

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

Benefrancis do Nascimento

SISTEMA WEB

108 

 

 

Figura 89 ‐ Criando um novo diretório acessível para a internet no seu projeto web 

Crie os diretórios conforme tabela abaixo: 

Tabela 1 – Os diretórios do nosso sistema web. Neles estão as imagem, css, javascript e etc. (Solicite 

para o professor pelo e‐mail: [email protected]

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) 

 

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

Benefrancis do Nascimento

SISTEMA WEB

109 

 

IniciandoaprogramaçãodaspáginasJSP

ImportandoasclassesnecessáriasPara 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.jspO 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 

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

Benefrancis do Nascimento

SISTEMA WEB

110 

 

O design semelhante à tela da imagem a seguir: 

 

 

Figura 91 ‐ Layout da página index.jsp 

CódigofonteJavadapaginaindex.jspO 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. 

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

Benefrancis do Nascimento

SISTEMA WEB

111 

 

Figura 92 ‐ Autenticando ‐ index.jsp 

Códigofontecompletodapaginaindex.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> 

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

Benefrancis do Nascimento

SISTEMA WEB

112 

 

        <form name="FrmLogin" id="FrmLogin" method="POST"  action="index.jsp"> 

            <table width="103%"  border="0" cellpadding="0" cellspacing="0"align="center" > 

                <tr> 

                    <td align="center" valign="middle"> 

                        <table width="750"  border="0" cellspacing="0" cellpadding="0" align="center" 

                            <tr> 

                                <td width="40%" height="500" align="center" valign="middle"> 

                                    <img src="images/login.png" alt="Petshop"/> 

                                </td> 

                                <td width="60%" align="center" valign="middle"> 

                                    <table border="0" > 

                                        <tr> 

                                            <td class="Txt">USUARIO</td> 

                                            <td class="Txt"><input type="text" name="usuario" value="" 

size="15"/></td> 

                                        </tr> 

                                        <tr> 

                                            <td class="Txt">SENHA</td> 

                                            <td class="Txt"><input type="password" name="senha" value="" 

size="15" /></td> 

                                        </tr> 

                                        <tr> 

                                            <td colspan="2"><hr size="1"><input type="hidden" name="op" 

value="1" /></td> 

                                        </tr> 

                                        <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

113 

 

                                            <td></td> 

                                            <td><input type="submit" value="Autenticar" 

name="btn_autenticar" /></td> 

                                        </tr> 

                                        <tr><td colspan="2" class="Txt"> 

<% 

String usuario = ""; 

String senha = ""; 

int op = 0; 

try { 

    op = Integer.parseInt(request.getParameter("op")); 

} catch (Exception ex) {} 

try { 

    if (op == 1) { 

        usuario = request.getParameter("usuario"); 

        senha = request.getParameter("senha"); 

        Autenticavel p = new PF().autenticar(usuario, senha); 

        if (p != null) { 

            session.setAttribute("Usuario", p); 

            String novaURL = "geral/inicio.jsp"; 

            response.sendRedirect(novaURL); 

        } else { 

            out.print("<br>"); 

            out.print("<center><font face='verdana' color='red'   " + 

                    "size='2'>Usuario ou senha inválidos</font></center>"); 

            out.print("<br>"); 

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

Benefrancis do Nascimento

SISTEMA WEB

114 

 

        } 

    } 

} catch (Exception e) {} 

%> 

                                            </td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                        </table> 

                    </td> 

                </tr> 

            </table> 

        </form> 

    </body> 

</html> 

 

 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

115 

 

 

 

 

 

 

 

 

 

 

 

Codificandoarquivosdodiretóriogeral

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

Benefrancis do Nascimento

SISTEMA WEB

116 

 

Head.jsp 

Abaixo o conteúdo do arquivo head.jsp 

Figura 93 ‐ conteúdo do arquivo head.jsp 

 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

117 

 

Topo.jsp 

Abaixo o conteúdo do arquivo topo.jsp 

Figura 94 ‐ Código do arquivo topo.jsp 

 

Rodapé.jsp 

Abaixo o código do arquivo rodapé.jsp 

Figura 95 ‐ Código do arquivo rodapé.jsp 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

118 

 

Inicio.jsp 

Abaixo o código do arquivo inicio.jsp. A tela de boas vindas da nossa aplicação. 

Figura 96 ‐ Código do arquivo inicio.jsp 

 

 

 

 

 

 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

119 

 

Layoutdateladeboasvindas 

Abaixo a tela de boas vindas da nossa aplicação. 

 

Figura 97 ‐ A tela de boas vindas da nossa aplicação 

 

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

Benefrancis do Nascimento

SISTEMA WEB

120 

 

 

 

 

 

 

 

 

 

 

 

 

 

Codificandoarquivosdodiretóriocadastros

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

Benefrancis do Nascimento

SISTEMA WEB

121 

 

Pessoa.jsp 

O arquivo pessoa.jsp do diretório cadastros será a nossa tela para cadastramento de pessoas 

em nosso sistemas. Uma pessoa será um usuário ‐ utilizador do sistema. O sistema deverá 

verificar se existe uma pessoa cadastrada no sistema. Para fazer a verificação deveremos 

verificar, antes do cadastramento de uma pessoa, se: 

1º. O e‐mail informado já está registrado no banco de dados; 

2º. Se o documento da receita já está cadastrado no sistema. 

 

A tela deverá possuir um formulário. Veja a tag: 

<form action="pessoa.jsp" method="post" name="Formulario" > 

<!—Incluir os elementos do formulário aqui ‐‐> 

</form> 

ElementosdoformulárioAbaixo 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 

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

Benefrancis do Nascimento

SISTEMA WEB

122 

 

9    TelCelDDD  text 2 2 

10    TelCel  text 12  10 

11    TelFaxDDD  text 2 2 

12    TelFax  text 12  10 

13    logradouro  text 50  50 

14    Numero  text 10  10 

15    Complemento  text 30  50 

16    Bairro  text 30  50 

17    Cidade  text 30  50 

18    uf select  

19    CEP  text 12  9 

20    op hidden 1  

21    Btn_Entrar  button Cadastrar  

 

CódigofonteJavadoarquivopessoa.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. 

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

Benefrancis do Nascimento

SISTEMA WEB

123 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%>

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<%@page import="java.util.ArrayList" %> 

<%@page import="java.util.Date" %> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <form action="pessoa.jsp" method="post" name="Formulario" > 

            <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

                <tr> 

                    <td colspan="2"> 

                        <jsp:include page="../geral/topo.jsp" /> 

                    </td> 

                </tr> 

                <tr> 

                    <td colspan="2"> 

                        <% 

                    int op = 0; 

                    String tipo = null; 

                    Pessoa pessoa = null; 

                    String username = null; 

                    String senha = null; 

                    DocReceita docReceita = null; 

                    try { 

                        op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 

                    } catch (Exception ex) { 

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

Benefrancis do Nascimento

SISTEMA WEB

124 

 

                    } 

 

                    try { 

                        if (op == 1) {//O formulário foi enviado 

                            try { 

                                tipo = request.getParameter("Tipo"); 

                            } catch (Exception ex) { 

                            } 

                            if (tipo == "PJ") { 

                                String razao = null; 

                                try { 

                                    razao = request.getParameter("razao"); 

                                    docReceita = new CNPJ(request.getParameter("CNPJ")); 

                                    //Criando uma pessoa juridica 

                                    pessoa = new PJ(); 

                                    pessoa.setDocReceita(docReceita); 

                                    pessoa.setNome(razao); 

                                    docReceita.setPessoa(pessoa); 

                                } catch (Exception ex) { 

                                    ex.printStackTrace(); 

                                    throw new RuntimeException("<center>" + 

                                    "<font face='verdana' color='red'   " + 

                                    "size='2'>Erro ao cadastrar Utilizador." + 

                                    "<br /> Verifique os dados de Pessoa Jurídica" + 

                                    " tente novamente</font></center>"); 

                                } 

                            } else { 

                                try { 

                                    String nome = request.getParameter("Nome"); 

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

Benefrancis do Nascimento

SISTEMA WEB

125 

 

                                    docReceita = new CPF(request.getParameter("CPF"));

                                    //Criando uma pessoa física 

                                    pessoa = new PF(); 

                                    pessoa.setDocReceita(docReceita); 

                                    pessoa.setNome(nome); 

                                    docReceita.setPessoa(pessoa); 

                                } catch (Exception ex) { 

                                    ex.printStackTrace(); 

                                    throw new RuntimeException("<center>" + 

                                            "<font face='verdana' color='red' " + 

                                            "  size='2'>Erro ao cadastrar Utilizador." + 

                                            "<br /> Verifique os dados de Pessoa física" + 

                                            " tente novamente</font></center>"); 

                                } 

                            } 

                            //Já existe pessoa com o CPF ou CNPJ informado? 

                            if (pessoa.existe(docReceita) == true) { 

                                if (pessoa.getTipo() == 1) { 

                                    throw new RuntimeException("<br>" + 

                                            "<center><font face='verdana' " + 

                                            "color='red'   size='2'><br />" + 

                                            "já existe cliente cadastrado com" + 

                                            " o CPF informado</font></center><br>"); 

                                } else { 

                                    throw new RuntimeException("<br>" + 

                                            "<center><font face='verdana' " + 

                                            "color='red'   size='2'><br />" + 

                                            "já existe cliente cadastrado com" + 

                                            " o CNPJ informado</font></center><br>"); 

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

Benefrancis do Nascimento

SISTEMA WEB

126 

 

 

                                } 

                            } 

                            try { 

                                username = request.getParameter("email"); 

                                senha = request.getParameter("senha"); 

                            } catch (Exception ex) { 

                                throw new RuntimeException("Verifique " + 

                                        "se o e‐mail e senha foram " + 

                                        "digitados corretamente"); 

                            } 

                            if (username == "" || senha == "") { 

                                throw new RuntimeException("<center>" + 

                                        "<font face='verdana' color='red'" + 

                                        " size='2'><br />Verifique o e‐mail " + 

                                        "e senha foram digitados corretamente" + 

                                        "</font></center>"); 

                            } else if (pessoa.existe(username) == true) { 

                                throw new RuntimeException("<br><center>" + 

                                        "<font face='verdana' color='red' " + 

                                        " size='2'><br />já existe usuário " + 

                                        "cadastrado com o e‐mail digitado</font>" + 

                                        "</center><br>"); 

                            } else { 

                                pessoa.setEmail(username); 

                                pessoa.setSenha(senha); 

                            } 

                            //Telefones da pessoa 

                            ArrayList<Telefone> telefone = new ArrayList<Telefone>(); 

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

Benefrancis do Nascimento

SISTEMA WEB

127 

 

                            try { 

                                int dddTel = Integer.parseInt(Util.SoNumero(request.getParameter("TelDDD"))); 

                                String Tel = Util.SoNumero(request.getParameter("Tel")); 

                                if (dddTel != 0 && Tel != "") { 

                                    telefone.add(new Telefone(dddTel, Tel, pessoa)); 

                                } 

                            } catch (Exception eTel) { 

                            } 

                            try { 

                                int dddCel = Integer.parseInt(Util.SoNumero(request.getParameter("TelCelDDD"))); 

                                String Cel = Util.SoNumero(request.getParameter("TelCel")); 

                                if (dddCel != 0 && Cel != "") { 

                                    telefone.add(new Telefone(dddCel, Cel, pessoa)); 

                                } 

                            } catch (Exception eCel) { 

                            } 

                            try { 

                                int dddFax = Integer.parseInt(Util.SoNumero(request.getParameter("TelFaxDDD"))); 

                                String Fax = Util.SoNumero(request.getParameter("TelFax")); 

                                if (dddFax != 0 && Fax != "") { 

                                    telefone.add(new Telefone(dddFax, Fax, pessoa)); 

                                } 

                            } catch (Exception eFax) { 

                            } 

                            //Endereços da pessoa 

                            ArrayList<Endereco> end = new ArrayList<Endereco>(); 

                            Endereco endereco = new Endereco(); 

                            String logradouro = ""; 

                            String numero = ""; 

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

Benefrancis do Nascimento

SISTEMA WEB

128 

 

                            String complemento = "";

                            String bairro = ""; 

                            String cep = ""; 

                            String cidade = ""; 

                            String uf = ""; 

                            try { 

                                logradouro = request.getParameter("logradouro"); 

                                numero = request.getParameter("Numero"); 

                                complemento = request.getParameter("Complemento"); 

                                bairro = request.getParameter("Bairro"); 

                                cep = Util.SoNumero(request.getParameter("CEP")); 

                                cidade = request.getParameter("Cidade"); 

                                uf = request.getParameter("uf"); 

                                if (logradouro == "" || numero == ""  

                                        || bairro == "" || cidade == "" 

                                        || uf == "" || cep == "") { 

                                    throw new RuntimeException("O endereço deve conter" + 

                                            " logradouro, número, Bairro, " + 

                                            "Cidade, Estado e CEP"); 

                                } else { 

                                    endereco.setLogradouro(logradouro); 

                                    endereco.setBairro(bairro); 

                                    endereco.setCep(cep); 

                                    endereco.setCidade(cidade); 

                                    endereco.setComplemento(complemento); 

                                    endereco.setNumero(numero); 

                                    endereco.setUf(uf); 

                                    endereco.setPessoa(pessoa); 

                                    end.add(endereco); 

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

Benefrancis do Nascimento

SISTEMA WEB

129 

 

                                } 

                            } catch (Exception ex) { 

                                ex.printStackTrace(); 

                                throw new RuntimeException("Logradouro é um campo obrigatório"); 

                            } 

                            //Salvando a pessoa e todos os seua relacionamentos em banco de dados 

                            //Adicionando a Pessoa 

                            pessoa.setTelefone(telefone); 

                            pessoa.setEndereco(end); 

                            pessoa.setAnimal(null); 

                            //Salvando: 

                            pessoa.salvar(pessoa); 

                            out.print("<br>"); 

                            out.print("<br>"); 

                            out.print("<br>"); 

                            out.print("<center><font face='verdana' color='blue'   size='2'>Utilizador cadastrado com sucesso</font></center>"); 

                            out.print("<br>"); 

                            out.print("<br>"); 

                            out.print("<br>"); 

                        } else {//Se op for diferente de 1 

%> 

 

                    </td> 

                </tr> 

                <tr> 

                    <td width="162" class="Txt">Tipo</td> 

                    <td width="436" class="Txt"> 

                        <select name="Tipo" id="Tipo" onChange="showCampo(document.forms[0][this.name].options[document.forms[0][this.name].selecte

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

Benefrancis do Nascimento

SISTEMA WEB

130 

 

dIndex].value,'campo_hidden');"> 

                            <option value="0">Selecione</option> 

                            <option value="PJ">PJ</option> 

                            <option value="PF">PF</option> 

                        </select> 

                    </td> 

                </tr> 

                <tr id="campo_hiddenPJ" style="display:none"> 

                    <td  height="104" colspan="2" valign="top"> 

 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0"> 

                            <!‐‐DWLayoutTable‐‐> 

                            <tr> 

                                <td height="1" colspan="2" valign="top"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" class="Txt"><strong>PESSOA JURÍDICA </strong></td> 

                            </tr> 

                            <tr> 

                                <td width="23%" height="27" valign="top" class="Txt">RAZÃO SOCIAL</td> 

                                <td width="77%" valign="top" class="Txt"><input name="razao" type="text" id="razao" size="50" maxlength="100"> 

                                    <span class="style1">*</span></td> 

                            </tr> 

 

                            <tr> 

                                <td height="27" valign="top" class="Txt">CNPJ</td> 

                                <td valign="top" class="Txt"><input name="CNPJ" type="text" id="CNPJ" OnKeyPress="formatar(this, '##.###.###/####‐##')" onKeyUp="javascript:Sonumero(this)" size="24"  maxLength="18" > 

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

Benefrancis do Nascimento

SISTEMA WEB

131 

 

                                    + </td> 

                            </tr> 

                        </table> 

                    </td> 

 

                </tr> 

 

                <tr id="campo_hiddenPF" style="display:none"> 

                    <td  height="104" colspan="2" valign="top"> 

 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0"> 

                            <!‐‐DWLayoutTable‐‐> 

                            <tr> 

                                <td height="1" colspan="2" valign="top"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" class="Txt"><strong>PESSOA F&Iacute;SICA </strong></td> 

                            </tr> 

                            <tr> 

                                <td width="20%"  valign="top" class="Txt">Nome Completo </td> 

                                <td width="80%" valign="top" class="Txt"><input name="Nome" type="text" id="Nome" size="50" maxlength="100"> 

                                    <span class="style1">*</span></td> 

                            </tr> 

 

                            <tr> 

                                <td width="25%" valign="top" class="Txt">CPF</td> 

                                <td width="75%" valign="top" class="Txt"><input name="CPF" type="text" id="CPF" OnKeyPress="formatar(this, '###.###.###‐##')" onKeyUp="javascript:Sonumero(this)" size=17  maxlength="14"> 

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

Benefrancis do Nascimento

SISTEMA WEB

132 

 

                                    + </td> 

                            </tr> 

                        </table> 

                    </td> 

 

                </tr> 

                <tr> 

                    <td id="contato" height="104" colspan="2" valign="top"> 

 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0"> 

                            <!‐‐DWLayoutTable‐‐> 

 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2" class="Txt"><strong>USUARIO DO SISTEMA</strong></td> 

                                <td></td> 

                            </tr> 

 

                            <tr> 

                                <td width="162" height="27" valign="top" class="Txt">E‐mail</td> 

                                <td width="436" valign="top" class="Txt"><input name="email" type="text" id="email" size="50" maxlength="200"> 

                                    <span class="style1">*</span></td> 

                            </tr> 

                            <tr> 

                                <td width="162" height="27" valign="top" class="Txt">Senha</td> 

                                <td width="436" valign="top" class="Txt"><input name="senha" type="text" 

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

Benefrancis do Nascimento

SISTEMA WEB

133 

 

id="senha" size="50" maxlength="200">

                                    <span class="style1">*</span></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2" class="Txt"><strong>CONTATO</strong></td> 

                                <td></td> 

                            </tr> 

 

                            <tr> 

                                <td class="Txt">Telelefone</td> 

                                <td class="Txt">(<input name="TelDDD" type="text" id="TelDDD" onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) <input name="Tel" type="text" id="Tel"  OnKeyPress="formatar(this, '####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Celular</td> 

                                <td class="Txt">(<input name="TelCelDDD" type="text" onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) <input name="TelCel" type="text" OnKeyPress="formatar(this, '####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Fax</td> 

                                <td class="Txt">(<input name="TelFaxDDD" type="text" onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) <input name="TelFax" type="text" OnKeyPress="formatar(this, '####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" 

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

Benefrancis do Nascimento

SISTEMA WEB

134 

 

maxlength="10"></td>

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2" class="Txt"><strong>ENDERE&Ccedil;O</strong></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">LOGRADOURO</td> 

                                <td class="Txt"><input name="logradouro" type="text" size="50" maxlength="50"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Nº</td> 

                                <td class="Txt"><input name="Numero" type="text" size="10" maxlength="10"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Complemento</td> 

                                <td class="Txt"><input name="Complemento" type="text" size="30" maxlength="50"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Bairro</td> 

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

Benefrancis do Nascimento

SISTEMA WEB

135 

 

                                <td class="Txt"><input name="Bairro" type="text" size="30" maxlength="50"></td>

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Cidade</td> 

                                <td class="Txt"><input name="Cidade" type="text" size="30" maxlength="50"></td> 

                                <td></td> 

                            </tr> 

                            <tr id="estados" > 

                                <td class="Txt">Estado</td> 

                                <td class="Txt"> 

                                    <select name="uf"> 

                                        <option value="">Selecione</option> 

                                        <option value="AC">AC</option> 

                                        <option value="AL">AL</option> 

                                        <option value="AP">AP</option> 

                                        <option value="AM">AM</option> 

                                        <option value="BA">BA</option> 

                                        <option value="CE">CE</option> 

                                        <option value="DF">DF</option> 

                                        <option value="ES">ES</option> 

                                        <option value="GO">GO</option> 

                                        <option value="MA">MA</option> 

                                        <option value="MT">MT</option> 

                                        <option value="MS">MS</option> 

                                        <option value="MG">MG</option> 

                                        <option value="PA">PA</option> 

                                        <option value="PB">PB</option> 

                                        <option value="PR">PR</option> 

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

Benefrancis do Nascimento

SISTEMA WEB

136 

 

                                        <option value="PE">PE</option>

                                        <option value="PI">PI</option> 

                                        <option value="RJ">RJ</option> 

                                        <option value="RN">RN</option> 

                                        <option value="RS">RS</option> 

                                        <option value="RO">RO</option> 

                                        <option value="RR">RR</option> 

                                        <option value="SC">SC</option> 

                                        <option value="SP">SP</option> 

                                        <option value="SE">SE</option> 

                                        <option value="TO">TO</option> 

                                    </select></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">CEP</td> 

                                <td class="Txt"> 

                                    <input name="CEP" type="text" OnKeyPress="formatar(this, '#####‐###')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="9"> 

        + </td> 

                                <td></td> 

                            </tr> 

                        </table> 

                    </td> 

                </tr> 

                <tr> 

                    <td colspan="2">&nbsp;</td> 

                    <td></td> 

                </tr> 

                <tr><td>&nbsp;</td></tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

137 

 

                <tr> 

                    <td class="Txt" width="20">&nbsp;</td> 

                    <td class="Txt" width="80" align="left"> 

                        <input type="hidden" name="op" value="1" /> 

                        <input type="button" name="Btn_Entrar" value="Cadastrar"  onClick="Validar(document.Formulario);"    > 

                    </td> 

                </tr> 

                <tr><td>&nbsp;</td></tr> 

                <%} 

                            } catch (Exception e) { 

                                out.print("<br>"); 

                                out.print("<center><font face='verdana' color='red'   size='2'>" 

                                        + "Erro ao cadastrar Utilizador</font></center>"); 

                                out.print(e.getMessage()); 

                            } 

 %> 

                <tr> 

                    <td colspan="2"> 

                        <jsp:include page="../geral/rodape.jsp" /> 

                    </td> 

                </tr> 

            </table> 

        </form> 

    </body> 

</html> 

Figura 98 ‐ Código fonte do arquivo pessoa.jsp do diretório cadastros 

 

Layoutdapáginadecadastramentodepessoa 

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

Benefrancis do Nascimento

SISTEMA WEB

138 

 

Abaixo o layout da página de cadastramento de pessoa. 

 

Figura 99 ‐ Layout da página de cadastramento de pessoa 

Animal.jsp 

Para cadastrar um animal o usuário deverá primeiro selecionar o dono do animal e em seguida 

pressionar o botão prosseguir. Em seguida digitar os dados do animal e por fim pressionar o 

botão cadastrar.  

 

ElementosdoformulárioAbaixo segue a lista dos elementos e suas propriedades: 

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

Benefrancis do Nascimento

SISTEMA WEB

139 

 

Tabela 3 ‐ Elementos do formulário para cadastramento de animal 

Índice  Id  Nome Tipo Valor Tamanho  Tamanho 

máximo 

0    idPessoa  hidden 1  

1  tipoAnimal  tipoAnimal  select  

2  nome  nome  text 50  100 

3  raca  raca  text 24  50 

4    dataNascimento text 11  10 

5  sexo  sexo  select  

6    observacao  textarea  

7    op  hidden 2  

8    Btn_Entrar  button Cadastrar  

 

Codificaremos agora a página para cadastramento de animais. 

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

Benefrancis do Nascimento

SISTEMA WEB

140 

 

<%‐‐ 

    Document   : animal.jsp 

    Created on : 22/11/2010, 16:35:56 

 

‐‐%> 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<%@page import="java.util.List" %> 

<%@page import="java.util.ListIterator" %> 

<%@page import="java.util.ArrayList" %> 

<%@page import="java.util.Collection" %> 

<%@page import="java.util.Date" %> 

 

<% 

//Operações: 

// 0 = nenhuma. Neste caso exibiremos o formulário pedindo para selecionar o 

//     dono do animal. Após selecionado submit será executado. 

// 1 = buscar os animais do dono: 

//    1a) Mostraremos os dados do dono(apagaremos o combobox de listagem de donos); 

//    1b) Aguardamos que o usuário escolha o animal. Após selecionado submit será 

executado. 

// 2 = registraremos o serviço executado. 

 

//Iniciando a variável op 

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

Benefrancis do Nascimento

SISTEMA WEB

141 

 

            int op = 0; 

//verificando a variável op enviada pelo formulário: 

            try { 

                op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 

            } catch (Exception ex) { 

                ex.printStackTrace(); 

            } 

            List<Pessoa> pList = new ArrayList<Pessoa>(); 

%> 

 

 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

            <tr> 

                <td height="22" colspan="2" valign="top" class="Txt"><strong>CADASTRAMENTO DE 

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

Benefrancis do Nascimento

SISTEMA WEB

142 

 

ANIMAL DE ESTIMAÇÃO</strong></td> 

            </tr> 

            <tr> 

                <td colspan="2">&nbsp;</td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                </td> 

            </tr> 

            <%  if (op == 0) {%> 

            <tr> 

                <td colspan="2"> 

                    <form action="animal.jsp" method="post" name="Formulario" > 

 

                        <table width="750" border="0" cellpadding="0" cellspacing="0"> 

                            <tr> 

                                <td colspan="2"> 

                            <tr> 

                                <td width="162" class="Txt">Dono do animal</td> 

                                <td width="436" class="Txt"> 

                                    <select name="idPessoa"> 

                                        <option value="0">  Selecione  </option> 

                                        <% 

                                  pList = Pessoa.consultar(); 

                                  for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 

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

Benefrancis do Nascimento

SISTEMA WEB

143 

 

                                      Pessoa achei = (Pessoa) iter.next(); 

                                %> 

                                        <option value="<% out.print(achei.getIdPessoa());%>"><% 

out.print(achei.getNome());%></option> 

                                        <% 

                                  } 

                                %> 

                                    </select> 

                                </td> 

 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">&nbsp;</td> 

                                <td class="Txt"><input type="hidden" name="op" value="1" /> 

                                    <input type="button" name="Btn_Entrar" value="Prosseguir >>"  

onClick="ValidarRegistro1(document.Formulario);"  > 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

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

Benefrancis do Nascimento

SISTEMA WEB

144 

 

                            </tr> 

                        </table> 

 

                    </form> 

 

                    <jsp:include page="../geral/rodape.jsp" /> 

 

                </td> 

            </tr> 

            <% } else if (op == 1) {%> 

            <tr> 

                <td colspan="2"> 

                    <form action="animal.jsp" method="post" name="Formulario" > 

 

                        <table width="750" border="0" cellpadding="0" cellspacing="0"> 

                            <% 

                       int idPessoa = 

Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 

                       Pessoa donoAnimal = Pessoa.consultar(idPessoa); 

                      %> 

 

                            <tr> 

                                <td colspan="2"> 

                                    <input type="hidden" name="idPessoa" 

value="<%out.print(donoAnimal.getIdPessoa());%>" /> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0"> 

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

Benefrancis do Nascimento

SISTEMA WEB

145 

 

                                        <tr> 

                                            <td width="20%" class="TopoTit">CLIENTE: </td> 

                                            <td class="TextoTit"><% out.print(donoAnimal.getNome());%></td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" 

class="Txt"><strong>ANIMAL</strong></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr> 

                                            <td width="162" class="Txt">Tipo</td> 

                                            <td width="436" class="Txt"> 

                                                <select name="tipoAnimal" id="tipoAnimal"> 

                                                    <option value="0">Selecione</option> 

                                                    <option value="1">Cachorro</option> 

                                                    <option value="2">Gato</option> 

                                                </select> 

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

Benefrancis do Nascimento

SISTEMA WEB

146 

 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td width="162" height="27" valign="top" class="Txt">Nome</td> 

                                            <td width="436" valign="top" class="Txt"><input name="nome" 

type="text" id="nome" size="50" maxlength="100"> 

                                            <span class="style1">*</span></td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Raça</td> 

                                            <td valign="top" class="Txt"><input name="raca" type="text" 

id="raca"  size="24"  maxLength="50" ></td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Data de Nascimento</td> 

                                            <td valign="top" class="Txt"><input name="dataNascimento" 

type="text"  size="11"  maxLength="10" OnKeyPress="formatar(this, '##/##/####')" 

onKeyUp="javascript:Sonumero(this)"></td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Sexo</td> 

                                            <td valign="top" class="Txt"> 

                                                <select name="sexo" id="sexo"> 

                                                    <option value="0">Selecione</option> 

                                                    <option value="M">Macho</option> 

                                                    <option value="F">Femea</option> 

                                                </select> 

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

Benefrancis do Nascimento

SISTEMA WEB

147 

 

                                            <td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Observacao</td> 

                                            <td valign="top" class="Txt"> 

                                                <textarea name="observacao" rows="4" cols="50"></textarea> 

                                            <td> 

                                        </tr> 

                                        <tr> 

                                            <td colspan="2">&nbsp;</td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td class="Txt" width="23%">&nbsp;</td> 

                                <td class="Txt" width="77%"> 

                                    <input type="hidden" name="op" value="2" /> 

                                    <input type="button" name="Btn_Entrar" value="Cadastrar"  

onClick="ValidarAnimal(document.Formulario);"    > 

                                </td> 

                            </tr> 

                            <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

148 

 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                        </table> 

                        <jsp:include page="../geral/rodape.jsp" /> 

 

                    </form> 

                </td> 

            </tr> 

            <%} else if (op == 2) {%> 

            <tr> 

                <td colspan="2"> 

                    <% 

      

                          //Declarando variáveis 

                          //Pessoa 

                          Pessoa pessoa = null; 

                          int idPessoa = 0; 

 

                          //Animal 

                          Animal animal = null; 

                          int tipoAnimal = 0; 

                          String nome = null; 

                          String raca = null; 

                          String dataNascimento = null; 

                          String sexo = null; 

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

Benefrancis do Nascimento

SISTEMA WEB

149 

 

                          String observacao = null; 

 

                          //Tipo, nome, data de nascimento e sexo são obrigatórios 

                          try { 

                              try { 

                                  idPessoa = 

Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 

                                  pessoa = Pessoa.consultar(idPessoa); 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("Erro ao construir o Objeto pessoa"); 

                              } 

 

                              try { 

                                  tipoAnimal = 

Integer.parseInt(Util.SoNumero(request.getParameter("tipoAnimal"))); 

                                  if (tipoAnimal == 1) { 

                                      animal = new Cachorro(); 

                                  } else if (tipoAnimal == 2) { 

                                      animal = new Gato(); 

                                  } else { 

                                      throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Selecione o Tipo do animal</font></center><br>"); 

                                  } 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

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

Benefrancis do Nascimento

SISTEMA WEB

150 

 

color='red'   size='2'><br />Erro ao pegar o tipo do animal</font></center><br>"); 

                              } 

 

                              try { 

                                  nome = request.getParameter("nome"); 

                                  if (nome == null || nome == "" || nome == "0") { 

                                      throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Informe o nome do animal</font></center><br>"); 

                                  } else { 

                                      animal.setNome(nome); 

                                  } 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Erro ao pegar o nome do animal</font></center><br>"); 

                              } 

 

                              try { 

                                  raca = request.getParameter("raca"); 

                                  animal.setRaca(raca); 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Erro ao capturar a raça do animal</font></center><br>"); 

 

                              } 

 

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

Benefrancis do Nascimento

SISTEMA WEB

151 

 

                              try { 

                                  dataNascimento = request.getParameter("dataNascimento"); 

 

                                  //validar data e construir um objeto Date() caso a data seja válida 

                                  if (dataNascimento == null || dataNascimento == "" || dataNascimento == 

"0") { 

                                      throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Informe a data de nascimento do animal</font></center><br>"); 

                                  } else if (Util.validarData(dataNascimento) != true) { 

                                      throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />A data de nascimento do animal é inválida</font></center><br>"); 

                                  } else { 

                                      animal.setDataNascimento(new Date(dataNascimento)); 

                                  } 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                              } 

 

                              try { 

                                  sexo = request.getParameter("sexo"); 

                                  if (sexo == null || sexo == "" || sexo == "0") { 

                                      throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Informe o sexo do animal</font></center><br>"); 

                                  } else { 

                                      animal.setSexo(sexo.charAt(0)); 

                                  } 

                              } catch (Exception ex) { 

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

Benefrancis do Nascimento

SISTEMA WEB

152 

 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Informe o sexo do animal</font></center><br>"); 

 

                              } 

 

                              try { 

                                  observacao = request.getParameter("observacao"); 

                                  if (observacao != "") { 

                                      animal.setObservacao(observacao); 

                                  } 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Erro ao pegar o parâmetro Observação</font></center><br>"); 

                              } 

                              animal.setPessoa(pessoa); 

                              animal.setIdAnimal(1); 

                              //Adicionando a uma lista os servicos executados 

                              ArrayList<Servico> servico = new ArrayList<Servico>(); 

                              animal.setServico(servico); 

                              //salvando 

                              animal.salvar(animal); 

                              out.print("<br><center><font face='verdana' color='blue'   size='2'><br 

/>Animal cadastrado com sucesso em nosso banco de dados</font></center><br><br><br>");

                          } catch (Exception ex) { 

                              ex.printStackTrace(); 

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

Benefrancis do Nascimento

SISTEMA WEB

153 

 

                              out.print("<br>"); 

                              out.print("<br>"); 

                              out.print("<br>"); 

                              out.print("<br><center><font face='verdana' color='red'   size='2'><br />Erro 

ao cadastrar o animal</font></center><br>"); 

                              out.print(ex.getMessage()); 

                              out.print("<br>"); 

                              out.print("<br>"); 

                          } 

                    %> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            <tr> 

                <% }//fim do if de op%> 

        </table> 

 

    </body> 

</html> 

Figura 100 ‐ código fonte da página para cadastramento de animais 

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

Benefrancis do Nascimento

SISTEMA WEB

154 

 

Layoutdapáginapararegistrodeanimal

Figura 101 ‐ Layout da página para registro de animal 

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

Benefrancis do Nascimento

SISTEMA WEB

155 

 

 

 

 

 

 

 

 

 

 

 

 

Codificandoarquivosdodiretórioserviços

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

Benefrancis do Nascimento

SISTEMA WEB

156 

 

Introdução 

Neste diretório teremos apenas um arquivo; O registra.jsp que será o responsável pelo 

cadastramento de serviços realizados no animal. 

registrar.jsp 

Para registrar um serviço, será necessário selecionar uma pessoa, e em seguida o animal desta 

pessoa, para que seja aberto o formulário com os campos para cadastramento do serviço. 

 

A tela deverá possuir um formulário. Veja a tag: 

<form action="registrar.jsp" method="post" name="Formulario" > 

<!—Incluir os elementos do formulário aqui ‐‐> 

</form> 

Elementosdoformuláriopararegistrodeserviç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  

 

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

Benefrancis do Nascimento

SISTEMA WEB

157 

 

Codificaremosagoraapáginapararegistrodeserviç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) { 

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

Benefrancis do Nascimento

SISTEMA WEB

158 

 

                ex.printStackTrace(); 

            } 

             

            List<Pessoa> pList = new ArrayList<Pessoa>(); 

            

            List<Animal> aList = new ArrayList<Animal>(); 

              

            //Serviço 

            int servicoEscolhido = 0; 

            Servico servico = null; 

            String nome = null; 

             

%> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body>         

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

159 

 

            <tr> 

                <td height="22" colspan="2" valign="top" class="Txt"><strong>CADASTRAMENTO DE  

SERVIÇOS NO ANIMAL</strong></td> 

            </tr> 

            <tr> 

                <td colspan="2">&nbsp;</td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                </td> 

            </tr> 

            <%  if (op == 0) {%> 

            <tr> 

                <td colspan="2"> 

                    <form action="registrar.jsp" method="post" name="Formulario" > 

                        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

                            <tr> 

                                <td colspan="2"> 

                            <tr> 

                                <td width="162" class="Txt">Dono do animal</td> 

                                <td width="436" class="Txt"> 

                                    <select name="idPessoa"> 

                                        <option value="0">  Selecione  </option> 

                                        <% 

                                  pList = Pessoa.consultar(); 

                                  for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 

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

Benefrancis do Nascimento

SISTEMA WEB

160 

 

                                      Pessoa achei = (Pessoa) iter.next(); 

                               %> 

                                        <option value="<% out.print(achei.getIdPessoa());%>"><% 

out.print(achei.getNome());%></option> 

                                        <% 

                                  } 

                             %> 

                                    </select> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">&nbsp;</td> 

                                <td class="Txt"><input type="hidden" name="op" value="1" /> 

                                    <input type="button" name="Btn_Entrar" value="Prosseguir >>"  

onClick="ValidarRegistro1(document.Formulario);"  > 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

 

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

Benefrancis do Nascimento

SISTEMA WEB

161 

 

                            </tr> 

                        </table> 

                    </form> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

            <% } else if (op == 1) {%> 

            <tr> 

                <td colspan="2"> 

                    <form action="registrar.jsp" method="post" name="Formulario" > 

                        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

                            <% 

                      int idPessoa = 

Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 

                      Pessoa donoAnimal = Pessoa.consultar(idPessoa); 

                      %> 

                            <tr> 

                                <td colspan="2"> 

                                    <input type="hidden" name="idPessoa" 

value="<%out.print(donoAnimal.getIdPessoa());%>" /> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0"> 

                                        <tr> 

                                            <td width="20%" class="TopoTit">CLIENTE: </td> 

                                            <td class="TextoTit"><% out.print(donoAnimal.getNome());%></td> 

                                        </tr> 

                                    </table> 

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

Benefrancis do Nascimento

SISTEMA WEB

162 

 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            <tr> 

                                <td width="162" class="Txt">ANIMAL DE ESTIMAÇÃO</td> 

                                <td width="436" class="Txt"> 

                                    <select name="idAnimal"> 

                                        <option value="0">  Selecione  </option> 

                                        <% 

                                  aList = (ArrayList<Animal>) Animal.consultar(donoAnimal); 

                                  for (ListIterator iter = aList.listIterator(); iter.hasNext();) { 

                                      Animal acheiAnimal = (Animal) iter.next(); 

                               %> 

                                        <option value="<% out.print(acheiAnimal.getIdAnimal());%>"><% 

out.print(acheiAnimal.getNome());%></option> 

                                        <% 

                                  } 

                               %> 

                                    </select> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

163 

 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">&nbsp;</td> 

                                <td class="Txt"> 

                                    <input type="hidden" name="op" value="2" /> 

                                    <input type="button" name="Btn_Entrar" value="Prosseguir >>"  

onClick="ValidarRegistro2(document.Formulario);" > 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

 

                            </tr> 

                        </table> 

                        <jsp:include page="../geral/rodape.jsp" /> 

 

                    </form> 

 

                </td> 

            </tr> 

            <%} else if (op == 2) {%> 

 

            <tr> 

                <td  height="104" colspan="2" valign="top" > 

                    <form action="registrar.jsp" method="post" name="Formulario" > 

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

Benefrancis do Nascimento

SISTEMA WEB

164 

 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                            <!‐‐DWLayoutTable‐‐> 

                            <% 

                          int idPessoa = 

Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 

                          Pessoa donoAnimal = Pessoa.consultar(idPessoa); 

 

                          int idAnimal = 

Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 

                          Animal animal = Animal.consultar(idAnimal); 

                      %> 

                            <tr> 

                                <td colspan="2"> 

                                    <input type="hidden" name="idPessoa" 

value="<%out.print(donoAnimal.getIdPessoa());%>" /> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr > 

                                            <td width="20%" class="TopoTit">CLIENTE: </td> 

                                            <td class="TextoTit"><% out.print(donoAnimal.getNome());%></td> 

                                        </tr> 

                                        <tr> 

                                            <td width="20%" class="TopoTit">ANIMAL DE ESTIMAÇÃO: </td> 

                                            <td class="TextoTit" ><% out.print(animal.getNome());%></td> 

                                        </tr> 

                                    </table> 

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

Benefrancis do Nascimento

SISTEMA WEB

165 

 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" class="Txt"><strong>SERVIÇO 

EXECUTADO</strong></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr> 

                                            <td width="165" class="Txt">Serviço</td> 

                                            <td width="581" class="Txt"> 

                                                <select name="servico" id="servico"> 

                                                    <option value="0">Selecione</option> 

                                                    <option value="1">Consulta Veterinária</option> 

                                                    <option value="2">Banho</option> 

                                                    <option value="3">Tosa</option> 

                                                    <option value="4">Vacina</option> 

                                                </select> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td width="165" height="27" valign="top" class="Txt">Nome / 

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

Benefrancis do Nascimento

SISTEMA WEB

166 

 

Descrição </td> 

                                            <td width="581" valign="top" class="Txt"> 

                                                <input name="nome" type="text" id="nome" size="50" 

maxlength="100"> 

                                                <span class="style1">*</span></td> 

                                        </tr> 

 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Valor R$ </td> 

                                            <td valign="top" class="Txt"> 

                                                <input name="valor" type="text"  size="11"  maxLength="10" 

onKeyUp="javascript:Sonumero(this)"> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Observacao</td> 

                                            <td valign="top" class="Txt"> 

                                                <textarea name="observacao" rows="4" cols="50"></textarea> 

                                            <td width="10"> 

                                        </tr> 

                                        <tr> 

                                            <td colspan="2">&nbsp;</td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

167 

 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td class="Txt" width="23%">&nbsp;</td> 

                                <td class="Txt" width="77%"> 

                                    <input type="hidden" name="op" value="3" /> 

                                    <input type="hidden" name="idAnimal" value="<% 

out.print(Util.SoNumero(request.getParameter("idAnimal")));%>" /> 

                                    <input type="button" name="Btn_Entrar" value="Cadastrar"  

onClick="ValidarRegistro(document.Formulario);"    > 

                                </td> 

                            </tr> 

 

                        </table> 

                    </form> 

                </td> 

            </tr> 

            <tr> 

                <td colspan="2">&nbsp;</td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

168 

 

            <%} else if (op == 3) {%> 

            <tr> 

                <td colspan="2"> 

                    <% 

                    try{ 

                    Animal animal=null; 

                          try { 

                              //Cadastraremos o serviço executado no animal de estimação de uma pessoa

                              //Buscando Animal 

                              int idAnimal = 

Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 

                              animal = Animal.consultar(idAnimal); 

                              if (animal == null) { 

                                  throw new RuntimeException("Erro na busca dos dados do animal."); 

                              } 

                              //Criando um objeto serviço conforme o serviço escolhido: 

                              try { 

                                  servicoEscolhido = 

Integer.parseInt(Util.SoNumero(request.getParameter("servico"))); 

                                  switch (servicoEscolhido) { 

                                      case 1: 

                                          servico = new Banho(); 

                                          break; 

                                      case 2: 

                                          servico = new Consulta(); 

                                          break; 

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

Benefrancis do Nascimento

SISTEMA WEB

169 

 

                                      case 3: 

                                          servico = new Tosa(); 

                                          break; 

                                      case 4: 

                                          servico = new Vacina(); 

                                          break; 

                                      default: 

                                          throw new RuntimeException("Serviço inválido! Favor selecionar o 

serviço executado."); 

                                  } 

                              } catch (Exception ex) { 

                              } 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Erro ao pegar o nome do serviço efetuado</font></center><br>"); 

                              } 

                              double valor = 0; 

                              try { 

                                  valor = Double.parseDouble(request.getParameter("valor")); 

                                  servico.setValor(valor); 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Informe corretamente o valor do serviço 

executado</font></center><br>"); 

                              } 

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

Benefrancis do Nascimento

SISTEMA WEB

170 

 

                              String descricao = null; 

                              try { 

                                  descricao = request.getParameter("nome"); 

                                  servico.setDescricao(descricao); 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Erro ao pegar o nome / descrição do serviço 

efetuado</font></center><br>"); 

                              } 

                              String observacao = null; 

                              try { 

                                  observacao = request.getParameter("observacao"); 

                                  servico.setObservacao(observacao); 

                              } catch (Exception ex) { 

                                  ex.printStackTrace(); 

                                  throw new RuntimeException("<br><center><font face='verdana' 

color='red'   size='2'><br />Erro ao pegar observação referente ao serviço 

efetuado</font></center><br>"); 

                              } 

                              //Adicionando o animal 

                              servico.setAnimal(animal); 

                              servico.setData(new Date()); 

                              //salvando 

                              servico.salvar(servico); 

                              out.print("<br>"); 

                              out.print("<br>"); 

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

Benefrancis do Nascimento

SISTEMA WEB

171 

 

                              out.print("<br>"); 

                              out.print("<br><center><font face='verdana' color='blue'   size='2'><br 

/>Serviço cadastrado com sucesso</font></center><br>"); 

                              out.print("<br>"); 

                              out.print("<br>"); 

                          } catch (Exception ex) { 

                              ex.printStackTrace(); 

                              out.print("<br>"); 

                              out.print("<br>"); 

                              out.print("<br>"); 

                              out.print("<br><center><font face='verdana' color='red'   size='2'><br />Erro 

ao cadastrar o serviço executado</font></center><br>"); 

                              out.print("<br><center><font face='verdana' color='red'   size='2'><br />" + 

ex.getMessage() + "</font></center><br>"); 

                              out.print("<br>"); 

                              out.print("<br>"); 

                          } 

                    %> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

            <% }//fim do if de op%> 

        </table> 

    </body> 

</html> 

Figura 102 ‐ Código fonte da página para registro de serviço 

 

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

Benefrancis do Nascimento

SISTEMA WEB

172 

 

Layoutdapaginapararegistrodeserviço 

Figura 103 ‐ Layout da pagina para registro de serviço 

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

Benefrancis do Nascimento

SISTEMA WEB

173 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Codificandoarquivosdodiretórioconsultas

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

Benefrancis do Nascimento

SISTEMA WEB

174 

 

Introdução 

Neste diretório teremos telas para consulta de Pessoas, animais e serviços. No relatório das 

consultas terão opções para detalhar, editar, excluir e etc. São arquivos deste diretório: 

Tabela 5 ‐ Arquivos do diretório consultas 

NOME  DESCRIÇÃO 

pessoa.jsp  Retorna todas as pessoas cadastradas no 

sistema. Apresenta link para cadastrar um 

novo animal para uma pessoa, visualizar os 

dados da pessoa, editar os dados da pessoa 

ou excluir a pessoa. 

animal.jsp  Retorna os animais cadastrados para uma 

pessoa selecionada ou todos os animais 

registrados. Apresenta link para incluir novo 

serviço para o animal, visualizar os dados 

deste animal, editar os dados do animal ou 

excluir o animal. 

servico.jsp  Retorna todos os serviços realizados. 

Apresenta link para visualizar os dados do 

serviço realizado, editar o serviço ou excluir o 

serviço. 

detalhe_pessoa.jsp  Exibe todas as informações de uma pessoa. 

detalhe_animal.jsp  Exibe todas as informações de um animal. 

detalhe_servico.jsp  Exibe todas as informações de um serviço 

realizado. 

editar_pessoa.jsp  Permite alterar os dados de uma pessoa 

editar_animal.jsp  Permite alterar os dados de um animal. 

editar_servico.jsp  Permite alterar os dados de um serviço 

realizado. 

excluir_pessoa.jsp  Permite excluir uma pessoa do sistema. 

excluir_animal.jsp  Permite excluir um animal do sistema. 

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

Benefrancis do Nascimento

SISTEMA WEB

175 

 

excluir_serviço.jsp  Permite excluir um serviço realizado em um 

animal cadastrado no sistema. 

Pessoa.jsp 

A página pessoa.jsp do diretório consultas lista todas as pessoas cadastradas no sistema. Veja 

abaixo o código fonte. 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<%@page import="java.util.ArrayList" %> 

<%@page import="java.util.Date" %> 

<%@page import="java.util.List" %> 

<%@page import="java.util.ListIterator" %> 

<% 

//Iniciando variavel que receberá a lista de pessoas 

List<Pessoa> pList = new ArrayList<Pessoa>(); 

%> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

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

Benefrancis do Nascimento

SISTEMA WEB

176 

 

                </td> 

            </tr> 

            <tr> 

                <td height="22" colspan="2" valign="top" 

class="Txt"><strong>PESSOAS</strong></td> 

            </tr> 

            <tr> 

                <td colspan="2">&nbsp;</td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                </td> 

            </tr> 

            <tr> 

                <td colspan="2"><hr size="1"></td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                    <table border="0" width="100%"> 

                        <thead> 

                            <tr class="TopoTit"> 

                                <th>NOME</th> 

                                <th>TELEFONES</th> 

                                <th>EMAIL</th> 

                                <th>ANIMAIS</th> 

                                <th>AÇÕES</th> 

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

Benefrancis do Nascimento

SISTEMA WEB

177 

 

                            </tr> 

                        </thead> 

                        <tbody> 

                            <% 

                                        pList = Pessoa.consultar(); 

                                        for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 

                                            Pessoa achei = (Pessoa) iter.next(); 

                      %> 

                            <tr> 

                                <td align="left" class="Txt"><% out.print(achei.getNome());%></td> 

                              

                                <td align="left" class="Txt"> 

                                <% 

                        List<Telefone> telefones = (List<Telefone>)   Telefone.consultar(achei); 

                        for (int i = 0; i <= telefones.size(); i++) { 

                            try { 

                                out.print(telefones.get(i).getDdd()); 

                                out.print(" ‐ "); 

                                out.print(telefones.get(i).getNumero()+"&nbsp;&nbsp;"); 

                                } catch (Exception e) { 

                                } 

                            } 

                        %> 

                                </td> 

                                <td align="left" class="Txt"><%out.print(achei.getEmail());%></td> 

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

Benefrancis do Nascimento

SISTEMA WEB

178 

 

                                <td align="center" class="Txt"> 

                                <% 

                        List<Animal> animais = (ArrayList<Animal>) Animal.consultar(achei); 

                         

                        out.print(animais.size()); 

 

                        %> 

                                </td> 

                                <td class="Txt" align="center"> 

                                    <table border="0" align="center" cellpadding="2" cellspacing="2" 

width="100%" > 

                                        <tr align="center" valign="middle"> 

                                            <td> 

                                                <a 

href="../cadastros/animal.jsp?op=1&amp;idPessoa=<%out.print(achei.getIdPessoa());%>"> 

                                                    <img src="../images/img_gato.png" width="30" height="30" 

alt="Inserir animal de estimação" title="Inserir animal de estimação" border="0" /> 

                                                </a> 

                                            </td> 

                                            <td> 

                                                <a 

href="../consultas/detalhe_pessoa.jsp?idPessoa=<%out.print(achei.getIdPessoa());%>"> 

                                                    <img src="../images/img_lupa_transparente.png" width="30" 

height="30" alt="consultar" title="consultar" border="0"/> 

                                                </a> 

                                            </td> 

                                            <td> 

                                                <a 

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

Benefrancis do Nascimento

SISTEMA WEB

179 

 

href="../consultas/editar_pessoa.jsp?op=2&amp;idPessoa=<%out.print(achei.getIdPessoa());%

>"> 

                                                    <img src="../images/img_caderno_transparente.png" width="30" 

height="30" border="0" alt="editar" title="editar"/> 

                                                </a> 

                                            </td> 

                                            <td> 

                                                <a 

href="../consultas/excluir_pessoa.jsp?idPessoa=<%out.print(achei.getIdPessoa());%>"> 

                                                    <img src="../images/img_lixeira_transparente.png" width="30" 

height="30" border="0" alt="excluir" title="excluir"/> 

                                                </a> 

                                            </td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <%}%> 

                        </tbody> 

                    </table> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

        </table> 

    </body> 

</html> 

 

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

Benefrancis do Nascimento

SISTEMA WEB

180 

 

Layoutdapáginadeconsultadepessoas 

Abaixo o layout da página de consulta de pessoas. 

Figure 4 ‐ Layout da página de consulta de pessoas 

Editar_pessoa.jspVeja o código da pagina editar_pessoa.jsp 

 

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

Benefrancis do Nascimento

SISTEMA WEB

181 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<%@ page import="java.util.List"%> 

<%@ page import="java.util.ArrayList"%> 

<%@ page import="java.util.ListIterator" %> 

<%@ page import="java.util.Collection" %> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <form action="editar_pessoa.jsp" method="post" name="Formulario" > 

            <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

                <tr> 

                    <td colspan="2"> 

                        <jsp:include page="../geral/topo.jsp" /> 

                    </td> 

                </tr> 

                <tr> 

                    <td colspan="2"> 

                    <% 

                    //iniciando variáveis: 

                    int op = 0; 

                    String tipo = null; 

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

Benefrancis do Nascimento

SISTEMA WEB

182 

 

                    int idPessoa=0; 

                    Pessoa p = null; 

                    String nome = ""; 

                    String razao = ""; 

                    String docReceita = ""; 

                    int dddTel = 0; 

                    String Tel = ""; 

                    int dddCel = 0; 

                    String Cel = ""; 

                    int dddFax = 0; 

                    String Fax = ""; 

 

                    try { 

                        if (!request.getParameter("op").isEmpty()) { 

                            op = Integer.parseInt(request.getParameter("op")); 

                        } 

                    } catch (Exception ex) { 

                     throw new RuntimeException("<center><font face='verdana' color='red'   

size='2'>Erro ao tentar localizar dados da pessoa.<br /> Verifique os dados e tente 

novamente</font></center>"); 

                    } 

 

                    try{ 

                      idPessoa = Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 

                    }catch(Exception e){ 

                     throw new RuntimeException("<center><font face='verdana' color='red'   

size='2'>Erro ao tentar localizar dados da pessoa.<br /> Verifique os dados e tente 

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

Benefrancis do Nascimento

SISTEMA WEB

183 

 

novamente</font></center>"); 

                    } 

 

                    p = new PF().consultar(idPessoa); 

                    try { 

                    if (op == 1) { 

                    try{ 

                      idPessoa = Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 

                    }catch(Exception e){ 

                     throw new RuntimeException("<center><font face='verdana' color='red'   

size='2'>Erro ao tentar localizar dados da pessoa.<br /> Verifique os dados e tente 

novamente</font></center>"); 

                    } 

                        try { 

                            tipo = request.getParameter("Tipo"); 

                        } catch (Exception ex) { 

                        } 

                        if (tipo == "PJ") { 

 

                            p = new PJ().consultar(idPessoa); 

                            try { 

                                nome = request.getParameter("razao"); 

                                docReceita = request.getParameter("CNPJ"); 

                                docReceita = Util.SoNumero(docReceita); 

                                //Criando uma pessoa juridica 

                            } catch (Exception ex) { 

                                throw new RuntimeException("<center><font face='verdana' color='red'   

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

Benefrancis do Nascimento

SISTEMA WEB

184 

 

size='2'>Erro ao cadastrar Utilizador.<br /> Verifique os dados de Pessoa Jurídica tente 

novamente</font></center>"); 

                            } 

                        } else { 

 

                            p = new PF().consultar(idPessoa); 

 

                            try { 

                                nome = request.getParameter("Nome"); 

                                docReceita = request.getParameter("CPF"); 

                                docReceita = Util.SoNumero(docReceita); 

                            } catch (Exception ex) { 

                                throw new RuntimeException("<center><font face='verdana' color='red'   

size='2'>Erro ao cadastrar Utilizador.<br /> Verifique os dados de Pessoa física tente 

novamente</font></center>"); 

                            } 

                        } 

                        //Endereço da pessoa 

                        Endereco endereco = new Endereco(); 

                        String logradouro = ""; 

                        String numero = ""; 

                        String complemento = ""; 

                        String bairro = ""; 

                        String cep = ""; 

                        String cidade = ""; 

                        String uf = ""; 

                                                

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

Benefrancis do Nascimento

SISTEMA WEB

185 

 

                        //Endereço 

                        List<Endereco> novoEndereco = new ArrayList<Endereco>(); 

                        try { 

                            logradouro = request.getParameter("logradouro"); 

                            numero = request.getParameter("Numero"); 

                            complemento = request.getParameter("Complemento"); 

                            bairro = request.getParameter("Bairro"); 

                            cep = Util.SoNumero(request.getParameter("CEP")); 

                            cidade = request.getParameter("Cidade"); 

                            uf = request.getParameter("uf"); 

                            if (logradouro == "" || numero == "" || bairro == "" || cidade == "" || uf == "" 

|| cep == "") { 

                                throw new RuntimeException("O endereço deve conter logradouro, número, 

Bairro, Cidade, Estado e CEP"); 

                            } else { 

                                endereco.setLogradouro(logradouro); 

                                endereco.setBairro(bairro); 

                                endereco.setCep(cep); 

                                endereco.setCidade(cidade); 

                                endereco.setComplemento(complemento); 

                                endereco.setNumero(numero); 

                                endereco.setUf(uf); 

                            } 

                        } catch (Exception ex) { 

                            throw new RuntimeException("Logradouro é um campo obrigatório"); 

                        } 

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

Benefrancis do Nascimento

SISTEMA WEB

186 

 

 

                        //Telefones 

                        ArrayList<Telefone> telefone = new ArrayList<Telefone>(); 

                        try { 

                            dddTel = Integer.parseInt(Util.SoNumero(request.getParameter("TelDDD"))); 

                            Tel = Util.SoNumeroTel(request.getParameter("Tel")); 

                        } catch (Exception eTel) { 

                        } 

                        try { 

                            dddCel = 

Integer.parseInt(Util.SoNumero(request.getParameter("TelCelDDD"))); 

                            Cel = Util.SoNumeroTel(request.getParameter("TelCel")); 

                        } catch (Exception eCel) { 

                        } 

                        try { 

                            dddFax = 

Integer.parseInt(Util.SoNumero(request.getParameter("TelFaxDDD"))); 

                            Fax = Util.SoNumeroTel(request.getParameter("TelFax")); 

                        } catch (Exception eFax) { 

                        } 

 

                        if (dddTel != 0 && Tel != "") { 

                            telefone.add(new Telefone(dddTel, Tel, p)); 

                        } 

 

                        if (dddCel != 0 && Cel != "") { 

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

Benefrancis do Nascimento

SISTEMA WEB

187 

 

                            telefone.add(new Telefone(dddCel, Cel, p)); 

                        } 

 

                        if (dddFax != 0 && Fax != "") { 

                            telefone.add(new Telefone(dddFax, Fax, p)); 

                        } 

                                      

                        //Excluindo endereço anterior 

                        List<Endereco> end = endereco.consultar(p); 

                        for(int i=0; i<end.size();i++){ 

                          Endereco.excluir(end.get(i)); 

                        } 

 

                        //Excluindo Telefones anteriores 

                        List<Telefone> tel = (List<Telefone>) Telefone.consultar(p); 

                        for(int i=0; i<tel.size();i++){ 

                          Telefone.excluir(tel.get(i)); 

                        } 

                             

                        p.setNome(nome); 

                        endereco.setPessoa(p); 

                        novoEndereco.add(endereco); 

                        p.setEndereco(novoEndereco); 

                        p.setTelefone(telefone); 

                        p.alterar(p); 

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

Benefrancis do Nascimento

SISTEMA WEB

188 

 

 

                        out.print("<br>"); 

                        out.print("<br>"); 

                        out.print("<br>"); 

                        out.print("<center><font face='verdana' color='blue'   size='2'>Utilizador 

cadastrado com sucesso</font></center>"); 

                        out.print("<br>"); 

                        out.print("<br>"); 

                        out.print("<br>"); 

 

                    } else if (op == 2) { 

 

                    %> 

                    </td> 

                </tr> 

                <tr> 

                    <td width="162" class="Txt">Tipo</td> 

                    <td width="436" class="Txt"> 

                        <select name="Tipo" id="Tipo" 

onChange="showCampo(document.forms[0][this.name].options[document.forms[0][this.nam

e].selectedIndex].value,'campo_hidden');"> 

                            <option  <%if (p.getTipo()==2) {%>  selected <%}%> value="PJ" >PJ</option> 

                            <option  <%if (p.getTipo()==1) {%>  selected <%}%> value="PF" >PF</option> 

                        </select> 

                    </td> 

 

                </tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

189 

 

 

                <tr id="campo_hiddenPJ" style<% if (p.getTipo()==2) {%> ="display:''" <%} else {%> 

="display:none" <%}%>> 

                <td  height="104" colspan="2" valign="top"> 

 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">

                            <!‐‐DWLayoutTable‐‐> 

                            <tr> 

                                <td height="1" colspan="2" valign="top"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" class="Txt"><strong>PESSOA 

JURÍDICA </strong></td> 

                            </tr> 

                            <tr> 

                                <td width="162" height="27" valign="top" class="Txt">RAZÃO SOCIAL</td> 

                                <td width="436" valign="top" class="Txt"><input name="razao" value="<% if 

(p.getTipo()==2) { 

                                                                                out.print(p.getNome()); 

                                                                            }%>" type="text" id="razao" size="50" 

maxlength="100"> 

                                    <span class="style1">*</span></td> 

                            </tr> 

                            <tr> 

                                <td height="27" valign="top" class="Txt">CNPJ</td> 

                                <td valign="top" class="Txt"> 

                                    <input name="CNPJ" 

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

Benefrancis do Nascimento

SISTEMA WEB

190 

 

                                           type="text" 

                                           id="CNPJ" 

                                           OnKeyPress="formatar(this, '##.###.###/####‐##')" 

                                           onKeyUp="javascript:Sonumero(this)" 

                                           size="24" 

                                           maxLength="18" 

                                           value="<% if (p.getTipo()==2) 

{out.print(p.getDocReceita().getNumero());}%>" > 

                                    + </td> 

                            </tr> 

                        </table> 

                    </td> 

 

                </tr> 

 

                <tr id="campo_hiddenPF" style<% if (p.getTipo()==1) {%> ="display:''" <%} else {%> 

="display:none" <%}%>> 

                <td  height="104" colspan="2" valign="top"> 

 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">

                            <!‐‐DWLayoutTable‐‐> 

                            <tr> 

                                <td height="1" colspan="2" valign="top"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" class="Txt"><strong>PESSOA 

F&Iacute;SICA </strong></td> 

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

Benefrancis do Nascimento

SISTEMA WEB

191 

 

                            </tr> 

                            <tr> 

                                <td width="162" height="27" valign="top" class="Txt">Nome Completo 

</td> 

                                <td width="436" valign="top" class="Txt"> 

                                    <input 

                                        name="Nome" 

                                        value="<% if (p.getTipo()==1) {out.print(p.getNome());}%>" 

                                        type="text" 

                                        id="Nome" 

                                        size="50" 

                                        maxlength="100"> 

                                    <span class="style1">*</span></td> 

                            </tr> 

                            <tr> 

                                <td height="27" valign="top" class="Txt">CPF</td> 

                                <td valign="top" class="Txt"> 

                                    <input 

                                        name="CPF" 

                                        type="text" 

                                        id="CPF" 

                                        OnKeyPress="formatar(this, '###.###.###‐##')" 

                                        onKeyUp="javascript:Sonumero(this)" 

                                        size=17 

                                        maxlength="14" 

                                        value="<% if (p.getTipo()==1) 

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

Benefrancis do Nascimento

SISTEMA WEB

192 

 

{out.print(p.getDocReceita().getNumero());}%>"> 

                                    + </td> 

                            </tr> 

                        </table> 

                    </td> 

 

                </tr> 

 

 

                <tr> 

                    <td id="contato" height="104" colspan="2" valign="top"> 

 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">

                            <!‐‐DWLayoutTable‐‐> 

 

 

                            <tr> 

                                <td colspan="3"><hr size="1"></td> 

                                <td></td> 

                            </tr> 

                            <tr> 

                                <td colspan="3" class="Txt"><strong>TELEFONES</strong></td> 

                            </tr> 

                            <% 

                    List<Telefone> telefones = new ArrayList<Telefone>(); 

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

Benefrancis do Nascimento

SISTEMA WEB

193 

 

                    telefones = (List<Telefone>)Telefone.consultar(p); 

 

                    for (int i = 0; i <= 2; i++) { 

                        if (i == 0) { 

                            try { 

                    %> 

                            <tr> 

                                <td class="Txt">Telefone</td> 

                                <td colspan="2" class="Txt"> 

                                    <%if (telefones.size() >= 1) {%> 

                                    (<input name="TelDDD" value="<%out.print(telefones.get(i).getDdd());%>" 

type="text" id="TelDDD" onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 

                                    <input name="Tel" value="<%out.print(telefones.get(i).getNumero());%>" 

type="text" id="Tel"  OnKeyPress="formatar(this, '####‐####')" 

onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 

                                    <%} else {%> 

                                    (<input name="TelDDD"  type="text" id="TelDDD" 

onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 

                                    <input name="Tel"  type="text" id="Tel"  OnKeyPress="formatar(this, 

'####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 

 

                                    <%}%> 

                                </td> 

                            </tr> 

                            <% 

                        } catch (Exception e) { 

                            e.printStackTrace(); 

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

Benefrancis do Nascimento

SISTEMA WEB

194 

 

                        } 

                    } 

                    if (i == 1) { 

                        try { 

                    %> 

                            <tr> 

                                <td class="Txt">Telefone</td> 

                                <td colspan="2" class="Txt"> 

 

                                    <%if (telefones.size() >= 2) {%> 

                                    (<input name="TelCelDDD" 

value="<%out.print(telefones.get(i).getDdd());%>" type="text" 

onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 

                                    <input name="TelCel" 

value="<%out.print(telefones.get(i).getNumero());%>" type="text" OnKeyPress="formatar(this, 

'####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 

 

                                    <%} else {%> 

                                    (<input name="TelCelDDD"  onKeyUp="javascript:Sonumero(this)" 

size="2" maxlength="2">) 

                                    <input name="TelCel"  type="text" OnKeyPress="formatar(this, '####‐

####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 

 

                                    <%}%> 

                                </td> 

                            </tr> 

                            <% 

                        } catch (Exception e) { 

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

Benefrancis do Nascimento

SISTEMA WEB

195 

 

                            e.printStackTrace(); 

                        } 

                    } 

 

                    if (i == 2) { 

                        try { 

                    %> 

                            <tr> 

                                <td class="Txt">Telefone</td> 

                                <td colspan="2" class="Txt"> 

                                    <%if (telefones.size() >= 3) {%> 

                                    (<input name="TelFaxDDD" 

value="<%out.print(telefones.get(i).getDdd());%>" type="text" 

onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 

                                    <input name="TelFax" 

value="<%out.print(telefones.get(i).getNumero());%>" type="text" OnKeyPress="formatar(this, 

'####‐####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 

                                    <%} else {%> 

                                    (<input name="TelFaxDDD"  type="text" 

onKeyUp="javascript:Sonumero(this)" size="2" maxlength="2">) 

                                    <input name="TelFax"  type="text" OnKeyPress="formatar(this, '####‐

####')" onKeyUp="javascript:Sonumero(this)" size="12" maxlength="10"> 

                                    <%}%> 

                                </td> 

                            </tr> 

                            <% 

                            } catch (Exception e) { 

                                e.printStackTrace(); 

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

Benefrancis do Nascimento

SISTEMA WEB

196 

 

                            } 

                        } 

                    } 

                    %> 

                            <tr> 

                                <td colspan="3"><hr size="1"></td> 

                                <td></td> 

                            </tr> 

                            <% 

                    List<Endereco> enderecos = Endereco.consultar(p); 

 

                    for (ListIterator iter = enderecos.listIterator(); iter.hasNext();) { 

                        Endereco end = (Endereco) iter.next(); 

                    %> 

                            <tr> 

                                <td colspan="3" class="Txt"><strong>ENDERE&Ccedil;O</strong></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">LOGRADOURO</td> 

                                <td colspan="2" class="Txt"><input name="logradouro" 

value="<%out.print(end.getLogradouro());%>" type="text" size="50" maxlength="50"></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Nº</td> 

                                <td colspan="2" class="Txt"><input name="Numero" 

value="<%out.print(end.getNumero());%>" type="text" size="10" maxlength="10"></td> 

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

Benefrancis do Nascimento

SISTEMA WEB

197 

 

                            </tr> 

                            <tr> 

                                <td class="Txt">Complemento</td> 

                                <td colspan="2" class="Txt"><input name="Complemento" 

value="<%out.print(end.getComplemento());%>" type="text" size="30" maxlength="50"></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Bairro</td> 

                                <td colspan="2" class="Txt"><input name="Bairro" 

value="<%out.print(end.getBairro());%>"  type="text" size="30" maxlength="50"></td> 

                            </tr> 

                            <tr> 

                                <td class="Txt">Cidade</td> 

                                <td colspan="2" class="Txt"><input name="Cidade"  

value="<%out.print(end.getCidade());%>" type="text" size="30" maxlength="50"></td> 

                            </tr> 

 

                            <tr id="estados" > 

                                <td class="Txt">Estado</td> 

                                <td colspan="2" class="Txt"> 

                                    <select name="uf"> 

                                        <option value="AC">AC</option> 

                                        <option value="AL">AL</option> 

                                        <option value="AP">AP</option> 

                                        <option value="AM">AM</option> 

                                        <option value="BA">BA</option> 

                                        <option value="CE">CE</option> 

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

Benefrancis do Nascimento

SISTEMA WEB

198 

 

                                        <option value="DF">DF</option> 

                                        <option value="ES">ES</option> 

                                        <option value="GO">GO</option> 

                                        <option value="MA">MA</option> 

                                        <option value="MT">MT</option> 

                                        <option value="MS">MS</option> 

                                        <option value="MG">MG</option> 

                                        <option value="PA">PA</option> 

                                        <option value="PB">PB</option> 

                                        <option value="PR">PR</option> 

                                        <option value="PE">PE</option> 

                                        <option value="PI">PI</option> 

                                        <option value="RJ">RJ</option> 

                                        <option value="RN">RN</option> 

                                        <option value="RS">RS</option> 

                                        <option value="RO">RO</option> 

                                        <option value="RR">RR</option> 

                                        <option value="SC">SC</option> 

                                        <option value="SP">SP</option> 

                                        <option value="SE">SE</option> 

                                        <option value="TO">TO</option> 

                                        <option selected="true" 

value="<%out.print(end.getUf());%>"><%out.print(end.getUf());%></option> 

                                    </select></td> 

                            </tr> 

                            <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

199 

 

                                <td class="Txt">CEP</td> 

                                <td colspan="2" class="Txt"> 

                                    <input name="CEP" value="<%out.print(end.getCep());%>"  type="text" 

OnKeyPress="formatar(this, '#####‐###')" onKeyUp="javascript:Sonumero(this)" size="12" 

maxlength="9"> 

        + </td> 

                            </tr> 

                            <%}%> 

                        </table> 

                    </td> 

                </tr> 

                <tr> 

                    <td colspan="2">&nbsp;</td> 

                    <td></td> 

                </tr> 

                <tr> 

                    <td class="Txt" width="23%">&nbsp;</td> 

                    <td class="Txt" width="77%"> 

                        <input type="hidden" name="op" value="1" /> 

                        <input type="hidden" name="idPessoa" value="<%out.print(p.getIdPessoa());%>" 

/> 

                        <input type="button" name="Btn_Entrar" value="Alterar"  

onClick="Validar(document.Formulario);"    > 

                    </td> 

                    <td>&nbsp;</td> 

                </tr> 

                <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

200 

 

                    <td colspan="2"> 

                        <% 

                    } 

                } catch (Exception e) { 

                    out.print("<br>"); 

                    out.print("<center><font face='verdana' color='red'   size='2'>Erro ao 

cadastrar</font></center>"); 

                    out.print("<center><font face='verdana' color='red'   size='2'>" + e.getMessage() + 

"</font></center>"); 

                } 

                %> 

                         

                    </td> 

                </tr> 

                <tr> 

                    <td colspan="2"> 

                        <jsp:include page="../geral/rodape.jsp" /> 

                    </td> 

                </tr> 

            </table> 

        </form> 

    </body> 

</html> 

Figure 5 ‐ Código fonte da página editar_pessoa 

 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

201 

 

Layoutdapáginaeditar_pessoa.jsp 

Abaixo o layout da página editar_pessoa.jsp  

Figure 6 ‐ Layout da página editar_pessoa.jsp 

 

 

Excluir_pessoa.jspA 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. 

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

Benefrancis do Nascimento

SISTEMA WEB

202 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<%@ page import="java.util.List"%> 

<%@ page import="java.util.ArrayList"%> 

<%@ page import="java.util.ListIterator" %> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                    <% 

                int op = 0; 

                int idPessoa = 0; 

                Pessoa p = null; 

               try { 

                    if (!request.getParameter("op").isEmpty()) { 

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

Benefrancis do Nascimento

SISTEMA WEB

203 

 

                        op = Integer.parseInt(request.getParameter("op")); 

                    } 

                } catch (Exception ex) { 

                    ex.printStackTrace(); 

                } 

                try { 

                    if (!request.getParameter("idPessoa").isEmpty()) { 

                        idPessoa = Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 

                    } 

                } catch (Exception ex) { 

                    ex.printStackTrace(); 

                } 

                p = Pessoa.consultar(idPessoa); 

                try { 

                    if (op == 1 && idPessoa > 0) { //Op =1 : Deletar 

                        p.excluir(p); 

                        out.print("<br>"); 

                        out.print("<br>"); 

                        out.print("<br>"); 

                        out.print("<center><font face='verdana' color='blue'   size='2'>Registro excluído 

com sucesso</font></center>"); 

                        out.print("<br>"); 

                        out.print("<br>"); 

                        out.print("<br>"); 

                } else {%> 

                    <table border="0" width="100%"> 

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

Benefrancis do Nascimento

SISTEMA WEB

204 

 

                        <thead> 

                            <tr  class="TextoTit" align="center"> 

                                <th colspan="2" height="50">Esta operação excluirá 

<%out.print(p.getNome());%>, seus animais de estimação e serviços realizados do sistema. 

</th> 

                            </tr> 

                        </thead> 

                        <tbody> 

                            <tr class="TextoTit"> 

                                <td colspan="2"align="center" height="60">Confirma a exclusão?</td> 

                            </tr> 

                            <tr align="center" > 

                                <td width="50%" align="right" height="150"><form 

action="excluir_pessoa.jsp" method="post"  name="Formulario"> <input type="hidden" 

name="op" value="1"><input type="hidden" name="idPessoa" 

value="<%out.print(p.getIdPessoa());%>">&nbsp;<input type="submit"   name="btn_sim" 

value="SIM">&nbsp;</form></td> 

                                <td width="50%" align="left" height="150"><form 

action="../consultas/pessoa.jsp" method="post"  name="Formulario">&nbsp;<input 

type="submit" name="btn_sim" value="NÃO" > &nbsp;</form></td> 

                            </tr> 

                        </tbody> 

                    </table> 

                    <% 

                } 

            } catch (Exception e) { 

                out.print("<br>"); 

                out.print("<center><font face='verdana' color='red'   size='2'>Erro ao 

excluir</font></center>"); 

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

Benefrancis do Nascimento

SISTEMA WEB

205 

 

                out.print("<center><font face='verdana' color='red'   size='2'>" + e.getMessage() + 

"</font></center>"); 

            } 

            %> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

        </table> 

    </body> 

</html> 

Figure 7 ‐ código fonte da página excluir_pessoa.jsp 

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

Benefrancis do Nascimento

SISTEMA WEB

206 

 

Layoutdapáginaexcluir_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. 

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

Benefrancis do Nascimento

SISTEMA WEB

207 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<%@page import="java.util.List" %> 

<%@page import="java.util.ListIterator" %> 

<%@page import="java.util.ArrayList" %> 

<% 

//Lista de animais 

List<Animal> pList = new ArrayList<Animal>(); 

%> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

            <tr> 

                <td height="22" colspan="2" valign="top" 

class="Txt"><strong>ANIMAIS</strong></td> 

            </tr> 

            <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

208 

 

                <td colspan="2">&nbsp;</td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                </td> 

            </tr> 

            <tr> 

                <td colspan="2"><hr size="1"></td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                    <table border="0" width="100%"> 

                        <thead> 

                            <tr class="TopoTit"> 

                                <th>NOME</th> 

                                <th>NASCIMENTO</th> 

                                <th>TIPO</th> 

                                <th>RAÇA</th> 

                                <th>QTD SERVIÇOS</th> 

                                <th>AÇÕES</th> 

                            </tr> 

                        </thead> 

                        <tbody> 

                            <% 

                     pList = (List<Animal>) Animal.consultar(); 

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

Benefrancis do Nascimento

SISTEMA WEB

209 

 

                     for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 

                     Animal achei = (Animal) iter.next(); 

                    %> 

                            <tr class="Txt" > 

                                <td><%out.print(achei.getNome());%></td> 

                                <td><%out.print(achei.getDataNascimento().toLocaleString().substring(0, 

10));%></td> 

                                <td><%out.print(achei.getDescricao());%></td> 

                                <td><%out.print(achei.getRaca());%></td> 

                                <td align="center"> 

                                <% 

                        List<Servico> servicos = (List<Servico>)Servico.consultar(achei); 

                        out.print(servicos.size()); 

                       %> 

                                </td> 

                                <td class="Txt" align="center"> 

                                    <% 

                            int idPessoa = achei.getPessoa().getIdPessoa(); 

                          %> 

                                    <table border="0" align="center" cellpadding="2" cellspacing="2" 

width="100%"> 

                                        <tr align="center" valign="middle"> 

                                            <td> 

                                                <a 

href="../servicos/registrar.jsp?op=2&amp;idPessoa=<%out.print(idPessoa);%>&amp;idAnimal=

<%out.print(achei.getIdAnimal());%>"> 

                                                    <img src="../images/img_cesto.png" width="30" height="30" 

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

Benefrancis do Nascimento

SISTEMA WEB

210 

 

alt="Incluir serviço" title="Incluir serviço" border="0"/> 

                                                </a> 

                                            </td> 

                                            <td> 

                                                <a 

href="../consultas/detalhe_animal.jsp?idAnimal=<%out.print(achei.getIdAnimal());%>"> 

                                                    <img src="../images/img_lupa_transparente.png" width="30" 

height="30" alt="consultar" title="consultar" border="0"/> 

                                                </a> 

                                            </td> 

                                            <td> 

                                                <a 

href="../consultas/editar_animal.jsp?op=1&amp;idAnimal=<%out.print(achei.getIdAnimal());%

>"> 

                                                    <img src="../images/img_caderno_transparente.png" width="30" 

height="30" alt="editar" title="editar" border="0"/> 

                                                </a> 

                                            </td> 

                                            <td> 

                                                <a 

href="../consultas/excluir_animal.jsp?idAnimal=<%out.print(achei.getIdAnimal());%>"> 

 

                                                    <img src="../images/img_lixeira_transparente.png" width="30" 

height="30" alt="excluir" title="excluir" border="0"/> 

                                                </a> 

                                            </td> 

                                        </tr> 

                                    </table> 

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

Benefrancis do Nascimento

SISTEMA WEB

211 

 

                                </td> 

                            </tr> 

                            <%}%> 

                        </tbody> 

                    </table> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

        </table> 

    </body> 

</html> 

Figure 9 ‐ código fonte da página animal.jsp ‐ diretório consultas 

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

Benefrancis do Nascimento

SISTEMA WEB

212 

 

Layoutdapáginaanimal.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. 

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

Benefrancis do Nascimento

SISTEMA WEB

213 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<%@page import="java.util.List" %> 

<%@page import="java.util.ListIterator" %> 

<%@page import="java.util.ArrayList" %> 

<%@page import="java.util.Date" %> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <form action="animal.jsp" method="post" name="Formulario" > 

            <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

                <tr> 

                    <td colspan="2"> 

                        <jsp:include page="../geral/topo.jsp" /> 

                    </td> 

                </tr> 

                <tr> 

                    <td height="22" colspan="2" valign="top" class="Txt"><strong>DETALHAMENTO 

DO ANIMAL DE ESTIMAÇÃO</strong></td> 

                </tr> 

                <% 

            Animal animal; 

            int idAnimal = 0; 

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

Benefrancis do Nascimento

SISTEMA WEB

214 

 

            try { 

                try { 

                    idAnimal = Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 

                    animal = Animal.consultar(idAnimal); 

                } catch (Exception ex) { 

                   throw new RuntimeException("Erro ao construir o Objeto animal"); 

                } 

                %> 

                <tr> 

                    <td colspan="2">&nbsp;</td> 

                </tr> 

                <tr> 

                    <td colspan="2"> 

                    </td> 

                </tr> 

                <% 

            Pessoa pessoa = Pessoa.consultar(animal.getPessoa().getIdPessoa()); 

            %> 

                <tr> 

                    <td  width="20%" class="TopoTit">Dono do animal</td> 

                    <td  width="80%" class="TextoTit"> 

                        <% out.print(pessoa.getNome());%> 

                    </td> 

                </tr> 

                <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

215 

 

                    <td  height="104" colspan="2" valign="top"> 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" 

class="Txt"><strong>ANIMAL</strong></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr> 

                                            <td width="162" class="Txt">Tipo</td> 

                                            <td width="436" class="Txt"> 

                                                <%out.print(animal.getDescricao());%> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td width="162" height="27" valign="top" class="Txt">Nome</td> 

                                            <td width="436" valign="top" class="Txt"> 

                                                <%out.print(animal.getNome());%> 

                                            </td> 

                                        </tr> 

                                        <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

216 

 

                                            <td height="27" valign="top" class="Txt">Raça</td> 

                                            <td valign="top" class="Txt"> 

                                                <%out.print(animal.getRaca());%> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Data de Nascimento</td> 

                                            <td valign="top" class="Txt"> 

                                                

<%out.print(animal.getDataNascimento().toLocaleString().substring(0, 10));%> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Sexo</td> 

                                            <td valign="top" class="Txt"> 

                                                <%out.print(animal.getSexo());%> 

                                            <td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Observacao</td> 

                                            <td valign="top" class="Txt"> 

                                                <%out.print(animal.getObservacao());%> 

                                            <td> 

                                        </tr> 

                                        <tr> 

                                            <td colspan="2">&nbsp;</td> 

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

Benefrancis do Nascimento

SISTEMA WEB

217 

 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                        </table> 

                        <%         } catch (Exception ex) { 

                                        ex.printStackTrace(); 

                                        out.print("<br>"); 

                                        out.print("<br><center><font face='verdana' color='red'   size='2'><br 

/>Erro ao consultar o animal</font></center><br>"); 

                                        out.print(ex.getMessage()); 

                                        out.print("<br>"); 

                                        out.print("<br>"); 

                                    }                        %> 

                        <jsp:include page="../geral/rodape.jsp" /> 

                    </td> 

                </tr> 

            </table> 

        </form> 

    </body> 

</html> 

Figure 11 ‐ O código da página detalhe_animal.jsp 

  

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

Benefrancis do Nascimento

SISTEMA WEB

218 

 

Layoutdapáginadetalhe_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. 

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

Benefrancis do Nascimento

SISTEMA WEB

219 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<%@page import="java.util.List" %> 

<%@page import="java.util.ListIterator" %> 

<%@page import="java.util.ArrayList" %> 

<%@page import="java.util.Date" %> 

 

<% 

            //Iniciando variaveis 

            int op = 0; 

            int idPessoa = 0; 

            int idAnimal = 0; 

 

            //verificando a variável op enviada pelo formulário: 

            try { 

                op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 

            } catch (Exception ex) { 

                ex.printStackTrace(); 

                throw new RuntimeException("Não foi informada a operação desejada!"); 

            } 

 

 

            try { 

                idAnimal = Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 

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

Benefrancis do Nascimento

SISTEMA WEB

220 

 

            } catch (Exception ex) { 

                ex.printStackTrace(); 

                throw new RuntimeException("É necessário informar o id do animal!"); 

            } 

            //Listando pessoas 

            List<Pessoa> pList = new ArrayList<Pessoa>(); 

            Animal animal; 

%> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <form action="editar_animal.jsp" method="post" name="Formulario" > 

            <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

                <tr> 

                    <td colspan="2"> 

                        <jsp:include page="../geral/topo.jsp" /> 

                    </td> 

                </tr> 

                <tr> 

                    <td height="22" colspan="2" valign="top" class="Txt"><strong>ATUALIZAÇÃO DE 

ANIMAL DE ESTIMAÇÃO</strong></td> 

                </tr> 

 

                <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

221 

 

                    <td colspan="2"> 

                     <% 

                try { 

                    animal = Animal.consultar(idAnimal); 

                } catch (Exception ex) { 

                    ex.printStackTrace(); 

                    throw new RuntimeException("Animal não encontrado"); 

                } 

                %> 

                    </td> 

                </tr> 

                <tr> 

                    <td ></td> 

                </tr> 

                <%if (op != 2) {%> 

                <tr> 

                    <td colspan="2"> 

 

                        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

                            <tr> 

                                <td width="23%" class="Txt">Dono do animal</td> 

                                <td width="77%" class="Txt"> 

                                    <select name="idPessoa"> 

                                        <option value="0">  Selecione  </option> 

                                        <% 

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

Benefrancis do Nascimento

SISTEMA WEB

222 

 

                                pList = Pessoa.consultar(); 

                                for (ListIterator iter = pList.listIterator(); iter.hasNext();) { 

                                    Pessoa achei = (Pessoa) iter.next(); 

                             %> 

                                        <option value="<% out.print(achei.getIdPessoa());%>"  <%if 

(animal.getPessoa().getIdPessoa() == achei.getIdPessoa()) {%> selected="true" <%}%>    ><% 

out.print(achei.getNome());%></option> 

 

                                        <% 

                                 } 

                             %> 

                                    </select> 

                                </td> 

 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                            </tr> 

 

                        </table> 

 

                    </td> 

                </tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

223 

 

                <%}%> 

                <% if (op == 1) {%> 

                <tr> 

                    <td colspan="2"> 

 

                        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" 

class="Txt"><strong>ANIMAL</strong></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr> 

                                            <td width="162" class="Txt">Tipo</td> 

                                            <td width="436" class="Txt"> 

                                                <select name="tipoAnimal" id="tipoAnimal"> 

                                                    <option value="1" <%if (animal.getTipo()==1) {%> 

selected="true" <%}%>  >Cachorro</option> 

                                                    <option value="2" <%if (animal.getTipo()==2) {%> 

selected="true" <%}%>   >Gato</option> 

                                                </select> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td width="162" height="27" valign="top" class="Txt">Nome</td> 

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

Benefrancis do Nascimento

SISTEMA WEB

224 

 

                                            <td width="436" valign="top" class="Txt"> 

                                                <input  value="<%out.print(animal.getNome());%>" name="nome" 

type="text" id="nome" size="50" maxlength="100"> 

                                                <span class="style1">*</span></td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Raça</td> 

                                            <td valign="top" class="Txt"> 

                                                <input value="<%out.print(animal.getRaca());%>" name="raca" 

type="text" id="raca"  size="24"  maxLength="50" > 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Data de Nascimento</td> 

                                            <td valign="top" class="Txt"> 

                                                <input 

value="<%out.print(animal.getDataNascimento().toLocaleString().substring(0, 10));%>" 

name="dataNascimento" type="text"  size="11"  maxLength="10" 

OnKeyPress="formatar(this, '##/##/####')" onKeyUp="javascript:Sonumero(this)"> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Sexo</td> 

                                            <td valign="top" class="Txt"> 

                                                <select name="sexo" id="sexo"> 

                                                    <option value="M"  <%if (animal.getSexo() == 'M') {%> 

selected="true" <%}%> >Macho</option> 

                                                    <option value="F"  <%if (animal.getSexo() == 'F') {%> 

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

Benefrancis do Nascimento

SISTEMA WEB

225 

 

selected="true" <%}%> >Femea</option> 

                                                </select> 

                                            <td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Observacao</td> 

                                            <td valign="top" class="Txt"> 

                                                <textarea name="observacao" rows="4" cols="50"> 

                                                 <% 

                                    if (animal.getObservacao() != null) { 

                                         out.print(animal.getObservacao()); 

                                     } 

                                   %> 

                                                </textarea> 

                                            <td> 

                                        </tr> 

                                        <tr> 

                                            <td colspan="2">&nbsp;</td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

226 

 

                            <tr> 

                                <td class="Txt" width="23%">&nbsp;</td> 

                                <td class="Txt" width="77%"> 

                                    <input type="hidden" name="op" value="2" /> 

                                    <input type="hidden" name="idAnimal" 

value="<%out.print(animal.getIdAnimal());%>" /> 

                                    <input type="button" name="Btn_Entrar" value="Alterar"  

onClick="ValidarAnimal(document.Formulario);"    > 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"> 

                                    <jsp:include page="../geral/rodape.jsp" /> 

 

                                </td> 

                            </tr> 

                        </table> 

 

                    </td> 

                </tr> 

                <%} else if (op == 2) {%> 

                <tr> 

                    <td colspan="2"> 

                        <% 

                             //Declarando variáveis 

                             //Pessoa 

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

Benefrancis do Nascimento

SISTEMA WEB

227 

 

                             Pessoa pessoa = null; 

 

                             //Animal 

                             int tipoAnimal = 0; 

                             String nome = null; 

                             String raca = null; 

                             String dataNascimento = null; 

                             String sexo = null; 

                             String observacao = null; 

 

                             //Tipo, nome, data de nascimento e sexo são obrigatórios 

                             try { 

                                 try { 

                                     idPessoa = 

Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa"))); 

                                     pessoa = Pessoa.consultar(idPessoa); 

                                 } catch (Exception ex) { 

                                     ex.printStackTrace(); 

                                     throw new RuntimeException("Erro ao construir o Objeto pessoa"); 

                                 } 

                                 try { 

                                     tipoAnimal = 

Integer.parseInt(Util.SoNumero(request.getParameter("tipoAnimal"))); 

                                     if (tipoAnimal == 0) { 

                                         throw new RuntimeException("Selecione o Tipo do animal"); 

                                        } else { 

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

Benefrancis do Nascimento

SISTEMA WEB

228 

 

                                         animal.setTipo(tipoAnimal); 

                                     } 

                                 } catch (Exception ex) { 

                                     ex.printStackTrace(); 

                                     throw new RuntimeException("Erro ao pegar o tipo do animal"); 

                                 } 

                                 try { 

                                     nome = request.getParameter("nome"); 

                                     if (nome == null || nome == "" || nome == "0") { 

                                         throw new RuntimeException("Informe o nome do animal"); 

                                     } else { 

                                         animal.setNome(nome); 

                                     } 

                                 } catch (Exception ex) { 

                                     ex.printStackTrace(); 

                                     throw new RuntimeException("Erro ao capturar o nome do animal"); 

                                 } 

                                 try { 

                                     raca = request.getParameter("raca"); 

                                     animal.setRaca(raca); 

                                 } catch (Exception ex) { 

                                     ex.printStackTrace(); 

                                     throw new RuntimeException("Erro ao capturar a raça do animal"); 

 

                                 } 

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

Benefrancis do Nascimento

SISTEMA WEB

229 

 

 

                                 try { 

                                     dataNascimento = request.getParameter("dataNascimento"); 

 

                                     //validar data e construir um objeto Date() caso a data seja válida 

                                     if (dataNascimento == null || dataNascimento == "" || dataNascimento 

== "0") { 

                                         throw new RuntimeException("Informe a data de nascimento do 

animal"); 

                                     } else if (Util.validarData(dataNascimento) != true) { 

                                         throw new RuntimeException("A data de nascimento do animal é 

inválida"); 

                                     } else { 

                                         animal.setDataNascimento(new Date(dataNascimento)); 

                                     } 

                                 } catch (Exception ex) { 

                                     ex.printStackTrace(); 

                                 } 

                                 try { 

                                     sexo = request.getParameter("sexo"); 

                                     if (sexo == null || sexo == "" || sexo == "0") { 

                                         throw new RuntimeException("Informe o sexo do animal"); 

                                     } else { 

                                         animal.setSexo(sexo.charAt(0)); 

                                     } 

                                 } catch (Exception ex) { 

                                     ex.printStackTrace(); 

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

Benefrancis do Nascimento

SISTEMA WEB

230 

 

                                     throw new RuntimeException("Informe o sexo do animal"); 

                                 } 

                                 try { 

                                     observacao = request.getParameter("observacao"); 

                                     if (observacao != "") { 

                                         animal.setObservacao(observacao.trim()); 

                                     } 

                                 } catch (Exception ex) { 

                                     ex.printStackTrace(); 

                                     throw new RuntimeException("Erro ao pegar o parâmetro Observação"); 

                                 } 

                                 animal.setIdAnimal(idAnimal); 

                                 animal.setPessoa(pessoa); 

                                 Animal.alterar(animal); 

                                 out.print("<br><center><font face='verdana' color='blue'   size='2'><br 

/>Animal atualizado com sucesso em nosso banco de dados</font></center><br>"); 

                             } catch (Exception ex) { 

                                 ex.printStackTrace(); 

                                 out.print("<br>"); 

                                 out.print("<br>"); 

                                 out.print("<br>"); 

                                 out.print("<br><center><font face='verdana' color='red'   size='2'><br 

/>Erro ao atualizar dados do animal</font></center><br>"); 

                                 out.print("<br><center><font face='verdana' color='red'   size='2'><br />" + 

ex.getMessage() + "</font></center><br>"); 

                                 out.print("<br>"); 

                                 out.print("<br>"); 

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

Benefrancis do Nascimento

SISTEMA WEB

231 

 

                             } 

                        %> 

                        <jsp:include page="../geral/rodape.jsp" /> 

                    </td> 

                <tr> 

                    <% }//fim do if de op%> 

            </table> 

        </form> 

    </body> 

</html> 

Figure 13 – código fonte da página editar_animal.jsp 

 

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

Benefrancis do Nascimento

SISTEMA WEB

232 

 

Layoutdapáginaeditar_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. 

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

Benefrancis do Nascimento

SISTEMA WEB

233 

 

<%@ page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@ page import="br.com.benefrancis.controle.*" %> 

<%@ page import="br.com.benefrancis.util.Util" %> 

<%@ page import="java.util.List"%> 

<%@ page import="java.util.ArrayList"%> 

<%@ page import="java.util.ListIterator" %> 

 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

 

            <tr> 

                <td colspan="2"> 

                    <% 

                                int op = 0; 

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

Benefrancis do Nascimento

SISTEMA WEB

234 

 

                                int idAnimal = 0; 

                                Animal a = null; 

                               

                                try { 

                                    if (!request.getParameter("op").isEmpty()) { 

                                        op = Integer.parseInt(request.getParameter("op")); 

                                    } 

                                } catch (Exception ex) { 

                                    ex.printStackTrace(); 

                                } 

                                try { 

                                    if (!request.getParameter("idAnimal").isEmpty()) { 

                                        idAnimal = 

Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal"))); 

                                    } 

                                } catch (Exception ex) { 

                                    ex.printStackTrace(); 

                                } 

                                a = Animal.consultar(idAnimal); 

                                try { 

                                    if (op == 1 && idAnimal > 0) { //Op =1 : Deletar 

 

                                        Animal.excluir(a); 

 

                                        out.print("<br>"); 

                                        out.print("<br>"); 

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

Benefrancis do Nascimento

SISTEMA WEB

235 

 

                                        out.print("<br>"); 

                                        out.print("<center><font face='verdana' color='blue'   size='2'>Registro 

excluído com sucesso</font></center>"); 

                                        out.print("<br>"); 

                                        out.print("<br>"); 

                                        out.print("<br>"); 

                    %> 

                    <%} else {%> 

                    <table border="0" width="100%"> 

                        <thead> 

                            <tr  class="TextoTit" align="center"> 

                                <th colspan="2" height="50">Esta operação excluirá o 

<%out.print(a.getDescricao());%> de&nbsp;<font 

color="blue"><%out.print(a.getPessoa().getNome());%> </font> chamado:<font color="blue"> 

<%out.print(a.getNome());%> </font> </th> 

                            </tr> 

                        </thead> 

                        <tbody> 

                            <tr class="TextoTit"> 

                                <td colspan="2"align="center" height="60">Confirma a exclusão?</td> 

                            </tr> 

                            <tr align="center" > 

                                <td width="50%" align="right" height="150"><form 

action="excluir_animal.jsp" method="post"  name="Formulario"> <input type="hidden" 

name="op" value="1"><input type="hidden" name="idAnimal" 

value="<%out.print(a.getIdAnimal());%>">&nbsp;<input type="submit"   name="btn_sim" 

value="SIM">&nbsp;</form></td> 

                                <td width="50%" align="left" height="150"><form 

action="../consultas/animal.jsp" method="post"  name="Formulario">&nbsp;<input 

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

Benefrancis do Nascimento

SISTEMA WEB

236 

 

type="submit" name="btn_sim" value="NÃO" > &nbsp;</form></td> 

                            </tr> 

                        </tbody> 

                    </table> 

                    <% 

                                    } 

                                } catch (Exception e) { 

                                    out.print("<br>"); 

                                    out.print("<center><font face='verdana' color='red'   size='2'>Erro ao 

excluir </font></center>"); 

                                    out.print("<center><font face='verdana' color='red'   size='2'>" + 

e.getMessage() + "<br>" + e.getCause() + "</font></center>"); 

                                } 

                    %> 

                   </td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                     <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

        </table> 

    </body> 

</html> 

Figure 15 ‐ código fonte da página excluir_animal.jsp 

 

 

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

Benefrancis do Nascimento

SISTEMA WEB

237 

 

Layoutdapáginaexcluir_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. 

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

Benefrancis do Nascimento

SISTEMA WEB

238 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@ page import="br.com.benefrancis.controle.*" %> 

<%@ page import="br.com.benefrancis.util.Util" %> 

<%@page import="java.util.List" %> 

<%@page import="java.util.ListIterator" %> 

<%@page import="java.util.ArrayList" %> 

<% 

List<Servico> sList = new ArrayList<Servico>(); 

String data = ""; 

%> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

            <tr> 

                <td height="22" colspan="2" valign="top" class="Txt"><strong>SERVIÇOS 

REALIZADOS</strong></td> 

            </tr> 

            <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

239 

 

                <td colspan="2">&nbsp;</td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                </td> 

            </tr> 

            <tr> 

                <td colspan="2"><hr size="1"></td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                    <table border="0" width="100%"> 

                        <thead> 

                            <tr class="TopoTit"> 

                                <th>DATA</th> 

                                <th>TIPO</th> 

                                <th>NOME</th> 

                                <th>ANIMAL</th> 

                                <th>VALOR</th> 

                                <th>AÇÕES</th> 

                            </tr> 

                        </thead> 

                        <tbody><% 

                    try { 

                        sList = (List<Servico>)Servico.consultar(); 

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

Benefrancis do Nascimento

SISTEMA WEB

240 

 

                        for (ListIterator iter = sList.listIterator(); iter.hasNext();) { 

                            Servico achei = (Servico) iter.next(); 

                                data = achei.getData().toLocaleString().substring(0, 10); 

                             %> 

                            <tr class="Txt" > 

                                <td><%out.print(data);%></td> 

                                <td><%out.print(achei.getNome());%></td> 

                                <td><%out.print(achei.getDescricao());%></td> 

                                <td><% out.print(achei.getAnimal().getNome());%></td> 

                                <td align="right"><%out.print(achei.getValor());%></td> 

                                <td class="Txt" align="center"> 

                                    <table border="0" align="center" cellpadding="2" cellspacing="2" 

width="100%"> 

                                        <tr align="center" valign="middle"> 

                                            <td><a 

href="../consultas/detalhe_servico.jsp?idServico=<%out.print(achei.getIdServico());%>"> 

                                                    <img src="../images/img_lupa_transparente.png" width="30" 

height="30" alt="consultar" title="consultar" border="0"/> 

                                                </a> 

                                            </td> 

                                            <td><a 

href="../consultas/editar_servico.jsp?idServico=<%out.print(achei.getIdServico());%>"> 

                                                    <img src="../images/img_caderno_transparente.png" 

width="30" height="30" alt="editar" title="editar" border="0"/> 

                                                </a> 

                                            </td> 

                                            <td> 

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

Benefrancis do Nascimento

SISTEMA WEB

241 

 

<a href="../consultas/excluir_servico.jsp?idServico=<%out.print(achei.getIdServico());%>"> 

                                                    <img src="../images/img_lixeira_transparente.png" width="30" 

height="30" alt="excluir" title="excluir" border="0"/> 

                                                </a> 

                                            </td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <%} 

                    } catch (Exception e) { 

                        out.print("<br>"); 

                        out.print("<center><font face='verdana' color='red'   size='2'>Erro ao listar 

serviços </font></center>"); 

                        out.print("<center><font face='verdana' color='red'   size='2'>" + e.getMessage() 

+ "</font></center>"); 

                    } 

                   %> 

                        </tbody> 

                    </table> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

        </table> 

    </body> 

</html> 

Figure 17 ‐ O código fonte da página servico.jsp 

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

Benefrancis do Nascimento

SISTEMA WEB

242 

 

 

LayoutdapáginaServiç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. 

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

Benefrancis do Nascimento

SISTEMA WEB

243 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="java.util.*" %> 

<%@page import="br.com.benefrancis.controle.*" %> 

<%@page import="br.com.benefrancis.util.Util" %> 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

            <tr> 

                <td height="22" colspan="2" valign="top" class="Txt"><strong>DETALHAMENTO DE 

SERVIÇO REALIZADO</strong></td> 

            </tr> 

            <tr> 

                <td colspan="2">&nbsp;</td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                </td> 

            </tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

244 

 

            <tr> 

                <td  height="104" colspan="2" valign="top" > 

                    <form action="registrar.jsp" method="post" name="Formulario" > 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                            <!‐‐DWLayoutTable‐‐> 

 

                            <tr> 

                                <td colspan="2"> 

 

                                    <% 

                            int idServico = 

Integer.parseInt(Util.SoNumero(request.getParameter("idServico"))); 

                            String data = ""; 

                            try { 

                                Servico servico = Servico.consultar(idServico); 

 

                                    data = servico.getData().toLocaleString().substring(0, 10); 

                         %> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr > 

                                            <td width="20%" class="TopoTit">CLIENTE: </td> 

                                            <td class="TextoTit"><% 

out.print(servico.getAnimal().getPessoa().getNome());%></td> 

                                        </tr> 

                                        <tr> 

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

Benefrancis do Nascimento

SISTEMA WEB

245 

 

                                            <td width="20%" class="TopoTit">ANIMAL DE ESTIMAÇÃO: </td> 

                                            <td class="TextoTit" ><% 

out.print(servico.getAnimal().getNome());%></td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" class="Txt"><strong>SERVIÇO 

EXECUTADO</strong></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"> 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr> 

                                            <td width="162" class="Txt">Serviço</td> 

                                            <td width="436" class="Txt"> 

                                                <%  out.print(servico.getNome());%> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td width="162" height="27" valign="top" class="Txt">Nome / 

Descrição </td> 

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

Benefrancis do Nascimento

SISTEMA WEB

246 

 

                                            <td width="436" valign="top" class="Txt"> 

                                                <%  out.print(servico.getNome());%> 

                                            </td> 

                                        </tr> 

 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Valor R$ </td> 

                                            <td valign="top" class="Txt"> 

                                                <%  out.print(servico.getValor());%> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Data de execução</td> 

                                            <td valign="top" class="Txt"> 

                                                <%  out.print(data);%> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Observacao</td> 

                                            <td valign="top" class="Txt"> 

                                                <%  out.print(servico.getObservacao());%> 

                                            <td> 

                                        </tr> 

                                        <tr> 

                                            <td colspan="2">&nbsp;</td> 

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

Benefrancis do Nascimento

SISTEMA WEB

247 

 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                        </table> 

                    </form> 

                </td> 

            </tr> 

            <tr> 

                <td class="Txt">&nbsp;</td> 

                <td class="Txt"> 

                </td> 

            </tr> 

 

 

            <tr> 

                <td colspan="2"> 

                    <%          } catch (Exception ex) { 

                                    ex.printStackTrace(); 

                                    out.print("<br>"); 

                                    out.print("<br>"); 

                                    out.print("<br>"); 

                                    out.print("<br><center><font face='verdana' color='red'   size='2'><br 

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

Benefrancis do Nascimento

SISTEMA WEB

248 

 

/>Erro ao cadastrar o serviço executado</font></center><br>"); 

                                    out.print("<br><center><font face='verdana' color='red'   size='2'><br />" 

+ ex.getMessage() + "</font></center><br>"); 

                                    out.print("<br>"); 

                                    out.print("<br>"); 

                                } 

                    %> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

        </table> 

    </body> 

</html> 

Figure 19 ‐ Código fonte da página detalhe_servico.jsp 

Layoutdapáginadetalhe_servico.jsp 

Abaixo o layout da página detalhe_servico.jsp. 

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

Benefrancis do Nascimento

SISTEMA WEB

249 

 

Figure 20 ‐ Layout da página detalhe_servico.jsp 

Editar_servico.jsp 

Codificaremos agora a página editar_servico.jsp. 

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

Benefrancis do Nascimento

SISTEMA WEB

250 

 

<%@page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@page import="java.util.*" %> 

<%@ page import="br.com.benefrancis.controle.*" %> 

<%@ page import="br.com.benefrancis.util.Util" %> 

 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

            <tr> 

                <td height="22" colspan="2" valign="top" class="Txt"><strong>DETALHAMENTO DE 

SERVIÇO REALIZADO</strong></td> 

            </tr> 

            <tr> 

                <td colspan="2">&nbsp;</td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                </td> 

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

Benefrancis do Nascimento

SISTEMA WEB

251 

 

            </tr> 

            <tr> 

                <td  height="104" colspan="2" valign="top" > 

                    <form action="editar_servico.jsp" method="post" name="Formulario" > 

                        <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                            <!‐‐DWLayoutTable‐‐> 

                            <tr> 

                                <td colspan="2"> 

                                    <% 

                            int op = 0; 

                            try { 

                                op = Integer.parseInt(Util.SoNumero(request.getParameter("op"))); 

 

                            } catch (Exception e) { 

                                e.printStackTrace(); 

                            } 

 

                            int idServico = 

Integer.parseInt(Util.SoNumero(request.getParameter("idServico"))); 

                            String data = ""; 

 

                            Servico servico = Servico.consultar(idServico); 

                            data = servico.getData().toLocaleString().substring(0, 10); 

                            

                            try { 

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

Benefrancis do Nascimento

SISTEMA WEB

252 

 

                                if (op == 0) { 

                           %> 

 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr > 

                                            <td width="20%" class="TopoTit">CLIENTE: </td> 

                                            <td class="TextoTit"><% 

out.print(servico.getAnimal().getPessoa().getNome());%></td> 

                                        </tr> 

                                        <tr> 

                                            <td width="20%" class="TopoTit">ANIMAL DE ESTIMAÇÃO: </td> 

                                            <td class="TextoTit" ><% 

out.print(servico.getAnimal().getNome());%></td> 

                                        </tr> 

                                    </table> 

                                </td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"><hr size="1"></td> 

                            </tr> 

                            <tr> 

                                <td height="22" colspan="2" valign="top" class="Txt"><strong>SERVIÇO 

EXECUTADO</strong></td> 

                            </tr> 

                            <tr> 

                                <td colspan="2"> 

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

Benefrancis do Nascimento

SISTEMA WEB

253 

 

                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" 

align="center"> 

                                        <tr> 

                                            <td width="162" class="Txt">Serviço</td> 

                                            <td width="436" class="Txt"> 

                                                <select name="servico" id="servico"> 

                                                    <option value="Consulta"   <%if 

(servico.getNome().equals("Consulta")) {%> selected="true" <%}%>  >Consulta 

Veterinária</option> 

                                                    <option value="Banho" <%if 

(servico.getNome().equals("Banho")) {%> selected="true" <%}%> >Banho</option> 

                                                    <option value="Tosa" <%if (servico.getNome().equals("Tosa")) 

{%> selected="true" <%}%> >Tosa</option> 

                                                    <option value="Vacina" <%if 

(servico.getNome().equals("Vacina")) {%> selected="true" <%}%> >Vacina</option> 

                                                </select> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td width="162" height="27" valign="top" class="Txt">Nome / 

Descrição </td> 

                                            <td width="436" valign="top" class="Txt"> 

                                                <input name="nome" value="<%  

out.print(servico.getNome());%>"type="text" id="nome" size="50" maxlength="100"> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Valor R$ </td> 

                                            <td valign="top" class="Txt"> 

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

Benefrancis do Nascimento

SISTEMA WEB

254 

 

                                                <input name="valor" value="<%  out.print(servico.getValor());%>" 

type="text"  size="11"  maxLength="10" onKeyUp="javascript:Sonumero(this)"> 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Data de execução</td> 

                                            <td valign="top" class="Txt"> 

                                                <input type="text" value="<%  out.print(data);%>" name="data" > 

                                            </td> 

                                        </tr> 

                                        <tr> 

                                            <td height="27" valign="top" class="Txt">Observacao</td> 

                                            <td valign="top" class="Txt"> 

 

                                                <textarea name="observacao" rows="4" cols="50"><% 

                                    if (servico.getObservacao() != null && servico.getObservacao() != "" && 

servico.getObservacao() != "null") { 

                                        out.print(servico.getObservacao().trim()); 

                                    }%></textarea> 

                                         <td> 

                                        </tr> 

                                        <tr> 

                                            <td colspan="2">&nbsp;</td> 

                                        </tr> 

                                    </table> 

                                </td> 

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

Benefrancis do Nascimento

SISTEMA WEB

255 

 

                            </tr> 

                            <tr> 

                                <td colspan="2">&nbsp;</td> 

                            </tr> 

                            <tr> 

                                <td class="Txt" width="23%">&nbsp;</td> 

                                <td class="Txt" width="77%"> 

                                    <input type="hidden" name="op" value="3" /> 

                                    <input type="hidden" name="idAnimal" value="<% 

out.print(servico.getAnimal().getIdAnimal());%>" /> 

                                    <input type="hidden" name="idServico" value="<% 

out.print(servico.getIdServico());%>" /> 

                                    <input type="button" name="Btn_Entrar" value="Alterar"  

onClick="ValidarRegistro(document.Formulario);"    > 

                                </td> 

                            </tr> 

                        </table> 

                    </form> 

                </td> 

            </tr> 

            <tr> 

                <td class="Txt">&nbsp;</td> 

                <td class="Txt"> 

<% 

} else if (op == 3) { 

String servicoEscolhido = ""; 

String nome = ""; 

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

Benefrancis do Nascimento

SISTEMA WEB

256 

 

int periodicidade = 0; 

String novaData = ""; 

 

//Criando um objeto serviço 

servicoEscolhido = request.getParameter("servico"); 

novaData = request.getParameter("data"); 

 

servico = Servico.consultar(servico.getIdServico()); 

if (Util.validarData(novaData)) { 

servico.setData(new Date(novaData)); 

try { 

nome = request.getParameter("nome"); 

if (nome == null || nome == "" || nome == "0") { 

throw new RuntimeException("Informe o nome ou descrição do serviço efetuado"); 

} else { 

servico.setNome(nome); 

} catch (Exception ex) { 

ex.printStackTrace(); 

throw new RuntimeException("Erro ao pegar o nome do serviço efetuado"); 

double valor = 0; 

try { 

valor = Double.parseDouble(request.getParameter("valor")); 

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

Benefrancis do Nascimento

SISTEMA WEB

257 

 

servico.setValor(valor); 

} catch (Exception ex) { 

ex.printStackTrace(); 

throw new RuntimeException("Informe corretamente o valor do serviço executado"); 

 

String observacao = null; 

try { 

observacao = request.getParameter("observacao"); 

servico.setObservacao(observacao); 

} catch (Exception ex) { 

ex.printStackTrace(); 

throw new RuntimeException("Erro ao pegar o nome do serviço efetuado"); 

 

Servico.alterar(servico); 

out.print("<br>"); 

out.print("<br>"); 

out.print("<br>"); 

out.print("<br><center><font face='verdana' color='blue'   size='2'><br />Serviço atualizado 

com sucesso!</font></center><br>"); 

out.print("<br>"); 

out.print("<br>"); 

} else { 

throw new RuntimeException("Operação inválida"); 

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

Benefrancis do Nascimento

SISTEMA WEB

258 

 

%> 

                </td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                    <%          } catch (Exception ex) { 

                                    ex.printStackTrace(); 

                                    out.print("<br>"); 

                                    out.print("<br>"); 

                                    out.print("<br>"); 

                                    out.print("<br><center><font face='verdana' color='red'   size='2'><br 

/>Erro ao cadastrar o serviço executado</font></center><br>"); 

                                    out.print("<br><center><font face='verdana' color='red'   size='2'><br />" 

+ ex.getMessage() + "</font></center><br>"); 

                                    out.print("<br>"); 

                                    out.print("<br>"); 

                                } 

                    %> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

        </table> 

    </body> 

</html> 

Figure 19 ‐ Código fonte da página editar_servico.jsp 

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

Benefrancis do Nascimento

SISTEMA WEB

259 

 

Layoutdapáginaeditar_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 

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

Benefrancis do Nascimento

SISTEMA WEB

260 

 

<%@ page contentType="text/html" pageEncoding="UTF‐8"%> 

<%@ page import="br.com.benefrancis.controle.*" %> 

<%@ page import="br.com.benefrancis.util.Util" %> 

<%@ page import="java.util.List"%> 

<%@ page import="java.util.ArrayList"%> 

<%@ page import="java.util.ListIterator" %> 

 

<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01 Transitional//EN" 

    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

    <jsp:include page="../geral/head.jsp" /> 

    <body> 

        <table width="750" border="0" cellpadding="0" cellspacing="0" align="center"> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/topo.jsp" /> 

                </td> 

            </tr> 

 

            <tr> 

                <td colspan="2"> 

                    <% 

            int op = 0; 

            int idServico = 0; 

            Servico s = null; 

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

Benefrancis do Nascimento

SISTEMA WEB

261 

 

            try { 

                if (!request.getParameter("op").isEmpty()) { 

                    op = Integer.parseInt(request.getParameter("op")); 

                } 

            } catch (Exception ex) { 

                ex.printStackTrace(); 

            } 

            try { 

                if (!request.getParameter("idServico").isEmpty()) { 

                    idServico = Integer.parseInt(Util.SoNumero(request.getParameter("idServico"))); 

                } 

            } catch (Exception ex) { 

                ex.printStackTrace(); 

            } 

            s = Servico.consultar(idServico); 

            try { 

                if (op == 1 && idServico > 0) { //Op =1 : Deletar 

                    Servico.excluir(s); 

                    out.print("<br>"); 

                    out.print("<br>"); 

                    out.print("<br>"); 

                    out.print("<center><font face='verdana' color='blue'   size='2'>Registro excluído 

com sucesso</font></center>"); 

                    out.print("<br>"); 

                    out.print("<br>"); 

                    out.print("<br>"); 

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

Benefrancis do Nascimento

SISTEMA WEB

262 

 

            } else {%> 

 

                    <table border="0" width="100%"> 

                        <thead> 

                            <tr  class="TextoTit" align="center"> 

                                <th colspan="2" height="50">Esta operação excluirá o serviço referente <% 

out.print(s.getNome() +" ‐ "+s.getDescricao() );%> em&nbsp;<font 

color="blue"><%out.print(s.getAnimal().getNome());%> </font> que pertence a <font 

color="blue"> <%out.print(s.getAnimal().getPessoa().getNome());%></font> </th> 

                            </tr> 

                        </thead> 

                        <tbody> 

                            <tr class="TextoTit"> 

                                <td colspan="2"align="center" height="60">Confirma a exclusão?</td> 

                            </tr> 

                            <tr align="center" > 

                                <td width="50%" align="right" height="150"><form 

action="excluir_servico.jsp" method="post"  name="Formulario"> <input type="hidden" 

name="op" value="1"><input type="hidden" name="idServico" 

value="<%out.print(s.getIdServico());%>">&nbsp;<input type="submit"   name="btn_sim" 

value="SIM">&nbsp;</form></td> 

                                <td width="50%" align="left" height="150"><form 

action="../consultas/servico.jsp" method="post"  name="Formulario">&nbsp;<input 

type="submit" name="btn_sim" value="NÃO" > &nbsp;</form></td> 

                            </tr> 

                        </tbody> 

                    </table> 

                    <% 

                } 

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

Benefrancis do Nascimento

SISTEMA WEB

263 

 

            } catch (Exception e) { 

                out.print("<br>"); 

                out.print("<center><font face='verdana' color='red'   size='2'>Erro ao excluir 

</font></center>"); 

                out.print("<center><font face='verdana' color='red'   size='2'>" + e.getMessage() + 

"<br>" + e.getCause() + "</font></center>"); 

            } 

            %> 

                </td> 

            </tr> 

            <tr> 

                <td colspan="2"> 

                    <jsp:include page="../geral/rodape.jsp" /> 

                </td> 

            </tr> 

        </table> 

    </body> 

</html> 

Figure 21 ‐ Código fonte da página excluir_servico.jsp 

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

Benefrancis do Nascimento

SISTEMA WEB

264 

 

Layoutdapáginaexcluir_servico.jsp 

Aprento o layout da página excluir_servico.jsp. 

Figure 22 ‐ excluir_servico.jsp 

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

Benefrancis do Nascimento

SISTEMA WEB

265 

 

Consideraçõesfinais 

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:

[email protected] 

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