Você está na página 1de 265

BenefrancisdoNascimento 1

Neste material mostrarei passo a passo o


SISTEMAWEB
desenvolvimento de uma aplicao
web
utilizandoprogramaoorientadaaobjeto
com Java em conjunto com o framework
para mapeamento objeto relacional
Hibernate. indicado para estudantes e
profissionais que queiram aprender Java
para web, porm que procuram
desenvolver softwares mais prximos do
que o mercado atualmente exige. Neste
material desenvolveremos um sistema
para controlar um petshop contendo
diversas operaes que interagem com
bancodedados.

SISTEMA
WEB
Desenvolva passo a passo
um sistema web utilizando
Java, Hibernate e JSP.

BenefrancisdoNascimento

BenefrancisdoNascimento 2
SISTEMAWEB

Nota do Autor

Omaterialqueoleitortememmos,dirigidobasicamente,masnoexlusivamente,aalunos
degraduaoepsgraduaoemcursosdeCienciadaComputaoecorrelatos,temcomo
preocupao fundamental inicilo no desenvolvimento de aplicaes Java, utilizando
HibernateemambienteWeb.
OobjetivoaquidesenvolverpassoapassoumsistemaemJavaqueinteragecombancode
dados realcional utilizando o framework de mapeamento objeto relacional Hibernate. Este
sistema,futuramente,serencaminhadoatestesdedesempenhoeseguranaparaque,em
seguida, possa ser evoludo. Dessa forma, convido voc a participar deste projeto que, com
certeza, contribuir com os seus estudos e futuramente voc ser capaz de repassar este
conhecimentoparaoutraspessoas.
No indico a utilizao do cdigo fonte deste material para desenvolvimento de sistema
comercial,poisaspectosdesegurananestaobranoforamabordados.Destaforma,nome
responsabilizoporqualquerdanoquepossacausaraquemquerqueseja.
Criticas e sugestes, com objetivo de alimentar o processo de melhoria contnua de minhas
obras,sobemvindas.Ocontatodeverserestabelecidopelosmeiosabaixo.
email:
benefrancis@gmail.com
twitter:
@Benefrancis
Skype:
Benefrancis.com
Desejoatodosmuitosucesso.

BenefrancisdoNascimento

BenefrancisdoNascimento 3
SISTEMAWEB

AosmeusalunosdocursodePsgraduaoemDesenvolvimentodeSistemasparaWebda
FaculdadeAnhangueraCampinas.

BenefrancisdoNascimento 4
SISTEMAWEB

NotadoAutor............................................................................................................................2
Configurandooambiente.............................................................................................................8
AcessandooMysql....................................................................................................................9
Criandoobancodedadosdosistema......................................................................................9
CriandoumaaplicaoJavaparawebnoNetbeans..............................................................10
Criandoospacotesdanossaaplicao...................................................................................17
Criandoasclassesdacamadadecontrole..................................................................................18
AClassePessoa.......................................................................................................................19
Mtodosdaclassepessoaqueinteragemcomobancodedados.........................................21
MapeandoaClassePessoa.....................................................................................................22
AClassePF...............................................................................................................................27
MapeandoaClassePF.............................................................................................................27
AClassePJ...............................................................................................................................28
MapeandoaClassePJ.............................................................................................................29
AClasseTelefone....................................................................................................................30
MtodosdaclasseTelefonequeinteragemcomobancodedados......................................30
MapeandoaClasseTelefone..................................................................................................31
AclasseEndereco....................................................................................................................35
MtodosdaclasseEnderecoqueinteragemcomobancodedados.....................................35
MapeandoaclasseEndereco..................................................................................................36
AclasseDocReceita.................................................................................................................40
MapeandoaclasseDocReceita...............................................................................................40
AclasseCPF.............................................................................................................................43
AclasseCNPJ...........................................................................................................................44
AclasseAnimal........................................................................................................................47

BenefrancisdoNascimento 5
SISTEMAWEB

MtodosdaclasseAnimalqueinteragemcomobancodedados.........................................47
MapeandoaclasseAnimal......................................................................................................48
InformandoaoHibernatequaisosatributosdaclasseanimalqueseropersistidos...........51
AclasseCachorro....................................................................................................................53
AclasseGato...........................................................................................................................54
AclasseabstrataServico.........................................................................................................55
MtodosdaclasseServicoqueinteragemcomobancodedados........................................55
MapeandoaClasseServico.....................................................................................................57
InformandoaoHibernatequaisosatributosdaclasseServicoqueseropersistidos...........58
AclasseBanho.........................................................................................................................60
AclasseConsulta.....................................................................................................................61
AclasseTosa...........................................................................................................................62
AclasseVacina........................................................................................................................62
UtilizandooHibernateparacriarastabelasnobancodedados...............................................63
Atualizandooarquivohibernate.cfg.xml................................................................................64
Criandoumaconexocomohibernate..................................................................................65
CriandoumaclasseparatestarofuncionamentodoHibernate............................................66
ProgramandoasclassesDAO......................................................................................................68
Introduo...............................................................................................................................69
ImplementadoosmtodosdaclassePessoaDAO..................................................................69
ImplementadoosmtodosdaclasseAnimalDAO..................................................................76
ImplementadoosmtodosdaclasseServicoDAO..................................................................82
ImplementadoosmtodosdaclasseTelefoneDAO...............................................................89
ImplementadoosmtodosdaclasseEnderecoDAO..............................................................95
TestandoosmtodosdasclassesdopacoteDAO....................................................................101
Salvandopessoa,telefone,endereo,animaiseservios....................................................102

BenefrancisdoNascimento 6
SISTEMAWEB

CriandoaspginasJSP..............................................................................................................106
Mapadosite..........................................................................................................................107
Criandodiretriosnecessrios..............................................................................................107
IniciandoaprogramaodaspginasJSP.............................................................................109
Importandoasclassesnecessrias........................................................................................109
Codificandoarquivosdodiretriogeral...................................................................................115
Codificandoarquivosdodiretriocadastros............................................................................120
Codificandoarquivosdodiretrioservios...............................................................................155
Codificandoarquivosdodiretrioconsultas............................................................................173
Consideraesfinais..................................................................................................................265

BenefrancisdoNascimento 7
SISTEMAWEB

Figura1Diagramadeclassesdopacotecontrole

BenefrancisdoNascimento 8
SISTEMAWEB

Configurando o ambiente

BenefrancisdoNascimento 9
SISTEMAWEB

Acessando o Mysql

Iniciaremosaconfiguraodonossoambientededesenvolvimento,conectandocomoMysql.
ParaissoutilizaremosoHeidiSQL1.Conectamoscomousuriorootemnossamquinalocal.

Figura2ConectandooHeidiSQL

Criando o banco de dados do sistema

Criaremosagoraonossodatabase.Paraisso,cliquecomobotodadireitadomouse
noTreeviewroot@127.0.0.1;abrirummenususpensonoqualvocdeveracessara
opoCreateNew/Database.Atelarepresentadnaimagemabaixoseraberta.
Preenchaosdadosconformeaimagemabaixo.

Disponvelem:http://www.heidisql.com/

BenefrancisdoNascimento 10
SISTEMAWEB

Figura3Criandoobancodedadoscomonomeestimacao

Criando uma aplicao Java para web no Netbeans

CriaremosagoraumaaplicaojavaparawebnoideNetbeans2.Acesseomenu
Arquivo/Novoprojeto.Aconfiguraodoprojetoseguequatropassosque
descrevereinasimagensaseguir.

Disponvelem:http://netbeans.org/

BenefrancisdoNascimento 11
SISTEMAWEB

Figura4CriandoumaaplicaoJavaparawebnoNetbeans[1Passo]

Oprimeiropassoconsistenaescolhadoprojeto.Nonossocasoacategoriadoprojeto
serjavaWebeoprojetoserAplicaoweb.

BenefrancisdoNascimento 12
SISTEMAWEB

Figura5CriandoumaaplicaoJavaparawebnoNetbeans[2Passo]

Nosegundopassodemosumnomeparaoprojeto.OnomeescolhidofoiEstimacao.

Figura6CriandoumaaplicaoJavaparawebnoNetbeans[3Passo]

BenefrancisdoNascimento 13
SISTEMAWEB

Noterceiropassodeveremosescolheroservidorcontainerparaanossaaplicao.
EscolhaoApacheTomcat.ParaaversodojavaEEvocdeverescolhera5ou
superior.OcaminhodoprojetosersugeridopeloNetbeans.Aceiteasugesto.

Figura7CriandoumaaplicaoJavaparawebnoNetbeans[4Passo]

Oquartopassoserdivididoemduasetapas.Aprimeiraescolherosframeworksque
desejaremostrabalharemnossaaplicao.EscolhasomenteoHibernate3.x.x.Para
conexocombancodedadosohibernatetrabalhacomdialeto,destamaneiraele
sabertratarasparticularidadesdobancodedadosescolhido.Configuraremosuma
novaconexocombancodedados.Asegundaetapaapresentadanaimagemabaixo:

BenefrancisdoNascimento 14
SISTEMAWEB

Figura8Segundaetapado4passodaconfiguraodoprojetoJavaparaweb

Aimagemacimamostracomodeverserconfiguradaaconexocomobancodedados.
Preenchaconformeaimagem,pormvocdeversaberqualousurioesenhadoseubanco
dedadosMysql.Apsopreenchimentocliqueemokparaaparecerateladefinalizaoda
configuraodoprojeto(imagemaseguir).

BenefrancisdoNascimento 15
SISTEMAWEB

Figura9Teladefinalizaodaconfiguraodoprojeto

Oseuprojetojestconfiguradoparatrabalharcomjavaparawebutilizandoo
frameworkHibernate.
ONetbeansexibiraestruturadediretriosconformeimagemaseguir,pormpara
visualizarocontedodoarquivohibernate.cfg.xml,vocdeverclicarnaabaXMLdo
referidoarquivo.

BenefrancisdoNascimento 16
SISTEMAWEB

Figura10ocontedodoarquivohibernate.cfg.xmlcriadopeloideNetbeans

Figura11Alteramosoarquivohibernate.cfg.xml

Realizamosaprimeiraalteraonoarquivohibernate.cfg.xmlcomoobjetivodeque:
1. Exibanoconsoleoscomandossql;

BenefrancisdoNascimento 17
SISTEMAWEB

2. Queoscomandossqlsejamformatados;
3. Informandootamanhodopooldeconexespermitidas;
4. E,porfim,queohibernatetenhapermissodecriartabelasnanossabasede
dados.
Faltaapenasinformarnestearquivoquaisseroasclassesdanossaaplicaoque
seromapeadasparapersistiremnobancodedados,masinformaremosapsa
criao,codificaoemapeamentodasmesmas.

Criando os pacotes da nossa aplicao

A nossa aplicao ter trs camadas, porm apenas dois pacotes, pois a camada de
apresentao ser composta pelas pginas web que j possuem diretrio em nosso projeto.
Vejaimagemabaixo.

Figura12CriandoPacotes:controleemodeloAcamadadevisosernodiretrio
PginasWeb
Cabeinformarqueapenasoarquivohibernate.cfg.xmldeverpermanecernopacotepadro.

BenefrancisdoNascimento 18
SISTEMAWEB

Criando as classes da camada de controle

BenefrancisdoNascimento 19
SISTEMAWEB

A Classe Pessoa

Figura13AtributosdaClasseabstrataPessoa.

No momento da criao dos atributos o Netbeans sugere a criao das classes. Por
exemplo,aodigitarpublicCollection<Telefone>telefoneoNetbeanssugereacriao
da classe telefone. Aconselho que criem imediatamente conforme o Netbeans vai
sugerindo, porm depois faam as devidas alteraes visto que, por exemplo, ao
digitar public DocReceita docReceita ele sugere a criao de uma classe, mas
conformenossodiagramaUML,DocReceitaumainterface.Altere.

BenefrancisdoNascimento 20
SISTEMAWEB

Figura14Diretrioapsacriaodasclassesdopacotemodelo

NestemomentocrieiasclassesDAODataAccessObjectClassesresponsveispela
camadadepersistncianaminhaaplicao,massemnenhumcdigonestemomento
(apenasparapodermosreferencilasnosmtodossalvar,alterar,excluireconsultar
nas classes do pacote controle). Criaremos tambm uma classe para testar o
funcionamentodoHibernate(detalhareiestasclassesmaisadiante).

BenefrancisdoNascimento 21
SISTEMAWEB

Mtodos da classe pessoa que interagem com o banco de dados


Aseguirosmtodosautenticar,existe,salvar,consultar,alterareexcluirdaclassePessoa.
QuandoestiverincluindoosmtodosabaixonaclassePessoaoNetbeansirsugeriracriao
dosmtodosnaclassePessoaDAO.Aceiteasugesto.
publicAutenticavelautenticar(Stringusuario,Stringsenha){
returnPessoaDAO.autenticar(usuario,senha);
}

publicbooleanexiste(Stringemail){
returnPessoaDAO.existe(email);
}

publicbooleanexiste(DocReceitadocumento){
returnPessoaDAO.existe(documento);
}

staticpublicbooleansalvar(Pessoap){
returnPessoaDAO.salvar(p);
}

staticpublicArrayList<Pessoa>consultar(){
returnPessoaDAO.consultar();
}

staticpublicPessoaconsultar(intidPessoa){
returnPessoaDAO.consultar(idPessoa);

BenefrancisdoNascimento 22
SISTEMAWEB

staticpublicCollection<Pessoa>consultar(Stringnome){
returnPessoaDAO.consultar(nome);
}

staticpublicbooleanalterar(Pessoap){
returnPessoaDAO.alterar(p);
}

staticpublicbooleanexcluir(Pessoap){
returnPessoaDAO.excluir(p);
}

Mapeando a Classe Pessoa

IniciaremosomapeamentoObjetoRelacionaldaclassepessoa

Informando que a Classe Pessoa dar origem a objetos que sero


persistidos

PrecisamosinformaraoHibernatequeaclassepessoadarorigemaobjetosquesero
persistidosembancodedados.Paraissoutilizamosaseguinteanotao:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="tipo")

BenefrancisdoNascimento 23
SISTEMAWEB

Asanotaesacimadeveroserinseridasantesdonomedaclasse.Vejaimagemabaixo:

Figura15InformandoaoHibernatequeaClassePessoaserpersistidaeaestratgiadeHerana
utilizada

AodigitarasanotaesoNetbeanssugerealgumasimportaes,vocdeverescolheras
importaesconformeaslinhasquevode5a8naimagemacima.

Informando ao Hibernate qual ser o id da tabela

ONetbeansirasugeriracriaodoidparahierarquiadaclasse,paracriaroidqueseroid
databelanobancodedados;insiraocdigoabaixoantesdoatributoidPessoa.Ser
necessrioalterardepublicparaprivateoatributoidPessoa.Nodeixedefazeras
importaessugeridaspeloNetbeans,pormselecionesempreasquecomeamcom
javax.persistence

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
privateintidPessoa;

BenefrancisdoNascimento 24
SISTEMAWEB

Informando ao Hibernate quais os atributos da classe pessoa que sero


persistidos
NecessitamosinformaraoHibernatequaisatributosseropersistidosnobancodedados.Para
issodeveroincluirasanotaesconformeimagemabaixo:

BenefrancisdoNascimento 25
SISTEMAWEB

BenefrancisdoNascimento 26
SISTEMAWEB

Figura16Atributosdaclassepessoaqueseropersistidos

Encapsulando atributos da classe Pessoa


ParaencapsularoscamposdaclassePessoaacesseomenrefatorar/encapsularcampos.A
telaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.

Figura17EncapsulandocamposdaclassePessoa


Criando mtodos construtores para a classe Pessoa
Paracriarmtodosconstrutoresparaaclassetelefonecoloqueocursoremqualquerpartedo
cdigo fonte da classe Pessoa, sugiro que seja logo depois dos atributos, de o comando [
control + espao ]; abrir o men suspenso conforme a imagem abaixo. Clique em cima do
mtodocomonomedaclasse(omesmoqueselecioneinaimagem).Repitaaoperaoagora
selecionandoomtodosematributos.

BenefrancisdoNascimento 27
SISTEMAWEB

Figura18CriandomtodoconstrutorparaaclassePessoa

VerifiquememnossodiagramadeclassesquePessoaclasseansestraldasclassesPFePJ
(PessoaFsicaePessoaJurdicarespectivamente).Criaremosabaixoessasclasses:

A Classe PF
IniciaremosaconstruodaclassequerepresentarasPessoasFsicas.

Figura19AclassePF

AclassePFherdaosmtodoseatributosdaclassePessoa,porestemotivoomapeamento
destaclassemaissimples:bastarinformaraestratgiadeherana.Vejaabaixo:

Mapeando a Classe PF
IniciaremosomapeamentoObjetoRelacionaldaclassePF.
InformandoqueaClassePFdarorigemaobjetosqueseropersistidos
PrecisamosinformaraoHibernatequeaclassePFdarorigemaobjetosquesero

BenefrancisdoNascimento 28
SISTEMAWEB

persistidosembancodedadosequeosobjetosdotipoPFemnossobancodedadospossui
identificador1.Esteovalorqueidentificaque,dentreasclassesfilhasdePessoa,onmero1
serusadoparaPF.Vejaaanotao:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorValue("1")
Asanotaesacimadeveroserinseridasantesdonomedaclasse.Vejaimagemabaixo:

Figura20InformandoaoHibernatequeaClassePFserpersistida,aestratgiadeHeranaeovalor
queaidentificaentreasclassesquesofilhasdaclassePessoa

A Classe PJ
IniciaremosaconstruodaclassequerepresentarasPessoasJurdicas.

Figura21AclassePJ

BenefrancisdoNascimento 29
SISTEMAWEB

AclassePJ,assimcomoaclassePF,herdaosmtodoseatributosdaclassePessoa,poreste
motivoomapeamentodestaclassesemelhanteaodaclassePF.AssimcomoPF,bastar
informaraestratgiadeherana.Vejaabaixo:

Mapeando a Classe PJ
IniciaremosomapeamentoObjetoRelacionaldaclassePJ.
InformandoqueaClassePJdarorigemaobjetosqueseropersistidos
PrecisamosinformaraoHibernatequeaclassePJdarorigemaobjetosqueseropersistidos
embancodedadosequeosobjetosdotipoPJemnossobancodedadospossuiidentificador
"2".Esteovalorqueidentificaque,dentreasclassesfilhasdePessoa,onmero"2"ser
usadoparaPJ.Vejaaanotao:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorValue("2")
Asanotaesacimadeveroserinseridasantesdonomedaclasse.Vejaimagemabaixo:

Figura22InformandoaoHibernatequeaClassePJserpersistida,aestratgiadeHerana
eovalorqueaidentificaentreasclassesquesofilhasdaclassePessoa

BenefrancisdoNascimento 30
SISTEMAWEB

A Classe Telefone

Figura23AtributosdaClasseTelefone

Mtodos da classe Telefone que interagem com o banco de dados

Incluiremososmtodossalvar,consultar,alterareexcluirnaclasseTelefone.Essesmtodos
seroaligaoentreaclasseTelefoneeaclassetelefoneDAO.Abaixomostramososmtodos
daclasseTelefone.Obs:Quandoestiverinserindoosmtodosabaixo,oNetbeansirsugerira
criaodosmtodosnaClasseTelefoneDAO.Aceiteasugesto.
publicstaticbooleansalvar(Telefonet){
returnTelefoneDAO.salvar(t);
}
publicstaticbooleansalvar(Pessoap){
returnTelefoneDAO.salvar(p);
}
publicstaticTelefoneconsultar(intidTelefone){
returnTelefoneDAO.consultar(idTelefone);

BenefrancisdoNascimento 31
SISTEMAWEB

publicstaticCollection<Telefone>consultar(Pessoap){
returnTelefoneDAO.consultar(p);
}
publicstaticbooleanalterar(Telefonet){
returnTelefoneDAO.alterar(t);
}
publicstaticbooleanexcluir(Telefonet){
returnTelefoneDAO.excluir(t);
}
publicstaticbooleanexcluir(Pessoap){
returnTelefoneDAO.excluir(p);
}

Mapeando a Classe Telefone

IniciaremosomapeamentoobjetorelacionaldaclasseTelefone.

Informando que a classe Telefone dar origem a objetos que sero


persistidos

Parainformarqueaclassetelefonedarorigemaobjetosqueseropersistidosembancode
dados,bastaapenasincluiraanotao@Entityantesdonomedaclasse.

BenefrancisdoNascimento 32
SISTEMAWEB

Informando ao Hibernate qual ser o Id da tabela telefone

Paracriaroidqueseroiddatabelanobancodedados;insiraocdigoabaixoantesdo
atributoidTelefone.NodeixedefazerasimportaessugeridaspeloNetbeans,porm
selecionesempreasquecomeamcomjavax.persistence.

Figura24InformandoaoHibernatequalseroIddatabelatelefone

Informando ao Hibernate quais os atributos da classe Telefone que


sero persistidos

BenefrancisdoNascimento 33
SISTEMAWEB

Figura25AtributosdaclasseTelefonequeseropersistidos

Encapsule os atributos da classe Telefone

Paraencapsularoscamposdaclassetelefoneacesseomenrefatorar/encapsularcampos.A
telaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.

BenefrancisdoNascimento 34
SISTEMAWEB

Figura26EncapsulandoosatributosdaclasseTelefone

Crie mtodos construtores para a classe Telefone


Paracriarosmtodosconstrutoresdaclassetelefonecoloqueocursoremqualquerpartedo
cdigo fonte da classe telefone, sugiro que seja logo depois dos atributos, de o comando [
control + espao ]; abrir o men suspenso conforme a imagem abaixo. Clique em cima do
mtodocomonomedaclasse(omesmoqueselecioneinaimagem).Repitaaoperaoagora
selecionandoomtodosematributos.

Figura27CriandomtodoconstrutorparaaclasseTelefone

BenefrancisdoNascimento 35
SISTEMAWEB

A classe Endereco

Figura28AtributosdaclasseEndereco

Mtodos da classe Endereco que interagem com o banco de dados

Incluiremososmtodossalvar,consultar,alterareexcluirnaclasseEndereco.Essesmtodos
seroaligaoentreaclasseEnderecoeaclasseEnderecoDAO.Abaixomostramosos
mtodosdaclasseEndereco.Obs:Quandoestiverinserindoosmtodosabaixo,oNetbeansir
sugeriracriaodosmtodosnaClasseEnderecoDAO.Aceiteasugesto.
publicstaticbooleansalvar(Enderecoe){
returnEnderecoDAO.salvar(e);
}

BenefrancisdoNascimento 36
SISTEMAWEB

publicstaticbooleansalvar(Pessoap){
returnEnderecoDAO.salvar(p);
}
publicstaticEnderecoconsultar(intidEndereco){
returnEnderecoDAO.consultar(idEndereco);
}
publicstaticArrayList<Endereco>consultar(Pessoap){
returnEnderecoDAO.consultar(p);
}
publicstaticbooleanalterar(Enderecoe){
returnEnderecoDAO.alterar(e);
}
publicstaticbooleanexcluir(Enderecoe){
returnEnderecoDAO.excluir(e);
}
publicstaticbooleanexcluir(Pessoap){
returnEnderecoDAO.excluir(p);
}




Mapeando a classe Endereco

IniciaremosomapeamentoobjetorelacionaldaclasseEndereco.

BenefrancisdoNascimento 37
SISTEMAWEB

Informando que a classe Endereco dar origem a objetos que sero


persistidos

ParainformarqueaclasseEnderecodarorigemaobjetosqueseropersistidosembancode
dados,bastaapenasincluiraanotao@Entityantesdonomedaclasse.

Informando ao Hibernate qual ser o Id da tabela endereco

Paracriaroidqueseroiddatabelanobancodedados;insiraocdigoabaixoantesdo
atributoidEndereco.NodeixedefazerasimportaessugeridaspeloNetbeans,porm
selecionesempreasquecomeamcomjavax.persistence.

Figura29InformandoaoHibernatequalseroIddatabelaendereo

Informando ao Hibernate quais os atributos da classe Endereco que


sero persistidos

BenefrancisdoNascimento 38
SISTEMAWEB

Figura30OsatributosdaclasseEnderecoqueseropersistidos

BenefrancisdoNascimento 39
SISTEMAWEB

Encapsule os atributos da classe Endereco

Paraencapsularoscamposdaclasseenderecoacesseomenrefatorar/encapsularcampos.
Atelaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.

Figura31Encapsulandocamposdaclasseendereo

Crie mtodos construtores para a classe Endereco


Paracriarmtodosconstrutoresparaaclasseendereo,coloqueocursoremqualquerparte
docdigofontedaclasseEndereco,sugiroquesejalogodepoisdosatributos,deocomando[
control + espao ]; abrir o men suspenso conforme a imagem abaixo. Clique em cima do
mtodocomonomedaclasse(omesmoqueselecioneinaimagem).Repitaaoperaoagora
selecionandoomtodosematributos.

BenefrancisdoNascimento 40
SISTEMAWEB

Figura32MtodosconstrutoresparaaclasseEndereco

A classe DocReceita

CodificaremosagoraaclasseDocReceita.

Figura33AinterfaceDocReceita


Mapeando a classe DocReceita

IniciaremosomapeamentoobjetorelacionaldaclasseDocReceita.

BenefrancisdoNascimento 41
SISTEMAWEB

Informando que a classe DocReceita dar origem a objetos que sero


persistidos

ParainformarqueaclasseDocReceitadarorigemaobjetosqueseropersistidosembanco
dedados,bastaapenasincluiraanotao@Entityantesdonomedaclasse,pormdocReceita
seraclassemedeCPFeCNPJ,destaformasernecessrioinformarqualaestratgiade
heranaqueutilizaremos.

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="tipo")

Informando ao Hibernate quais os atributos da classe DocReceita que


sero persistidos

BenefrancisdoNascimento 42
SISTEMAWEB

Figure1AtributosdaclasseDocReceitaqueseropersistidos

BenefrancisdoNascimento 43
SISTEMAWEB

A classe CPF

CodificaremosagoraaclasseCPF.EstaclasseimplementaaInterfaceDocReceita.Portanto
deverpossuiromtodovalidaregetNumero.

Figura34AclasseCPF


O mtodo que validar o CPF

AbaixoapresentoomtodoutilizadoparacalcularodgitodeumCPF.Naimagemacimaele
estoculto,paramelhorvisualizao.

BenefrancisdoNascimento 44
SISTEMAWEB

Figura35MtodoutilizadoparacalcularodgitodeumCPF.DeveestardentrodaclasseCPF


A classe CNPJ

AclasseCNPJ,assimcomoaclasseCPFimplementaainterfaceDocReceita,portantotambm
deverpossuirosmtodosvalidaregetnumero.

BenefrancisdoNascimento 45
SISTEMAWEB

Figura36AclasseCNPJ

O mtodo que validar o CNPJ

AbaixoapresentoomtodoutilizadoparacalcularodgitodeumCNPJ.Naimagemacimaele
estoculto,paramelhorvisualizao.

BenefrancisdoNascimento 46
SISTEMAWEB

Figura37MtodoutilizadoparacalcularodgitodeumCNPJ.Deveestardentrodaclasse
CNPJ.

BenefrancisdoNascimento 47
SISTEMAWEB

A classe Animal

IniciaremosacodificaodaclasseabstrataAnimal.

Figura38AclasseAbstrataAnimal

Mtodos da classe Animal que interagem com o banco de dados

Incluiremososmtodossalvar,consultar,alterareexcluirnaclasseAnimal.Essesmtodos
seroaligaoentreaclasseAnimaleaclasseanimalDAO.Abaixomostramososmtodosda
classeAnimal.Obs:Quandoestiverinserindoosmtodosabaixo,oNetbeansirsugerira
criaodosmtodosnaClasseAnimalDAO.Aceiteasugesto.
publicstaticbooleansalvar(Animala){
returnAnimalDAO.salvar(a);
}
publicstaticbooleansalvar(Pessoap){

BenefrancisdoNascimento 48
SISTEMAWEB

returnAnimalDAO.salvar(p);
}
publicstaticAnimalconsultar(intidAnimal){
returnAnimalDAO.consultar(idAnimal);
}
publicstaticCollection<Animal>consultar(){
returnAnimalDAO.consultar();
}
publicstaticCollection<Animal>consultar(Pessoap){
returnAnimalDAO.consultar(p);
}
publicstaticbooleanalterar(Animala){
returnAnimalDAO.alterar(a);
}
publicstaticbooleanexcluir(Animala){
returnAnimalDAO.excluir(a);
}
publicstaticbooleanexcluir(Pessoap){
returnAnimalDAO.excluir(p);
}


Mapeando a classe Animal

IniciaremosomapeamentoobjetorelacionaldaclasseAnimal.

BenefrancisdoNascimento 49
SISTEMAWEB

Informando que a classe Animal dar origem a objetos que sero


persistidos

PrecisamosinformaraoHibernatequeaclasseAnimaldarorigemaobjetosquesero
persistidosembancodedadosequalseraestratgiaparahierarquia.Paraissoutilizamosas
seguintesanotaes:

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="tipo")

Asanotaesacimadeveroserinseridasantesdonomedaclasse.Vejaimagemabaixo:

Figura39informaraoHibernatequeaclasseAnimaldarorigemaobjetosqueseropersistidosem
bancodedadosequalseraestratgiaparahierarquia

BenefrancisdoNascimento 50
SISTEMAWEB

Informando ao Hibernate qual ser o Id da tabela animal

ONetbeansirasugeriracriaodoidparahierarquiadaclasse,paracriaroidqueseroid
databelanobancodedados;insiraocdigoabaixoantesdoatributoidAnimal.Nodeixede
fazerasimportaessugeridaspeloNetbeans,pormselecionesempreasquecomeamcom
javax.persistence

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
privateintidAnimal;

Figura40Acriaodoidparahierarquiadaclasse

BenefrancisdoNascimento 51
SISTEMAWEB

Informando ao Hibernate quais os atributos da classe animal que


sero persistidos

Figura41Osatributosdaclasseanimalqueseropersistidos

BenefrancisdoNascimento 52
SISTEMAWEB

Encapsule os atributos da classe Animal

Paraencapsularoscamposdaclasseanimalacesseomenrefatorar/encapsularcampos.A
telaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.

Figura42EncapsulandocamposdaclasseAnimal

Crie mtodos construtores para a classe Animal


ParacriarmtodosconstrutoresparaaclasseAnimal,coloqueocursoremqualquerpartedo
cdigo fonte da classe Animal, sugiro que seja logo depois dos atributos, de o comando [
control + espao ]; abrir o men suspenso conforme a imagem abaixo. Clique em cima do
mtodocomonomedaclasse(omesmoqueselecioneinaimagem).Repitaaoperaoagora
selecionandoomtodosematributos.

Figura43MtodosconstrutoresparaaclasseAnimal

BenefrancisdoNascimento 53
SISTEMAWEB

A classe Cachorro

ExibimosabaixoaclasseCachorrojcomasdevidasanotaeseomtodoconstrutor.

Figura44AclasseCachorrojcomasdevidasanotaeseomtodoconstrutor.

BenefrancisdoNascimento 54
SISTEMAWEB

A classe Gato

ExibimosabaixoaclasseGatojcomasdevidasanotaeseomtodoconstrutor.

Figura45AclasseGatojcomasdevidasanotaeseomtodoconstrutor

BenefrancisdoNascimento 55
SISTEMAWEB

A classe abstrata Servico

IniciaremosacodificaodaclasseabstrataServico.

Figura46Aclasseabstrataservio



Mtodos da classe Servico que interagem com o banco de dados

Aseguirosmtodossalvar,consultar,alterareexcluirdaclasseServico.Quandoestiver
incluindoosmtodosabaixonaclasseServicooNetbeansirsugeriracriaodosmtodosna
classeServicoDAO.Aceiteasugesto.

BenefrancisdoNascimento 56
SISTEMAWEB

publicstaticbooleansalvar(Servicos){
returnServicoDAO.salvar(s);
}

publicstaticbooleansalvar(Animala){
returnServicoDAO.salvar(a);
}
publicstaticServicoconsultar(intidServico){
returnServicoDAO.consultar(idServico);
}
publicstaticCollection<Servico>consultar(Animala){
returnServicoDAO.consultar(a);
}
publicstaticCollection<Servico>consultar(){
returnServicoDAO.consultar();
}
publicstaticbooleanalterar(Servicos){
returnServicoDAO.alterar(s);
}
publicstaticbooleanexcluir(Servicos){
returnServicoDAO.excluir(s);
}
publicstaticbooleanexcluir(Animala){
returnServicoDAO.excluir(a);
}

BenefrancisdoNascimento 57
SISTEMAWEB

Mapeando a Classe Servico

IniciaremosomapeamentoobjetorelacionaldaclasseabstrataServico.

Informando que a classe Servico dar origem a objetos que sero


persistidos

PrecisamosinformaraoHibernatequeaclasseServicodarorigemaobjetosquesero
persistidosembancodedados.Paraissoutilizamosaseguinteanotao:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="tipo")
Asanotaesacimadeveroserinseridasantesdonomedaclasse.Vejaimagemabaixo:

Figura47AclasseServicodarorigemaobjetosqueseropersistidosembancodedados

BenefrancisdoNascimento 58
SISTEMAWEB

Informando ao Hibernate quais os atributos da classe Servico que


sero persistidos

Asconstantesnoseromapeadas.

Figura48InformandoaoHibernatequaisosatributosdaclasseServicoqueseropersistidos

BenefrancisdoNascimento 59
SISTEMAWEB

Encapsule os atributos da classe Servico

ParaencapsularoscamposdaclasseServicoacesseomenrefatorar/encapsularcampos.A
telaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.

Figura49EncapsulandocamposdaclasseServico

Crie mtodos construtores para a classe Servico


ParacriarmtodosconstrutoresparaaclasseServico,coloqueocursoremqualquerpartedo
cdigo fonte da classe Servico, sugiro que seja logo depois dos atributos, de o comando [
control + espao ]; abrir o men suspenso conforme a imagem abaixo. Clique em cima do
mtodocomonomedaclasse(omesmoqueselecioneinaimagem).Repitaaoperaoagora
selecionandoomtodosematributos.

BenefrancisdoNascimento 60
SISTEMAWEB

Figura50MtodosconstrutoresparaaclasseServico

A classe Banho
AbaixoocdigoeanotaesdaclasseBanho

Figure2AclasseBanho

BenefrancisdoNascimento 61
SISTEMAWEB

A classe Consulta
AbaixoocdigoeanotaesdaclasseConsulta

Figure3Aclasseconsulta

BenefrancisdoNascimento 62
SISTEMAWEB

A classe Tosa
AbaixoocdigoeanotaesdaclasseTosa

A classe Vacina
AbaixoocdigoeanotaesdaclasseVacina

BenefrancisdoNascimento 63
SISTEMAWEB

Utilizando o Hibernate para criar as tabelas no banco de


dados

BenefrancisdoNascimento 64
SISTEMAWEB

Atualizando o arquivo hibernate.cfg.xml

Nestemomentoatualizaremosoarquivohibernate.cfg.xml.Deveremosincluirinformao
sobreasclassesqueforammapeadasemnossaaplicaoJava.
Abraoarquivoeincluaentreastags<sessionfactory></sessionfactory>ocdigoabaixo:

<mappingclass="br.com.benefrancis.controle.Pessoa"/>
<mappingclass="br.com.benefrancis.controle.PF"/>
<mappingclass="br.com.benefrancis.controle.PJ"/>

<mappingclass="br.com.benefrancis.controle.DocReceita"/>
<mappingclass="br.com.benefrancis.controle.CPF"/>
<mappingclass="br.com.benefrancis.controle.CNPJ"/>

<mappingclass="br.com.benefrancis.controle.Telefone"/>
<mappingclass="br.com.benefrancis.controle.Endereco"/>

<mappingclass="br.com.benefrancis.controle.Animal"/>
<mappingclass="br.com.benefrancis.controle.Cachorro"/>
<mappingclass="br.com.benefrancis.controle.Gato"/>

<mappingclass="br.com.benefrancis.controle.Servico"/>
<mappingclass="br.com.benefrancis.controle.Banho"/>
<mappingclass="br.com.benefrancis.controle.Consulta"/>
<mappingclass="br.com.benefrancis.controle.Tosa"/>
<mappingclass="br.com.benefrancis.controle.Vacina"/>

BenefrancisdoNascimento 65
SISTEMAWEB

Criando uma conexo com o hibernate

ParaobterconexescomoHibernatecriamosaclasseConexaoHibernatenopacotemodelo.
Ocdigopoderservisualizadonaimagemabaixo:

Figura51AclasseConexaoHibernate

AclasseConexaoHibernatepossuiumblocoestticonoqualpormeiodavarivel
sessionFactorycapturamosasconfiguraesinseridasnoarquivohibernate.cfg.xml.Criamos
tambmummtodoestticogetInstance()queretornarumasesso.

BenefrancisdoNascimento 66
SISTEMAWEB

Criando uma classe para testar o funcionamento do Hibernate

CriaremosaclasseTestandoHibernatenopacotemodelo.Estaclasseserutilizadaparatestar
ofuncionamentodonossosistema.Aprincipiocriaremosummtodoestticoparageraras
tabelasnobancodedados.Eummtodomain,poisnestemomentopoderemosexecutaro
sistemaparatestarofuncionamento.

Figura52TestandoofuncionamentodoHibernate

Podemosagoraexecutrarestearquivopormeiodoatalho[shift+F6].Oconsoleirimprimir
diversasinformaeseentreelasoscomandosdoSQLparacriaodastabelasnobancode
dados.Abaixo,segueoquefoiimprimido:

BenefrancisdoNascimento 67
SISTEMAWEB

Figura53SadadoconsoledaaplicaoquandoexecutamosomtodogerarTabelasdaclasse
TestandoHibernate

AgoravoltaremosparaoHeidiSQLparaverificarastabelascriadaspelanossaaplicao:

Figura54VerificandonoHeidiSqlastabelasgeradas

BenefrancisdoNascimento 68
SISTEMAWEB

Programando as classes DAO

BenefrancisdoNascimento 69
SISTEMAWEB

Introduo

Programaremos os mtodos das classes de acesso e manipulao dos dados de nossa


aplicao.
Quando estvamos criando os mtodos salvar, consultar, alterar e excluir das classes do
pacotecontrole,oNetbeansnossugeriacriarosmtodosnasclassesDAOdopacotemodelo.
CasotenhaaceitadoconformeorienteiosmtodosforamcriadosnasrespectivasclassesDAO.
Porm o contedo dos mtodos lana uma exceo dizendo que o mtodo no foi
implementado.Vejaaexceoabaixo:

Figura55Exceodemtodoquenofoiimplementado

DeveremosinserirocontedodosmtodosdasclassesDAO.Eestaseranossaatividade
nestecapitulo.OscdigosdasclassesDAOseromuitosemelhantesaosmtodosdasoutras
classesdeacessoemanipulaodedados.Vejam.

Implementado os mtodos da classe PessoaDAO

Parapersistiremanipularosdadosemnossaaplicaocomseguranatrabalharemoscomo
conceitodetransao.OhibernatepossuioobjetoTransactionparaessefim.Destaforma,
emcasodeerroduranteoprocessamentoaaplicaofarorollback,mantendoassimnosso
bancodedadosintegro.
Todacomunicaonessesmtodosdependerodeumasessocomohibernate,poresse
motivoutilizaremosavarivelsessiondotipoorg.hibernate.Session.

BenefrancisdoNascimento 70
SISTEMAWEB

Salvar
Nestemtodosalvaremosumapessoanobancodedados.Omtodoesperacomoparmetro
umobjetodotipoPessoa.Poderemosenviarpessoasfsicasepessoasjurdicas,poisesteum
clssicomtodopolifrmico.

Figura56MtodosalvardaclassePessoaDAO

Para salvar uma pessoa no banco de dados utilizamos polimorfismo por meio de mtodo
polifrmico.ReparequenomtodosalvaroparmetroesperadodotipoPessoa,entretanto
seenviarmosumaPFouPJasinformaesserosalvascorretamentenastabelasdobancode
dados. Outra tcnica importante da orientao a objeto empregada nesta classe a
sobrecargademtodospresentenomtodoconsultar(vejaaassinaturadosmtodos).

BenefrancisdoNascimento 71
SISTEMAWEB

Consultar pessoa pelo id


Nestemtodoconsultaremosumapessoapeloid.Estemtodoesperauminteirocomo
parmetro.RetornarumobjetodotipoPessoa.

Figura57ConsultandoPessoapeloid

BenefrancisdoNascimento 72
SISTEMAWEB

Consultar Todas as pessoas

Usaremosasobrecargademtodosparacriarmaisumaopodeconsulta.Agora
consultaremostodasaspessoascadastradas.

Figura58Consultandotodasaspessoascadastradas

BenefrancisdoNascimento 73
SISTEMAWEB

Consultar pessoa pelo nome

Consultaremospessoapelonome.EstemtodoesperacomoparmetroumaStringe
retornarumacoleodeobjetosdotipopessoa.

Figura59Consultandopessoaspelonome

BenefrancisdoNascimento 74
SISTEMAWEB

Alterando pessoas

Agoraabordaremosomtodoalterar.Estemtodorecebeumobjetodotipopessoacomo
parmetroeretornaverdadeiro;seaatualizaoforconcretizada,oufalsocasoacontea
algumaexceo.

Figura60Alterandopessoa

BenefrancisdoNascimento 75
SISTEMAWEB

Excluindo pessoas

Codificaremosomtodoexcluir.Estemtodorecebecomoparmetroumobjetodotipo
pessoaeretornarverdadeiro;seatransaoconcluircomsucesso,oufalsocasoacontea
algumaexceo.

Figura61Excluindopessoas

BenefrancisdoNascimento 76
SISTEMAWEB

Implementado os mtodos da classe AnimalDAO

Salvar

Nestemtodosalvaremosumanimalnobancodedados.Omtodoesperacomoparmetro
umobjetodotipoAnimal.Poderemosenviarcachorrosougatos,poisesteumclssico
mtodopolifrmico.

Figura62Salvandoanimais

BenefrancisdoNascimento 77
SISTEMAWEB

Salvando todos os animais de uma pessoa

Criamosummtodoparasalvartodososanimaisdeumapessoa.

Figura63Salvandotodososanimaisdeumapessoa

BenefrancisdoNascimento 78
SISTEMAWEB

Consultando animais pelo Id

Codificaremosomtodoqueconsultaanimalpeloid

Figura64ConsultandoanimaispeloId

BenefrancisdoNascimento 79
SISTEMAWEB

Alterando animais

CodificaremosomtodoalterardaclasseanimalDAO.

Figura65Alterandoanimal

BenefrancisdoNascimento 80
SISTEMAWEB

Excluindo animal

AbaixoocdigodomtodoexcluirdaclasseAnimalDAO.

Figura66Excluindoanimal

BenefrancisdoNascimento 81
SISTEMAWEB

Excluindo todos os animais de uma pessoa

Codificaremosummtodoparaexclusodetodososanimaisdeumapessoa.

Figura67Excluindotodososanimaisdeumapessoa

BenefrancisdoNascimento 82
SISTEMAWEB

Implementado os mtodos da classe ServicoDAO

IniciaremosagoraacodificaodosmtodosdaclasseServicoDAO.

Salvar

AbaixoomtodosalvardaclasseServicoDAO.

Figura68Salvandoservios

BenefrancisdoNascimento 83
SISTEMAWEB

Consultando servio pelo id

Abaixoocdigoparaconsultadeserviopeloid.

Figura69Consultandoserviopeloid

BenefrancisdoNascimento 84
SISTEMAWEB

Salvando todos os servios de um animal

Codificaremosummtodoparasalvartodososserviosdeumanimal.

Figura70Salvandotodososserviosdeumanimal

BenefrancisdoNascimento 85
SISTEMAWEB

Consultando todos os servios de um animal

Codificaremosomtodoquedeverretornartodosserviosrealizadosemumanimal.

Figura71Consultandotodosserviosrealizadosemumanimal

BenefrancisdoNascimento 86
SISTEMAWEB

Excluindo todos os servios de um animal

Codificaremosummtodoparaquesejapossvelexcluirtodososserviosdeumanimal.

Figura72Excluindotodososserviosdeumanimal

BenefrancisdoNascimento 87
SISTEMAWEB

Alterando servio

Desenvolvendomtodoparaalterarumservio.

Figura73Alterandoservio

BenefrancisdoNascimento 88
SISTEMAWEB

Excluindo servio

Abaixoocdigoparaexclusodeservio

Figura74Excluindoservio

BenefrancisdoNascimento 89
SISTEMAWEB

Implementado os mtodos da classe TelefoneDAO

IniciaremosagoraacodificaodosmtodosdaclasseTelefoneDAO.

salvar

Figura75Salvandoumtelefone

BenefrancisdoNascimento 90
SISTEMAWEB

Consultando telefone pelo Id

Figura76Consultandotelefonepeloid

BenefrancisdoNascimento 91
SISTEMAWEB

Consultando todos os telefones de uma pessoa

Omtodoabaixoproveaconsultadetodosostelefonesdeumapessoa.

Figura77Consultandotodosostelefonesdeumapessoa

BenefrancisdoNascimento 92
SISTEMAWEB

Salvando todos os telefones de uma pessoa

Omtodoabaixosalvatodosostelefonesdeumapessoa

Figura78Salvandotodosostelefonesdeumapessoa

BenefrancisdoNascimento 93
SISTEMAWEB

Excluindo telefone

Omtodoabaixoexcluiumtelefonedabasededados

Figura79Excluindotelefone

BenefrancisdoNascimento 94
SISTEMAWEB

Excluindo todos os telefones de uma pessoa

Ocdigoabaixoexcluitodosostelefonesdeumapessoa

Figura80Excluindotodosostelefonesdeumapessoa

BenefrancisdoNascimento 95
SISTEMAWEB

Implementado os mtodos da classe EnderecoDAO

IniciaremosagoraacodificaodosmtodosdaclasseEnderecoDAO.

Salvar

Omtodoabaixosalvaumendereonobancodedados

Figura81Salvandotodososendereosdeumapessoa

BenefrancisdoNascimento 96
SISTEMAWEB

Consultando endereo pelo Id

OmtodoabaixoconsultaendereopeloId.

Figura82Consultandoendereopeloid

BenefrancisdoNascimento 97
SISTEMAWEB

Consultando todos os endereos de uma pessoa

Omtodoabaixoconsultatodososendereosdeumapessoa.

Figura83Consultandotodososendereosdeumapessoa

BenefrancisdoNascimento 98
SISTEMAWEB

Alterando um endereo

Abaixocodificaremosummtodoparaalterarendereo

Figura84Alterandoumendereo

BenefrancisdoNascimento 99
SISTEMAWEB

Excluindo um endereo

Omtodoabaixoexcluiumendereo

Figura85Excluindoendereo

BenefrancisdoNascimento 100
SISTEMAWEB

Excluindo todos os endereos de uma pessoa

Omtodoabaixoexcluitodososendereosdeumapessoa.

Figura86Excluindotodososendereosdeumapessoa

BenefrancisdoNascimento 101
SISTEMAWEB

Testando os mtodos das classes do pacote DAO

BenefrancisdoNascimento 102
SISTEMAWEB

Salvando pessoa, telefone, endereo, animais e servios.

TestaremosagoraosmtodosdasclassesdopacoteDAO.Paraissoincluiremosummtodoa
classeTestandoHibernate.
NestemtodoinvocamosapenasomtodosalvardaclassePessoa,pormtodososoutros
objetosaelarelacionadosforamcriados.
Vejacdigoabaixo:
privatestaticvoidpersistindo()throwsException{
PFpf=newPF();
pf.setNome("BenefrancisdoNascimento");
pf.setEmail("benefrancis@gmail.com");
pf.setSenha("root");

DocReceitacpf=newCPF("24878891874");
pf.setDocReceita(cpf);
cpf.setPessoa(pf);

Enderecoend=newEndereco();
end.setBairro("JdLeni");
end.setCep("05818250");
end.setCidade("SoPaulo");
end.setLogradouro("RuafaustinoAllende");
end.setNumero("39");
end.setUf("SP");
end.setPessoa(pf);

BenefrancisdoNascimento 103
SISTEMAWEB

Collection<Endereco>e=newArrayList<Endereco>();
e.add(end);
pf.setEndereco(e);

Telefonet=newTelefone();
t.setDdd(11);
t.setNumero("82816536");
t.setPessoa(pf);

Collection<Telefone>tel=newArrayList<Telefone>();
tel.add(t);
pf.setTelefone(tel);

Animala=newCachorro();
Dated=newDate(2000,5,15);
a.setDataNascimento(d);
a.setNome("Pluto");
a.setRaca("Viralata");
a.setSexo('M');
a.setObservacao("Cachorromuitosemvergonha!");
a.setPessoa(pf);

Servicos=newBanho();
DatediaBanho=newDate(2010,11,18);
s.setData(diaBanho);

BenefrancisdoNascimento 104
SISTEMAWEB

s.setDescricao("Banhocompleto");
s.setValor(20.95);
s.setAnimal(a);

Collection<Servico>serv=newArrayList<Servico>();
serv.add(s);
a.setServico(serv);

Collection<Animal>ani=newArrayList<Animal>();
ani.add(a);
pf.setAnimal(ani);

pf.salvar(pf);
}

VerificaremosagoranoHeidiSqlsetodososcamposdastabelasforampreenchidos
corretamente.
Paraissoexecutaremososeguintecomando:
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);

BenefrancisdoNascimento 105
SISTEMAWEB

Figura87Resultadodaconsultadosdadosgravadosnobancodedados

BenefrancisdoNascimento 106
SISTEMAWEB










Criando as pginas JSP

BenefrancisdoNascimento 107
SISTEMAWEB

Mapa do site

Onossosistemawebdeverseguiraestruturarepresentadanomapadositeabaixo:
Index.jsp

Inicio.jsp

cadastros

Pessoa.jsp

servios

Registrar.jsp

consultas

Animal.jsp

Detalhe_animal.jsp
Animal.jsp
Editar_animal.jsp
Excluir_animal.jsp
Pessoa.jsp
Detalhe_pessoa.jsp
Editar_pessoa.jsp
Excluir_pessoa.jsp
Servico.jsp
Detalhe_servico.jsp
Editar_servico.jsp
Excluir_servico.jsp

Figura88Mapadosite

Criando diretrios necessrios

Agoratrabalharemoscomacamadadeapresentaoe,destaformasernecessriocriar
diretriosparaarmazenarimagens,css,javascripteetc.Paracriarumdiretrionoseuprojeto
web.
CliquecomobotodireitodomouseemcimadapastaPginaswebummensuspenso
aparecer;neleselecione:Novo/Diretrio.Ajanelaabaixoserexibida.

BenefrancisdoNascimento 108
SISTEMAWEB

Figura89Criandoumnovodiretrioacessvelparaainternetnoseuprojetoweb

Crieosdiretriosconformetabelaabaixo:
Tabela1Osdiretriosdonossosistemaweb.Nelesestoasimagem,css,javascripteetc.(Solicite
paraoprofessorpeloemail:Benefrancis@gmail.com)

NOME

Motivo

images

Serolocalondeguardaremosasimagensdo
nossosistemaweb.

css

Ondeseroinseridososarquivosdeestilo.

javascript

OndeestaroosarquivosJavascript

geral

Ondeestarocontedohtmlqueaparecer
emtodasastelas:

head.jspondefaremososimportes
necessrios.

topo.jsptopodositeeomen

rodap.jsprodapdosite

inicio.jspteladeboasvindasdo
sistema(apsautenticao)

BenefrancisdoNascimento 109
SISTEMAWEB

Iniciando a programao das pginas JSP


Importando as classes necessrias
ParasetrabalharcomclassesJavaempginasJSP,necessitaremosfazeroimportedasclasses
queprecisaremosutilizar.Portantoemnossaaplicaonecessitaremosfazeroimportedas
classesdopacotecontrole.Paraevitaresquecimentodealgumaclassepoderemosfazero
importedetodasasclassesdestepacote.Vejacomofazernasegundalinhadocdigona
imagemabaixo:

Figura90Importandotodasasclassesdopacotecontrole

Portantoincluaatag<%@pageimport="br.com.benefrancis.controle.*"%>emtodasas
pginasdenossosistemaweb.

Index.jsp
Oarquivoindex.jspdeverestnaraizdanossaaplicaoweb(diretrioPginasweb).
Napaginaindex,ouseja,aprimeirapginaqueserabertaemnossaaplicao.
Desenvolveremosumatelaondeousuriodeverserautenticado.
Ateladeverterumformulrio.Vejaatag:
<formname="FrmLogin"id="FrmLogin"method="POST"action="index.jsp">
<!Incluiroscamposdoformulrioaqui>
</form>
Deverpossuirumcampooculto,doiscamposeditveiseumbotoobedecendoaoque
descreveatabelaabaixo:

TIPO

NOME

SIZE

VALUE

text

usuario

15

password

senha

15

hidden

op

submit

btn_autenticar

Autenticar

BenefrancisdoNascimento 110
SISTEMAWEB

Odesignsemelhanteteladaimagemaseguir:

Figura91Layoutdapginaindex.jsp

Cdigo fonte Java da pagina index.jsp


Ocdigofontedaimagemabaixorecebenalinha52ovalordocampohiddeneoconverte
parainteiro,jnaslinhas57e58receberosparmetrossobreusurioesenhadoformulrio
eacionaomtodoautenticardoobjetoPF.

BenefrancisdoNascimento 111
SISTEMAWEB

Figura92Autenticandoindex.jsp

Cdigo fonte completo da pagina index.jsp

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttpequiv="ContentType"content="text/html;charset=UTF8">
<title>PETSHOP</title>
<linkrel="stylesheet"type="text/css"href="css/Estilo.css">
</head>
<body>

BenefrancisdoNascimento 112
SISTEMAWEB

<formname="FrmLogin"id="FrmLogin"method="POST"action="index.jsp">
<tablewidth="103%"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdalign="center"valign="middle">
<tablewidth="750"border="0"cellspacing="0"cellpadding="0"align="center"
>
<tr>
<tdwidth="40%"height="500"align="center"valign="middle">
<imgsrc="images/login.png"alt="Petshop"/>
</td>
<tdwidth="60%"align="center"valign="middle">
<tableborder="0">
<tr>
<tdclass="Txt">USUARIO</td>
<tdclass="Txt"><inputtype="text"name="usuario"value=""
size="15"/></td>
</tr>
<tr>
<tdclass="Txt">SENHA</td>
<tdclass="Txt"><inputtype="password"name="senha"value=""
size="15"/></td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"><inputtype="hidden"name="op"
value="1"/></td>
</tr>
<tr>

BenefrancisdoNascimento 113
SISTEMAWEB

<td></td>
<td><inputtype="submit"value="Autenticar"
name="btn_autenticar"/></td>
</tr>
<tr><tdcolspan="2"class="Txt">
<%
Stringusuario="";
Stringsenha="";
intop=0;
try{
op=Integer.parseInt(request.getParameter("op"));
}catch(Exceptionex){}
try{
if(op==1){
usuario=request.getParameter("usuario");
senha=request.getParameter("senha");
Autenticavelp=newPF().autenticar(usuario,senha);
if(p!=null){
session.setAttribute("Usuario",p);
StringnovaURL="geral/inicio.jsp";
response.sendRedirect(novaURL);
}else{
out.print("<br>");
out.print("<center><fontface='verdana'color='red'"+
"size='2'>Usuarioousenhainvlidos</font></center>");
out.print("<br>");

BenefrancisdoNascimento 114
SISTEMAWEB

}
}
}catch(Exceptione){}
%>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>

BenefrancisdoNascimento 115
SISTEMAWEB

Codificando arquivos do diretrio geral


BenefrancisdoNascimento 116
SISTEMAWEB

Head.jsp

Abaixoocontedodoarquivohead.jsp

Figura93contedodoarquivohead.jsp

BenefrancisdoNascimento 117
SISTEMAWEB

Topo.jsp

Abaixoocontedodoarquivotopo.jsp

Figura94Cdigodoarquivotopo.jsp

Rodap.jsp

Abaixoocdigodoarquivorodap.jsp

Figura95Cdigodoarquivorodap.jsp

BenefrancisdoNascimento 118
SISTEMAWEB

Inicio.jsp

Abaixoocdigodoarquivoinicio.jsp.Ateladeboasvindasdanossaaplicao.

Figura96Cdigodoarquivoinicio.jsp

BenefrancisdoNascimento 119
SISTEMAWEB

Layout da tela de boas vindas

Abaixoateladeboasvindasdanossaaplicao.

Figura97Ateladeboasvindasdanossaaplicao

BenefrancisdoNascimento 120
SISTEMAWEB

Codificando arquivos do diretrio cadastros

BenefrancisdoNascimento 121
SISTEMAWEB

Pessoa.jsp

Oarquivopessoa.jspdodiretriocadastrosseranossatelaparacadastramentodepessoas
emnossosistemas.Umapessoaserumusurioutilizadordosistema.Osistemadever
verificarseexisteumapessoacadastradanosistema.Parafazeraverificaodeveremos
verificar,antesdocadastramentodeumapessoa,se:
1. Oemailinformadojestregistradonobancodedados;
2. Seodocumentodareceitajestcadastradonosistema.

Ateladeverpossuirumformulrio.Vejaatag:
<formaction="pessoa.jsp"method="post"name="Formulario">
<!Incluiroselementosdoformulrioaqui>
</form>

Elementos do formulrio
Abaixoseguealistadoselementosesuaspropriedades:
Tabela2Elementosdoformulriodapginaparacadastramentodepessoa

ndice

Id

Nome

Tipo

Valor

Tamanho

Tamanho
mximo

Tipo

Tipo

select

razao

razao

text

50

100

CNPJ

CNPJ

text

24

18

Nome

Nome

text

50

100

CPF

CPF

text

17

14

email

email

text

50

200

senha

senha

text

50

200

TelDDD TelDDD

text

Tel

text

12

10

Tel

BenefrancisdoNascimento 122
SISTEMAWEB

TelCelDDD

text

10

TelCel

text

12

10

11

TelFaxDDD

text

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

20

op

hidden

21

Btn_Entrar

button

Cadastrar

12

Cdigo fonte Java do arquivo pessoa.jsp

Exibiremosabaixoocdigofontedapginadecadastramentodepessoas.Nosernecessrio
digitarocdigoabaixo,poisoarquivofoidisponibilizado.

BenefrancisdoNascimento 123
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.Date"%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<formaction="pessoa.jsp"method="post"name="Formulario">
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdcolspan="2">
<%
intop=0;
Stringtipo=null;
Pessoapessoa=null;
Stringusername=null;
Stringsenha=null;
DocReceitadocReceita=null;
try{
op=Integer.parseInt(Util.SoNumero(request.getParameter("op")));
}catch(Exceptionex){

BenefrancisdoNascimento 124
SISTEMAWEB

try{
if(op==1){//Oformulriofoienviado
try{
tipo=request.getParameter("Tipo");
}catch(Exceptionex){
}
if(tipo=="PJ"){
Stringrazao=null;
try{
razao=request.getParameter("razao");
docReceita=newCNPJ(request.getParameter("CNPJ"));
//Criandoumapessoajuridica
pessoa=newPJ();
pessoa.setDocReceita(docReceita);
pessoa.setNome(razao);
docReceita.setPessoa(pessoa);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<center>"+
"<fontface='verdana'color='red'"+
"size='2'>ErroaocadastrarUtilizador."+
"<br/>VerifiqueosdadosdePessoaJurdica"+
"tentenovamente</font></center>");
}
}else{
try{
Stringnome=request.getParameter("Nome");

BenefrancisdoNascimento 125
SISTEMAWEB

docReceita=newCPF(request.getParameter("CPF"));
//Criandoumapessoafsica
pessoa=newPF();
pessoa.setDocReceita(docReceita);
pessoa.setNome(nome);
docReceita.setPessoa(pessoa);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<center>"+
"<fontface='verdana'color='red'"+
"size='2'>ErroaocadastrarUtilizador."+
"<br/>VerifiqueosdadosdePessoafsica"+
"tentenovamente</font></center>");
}
}
//JexistepessoacomoCPFouCNPJinformado?
if(pessoa.existe(docReceita)==true){
if(pessoa.getTipo()==1){
thrownewRuntimeException("<br>"+
"<center><fontface='verdana'"+
"color='red'size='2'><br/>"+
"jexisteclientecadastradocom"+
"oCPFinformado</font></center><br>");
}else{
thrownewRuntimeException("<br>"+
"<center><fontface='verdana'"+
"color='red'size='2'><br/>"+
"jexisteclientecadastradocom"+
"oCNPJinformado</font></center><br>");

BenefrancisdoNascimento 126
SISTEMAWEB

}
}
try{
username=request.getParameter("email");
senha=request.getParameter("senha");
}catch(Exceptionex){
thrownewRuntimeException("Verifique"+
"seoemailesenhaforam"+
"digitadoscorretamente");
}
if(username==""||senha==""){
thrownewRuntimeException("<center>"+
"<fontface='verdana'color='red'"+
"size='2'><br/>Verifiqueoemail"+
"esenhaforamdigitadoscorretamente"+
"</font></center>");
}elseif(pessoa.existe(username)==true){
thrownewRuntimeException("<br><center>"+
"<fontface='verdana'color='red'"+
"size='2'><br/>jexisteusurio"+
"cadastradocomoemaildigitado</font>"+
"</center><br>");
}else{
pessoa.setEmail(username);
pessoa.setSenha(senha);
}
//Telefonesdapessoa
ArrayList<Telefone>telefone=newArrayList<Telefone>();

BenefrancisdoNascimento 127
SISTEMAWEB

try{
intdddTel=Integer.parseInt(Util.SoNumero(request.getParameter("TelDDD")));
StringTel=Util.SoNumero(request.getParameter("Tel"));
if(dddTel!=0&&Tel!=""){
telefone.add(newTelefone(dddTel,Tel,pessoa));
}
}catch(ExceptioneTel){
}
try{
intdddCel=Integer.parseInt(Util.SoNumero(request.getParameter("TelCelDDD")));
StringCel=Util.SoNumero(request.getParameter("TelCel"));
if(dddCel!=0&&Cel!=""){
telefone.add(newTelefone(dddCel,Cel,pessoa));
}
}catch(ExceptioneCel){
}
try{
intdddFax=Integer.parseInt(Util.SoNumero(request.getParameter("TelFaxDDD")));
StringFax=Util.SoNumero(request.getParameter("TelFax"));
if(dddFax!=0&&Fax!=""){
telefone.add(newTelefone(dddFax,Fax,pessoa));
}
}catch(ExceptioneFax){
}
//Endereosdapessoa
ArrayList<Endereco>end=newArrayList<Endereco>();
Enderecoendereco=newEndereco();
Stringlogradouro="";
Stringnumero="";

BenefrancisdoNascimento 128
SISTEMAWEB

Stringcomplemento="";
Stringbairro="";
Stringcep="";
Stringcidade="";
Stringuf="";
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==""){
thrownewRuntimeException("Oendereodeveconter"+
"logradouro,nmero,Bairro,"+
"Cidade,EstadoeCEP");
}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);

BenefrancisdoNascimento 129
SISTEMAWEB

}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Logradouroumcampoobrigatrio");
}
//Salvandoapessoaetodososseuarelacionamentosembancodedados
//AdicionandoaPessoa
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><fontface='verdana'color='blue'size='2'>Utilizadorcadastradocom
sucesso</font></center>");
out.print("<br>");
out.print("<br>");
out.print("<br>");
}else{//Seopfordiferentede1
%>

</td>
</tr>
<tr>
<tdwidth="162"class="Txt">Tipo</td>
<tdwidth="436"class="Txt">
<selectname="Tipo"id="Tipo"
onChange="showCampo(document.forms[0][this.name].options[document.forms[0][this.name].selecte

BenefrancisdoNascimento 130
SISTEMAWEB

dIndex].value,'campo_hidden');">
<optionvalue="0">Selecione</option>
<optionvalue="PJ">PJ</option>
<optionvalue="PF">PF</option>
</select>
</td>
</tr>
<trid="campo_hiddenPJ"style="display:none">
<tdheight="104"colspan="2"valign="top">

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0">
<!DWLayoutTable>
<tr>
<tdheight="1"colspan="2"valign="top"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>PESSOAJURDICA
</strong></td>
</tr>
<tr>
<tdwidth="23%"height="27"valign="top"class="Txt">RAZOSOCIAL</td>
<tdwidth="77%"valign="top"class="Txt"><inputname="razao"type="text"
id="razao"size="50"maxlength="100">
<spanclass="style1">*</span></td>
</tr>

<tr>
<tdheight="27"valign="top"class="Txt">CNPJ</td>
<tdvalign="top"class="Txt"><inputname="CNPJ"type="text"id="CNPJ"
OnKeyPress="formatar(this,'##.###.###/######')"onKeyUp="javascript:Sonumero(this)"size="24"
maxLength="18">

BenefrancisdoNascimento 131
SISTEMAWEB

+</td>
</tr>
</table>
</td>

</tr>

<trid="campo_hiddenPF"style="display:none">
<tdheight="104"colspan="2"valign="top">

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0">
<!DWLayoutTable>
<tr>
<tdheight="1"colspan="2"valign="top"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>PESSOAF&Iacute;SICA
</strong></td>
</tr>
<tr>
<tdwidth="20%"valign="top"class="Txt">NomeCompleto</td>
<tdwidth="80%"valign="top"class="Txt"><inputname="Nome"type="text"
id="Nome"size="50"maxlength="100">
<spanclass="style1">*</span></td>
</tr>

<tr>
<tdwidth="25%"valign="top"class="Txt">CPF</td>
<tdwidth="75%"valign="top"class="Txt"><inputname="CPF"type="text"id="CPF"
OnKeyPress="formatar(this,'###.###.#####')"onKeyUp="javascript:Sonumero(this)"size=17
maxlength="14">

BenefrancisdoNascimento 132
SISTEMAWEB

+</td>
</tr>
</table>
</td>

</tr>
<tr>
<tdid="contato"height="104"colspan="2"valign="top">

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0">
<!DWLayoutTable>

<tr>
<tdcolspan="2"><hrsize="1"></td>
<td></td>
</tr>
<tr>
<tdcolspan="2"class="Txt"><strong>USUARIODOSISTEMA</strong></td>
<td></td>
</tr>

<tr>
<tdwidth="162"height="27"valign="top"class="Txt">Email</td>
<tdwidth="436"valign="top"class="Txt"><inputname="email"type="text"
id="email"size="50"maxlength="200">
<spanclass="style1">*</span></td>
</tr>
<tr>
<tdwidth="162"height="27"valign="top"class="Txt">Senha</td>
<tdwidth="436"valign="top"class="Txt"><inputname="senha"type="text"

BenefrancisdoNascimento 133
SISTEMAWEB

id="senha"size="50"maxlength="200">
<spanclass="style1">*</span></td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
<td></td>
</tr>
<tr>
<tdcolspan="2"class="Txt"><strong>CONTATO</strong></td>
<td></td>
</tr>

<tr>
<tdclass="Txt">Telelefone</td>
<tdclass="Txt">(<inputname="TelDDD"type="text"id="TelDDD"
onKeyUp="javascript:Sonumero(this)"size="2"maxlength="2">)<inputname="Tel"type="text"id="Tel"
OnKeyPress="formatar(this,'########')"onKeyUp="javascript:Sonumero(this)"size="12"
maxlength="10"></td>
<td></td>
</tr>
<tr>
<tdclass="Txt">Celular</td>
<tdclass="Txt">(<inputname="TelCelDDD"type="text"
onKeyUp="javascript:Sonumero(this)"size="2"maxlength="2">)<inputname="TelCel"type="text"
OnKeyPress="formatar(this,'########')"onKeyUp="javascript:Sonumero(this)"size="12"
maxlength="10"></td>
<td></td>
</tr>
<tr>
<tdclass="Txt">Fax</td>
<tdclass="Txt">(<inputname="TelFaxDDD"type="text"
onKeyUp="javascript:Sonumero(this)"size="2"maxlength="2">)<inputname="TelFax"type="text"
OnKeyPress="formatar(this,'########')"onKeyUp="javascript:Sonumero(this)"size="12"

BenefrancisdoNascimento 134
SISTEMAWEB

maxlength="10"></td>
<td></td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
<td></td>
</tr>
<tr>
<tdcolspan="2"class="Txt"><strong>ENDERE&Ccedil;O</strong></td>
<td></td>
</tr>
<tr>
<tdclass="Txt">LOGRADOURO</td>
<tdclass="Txt"><inputname="logradouro"type="text"size="50"
maxlength="50"></td>
<td></td>
</tr>
<tr>
<tdclass="Txt">N</td>
<tdclass="Txt"><inputname="Numero"type="text"size="10"maxlength="10"></td>
<td></td>
</tr>
<tr>
<tdclass="Txt">Complemento</td>
<tdclass="Txt"><inputname="Complemento"type="text"size="30"
maxlength="50"></td>
<td></td>
</tr>
<tr>
<tdclass="Txt">Bairro</td>

BenefrancisdoNascimento 135
SISTEMAWEB

<tdclass="Txt"><inputname="Bairro"type="text"size="30"maxlength="50"></td>
<td></td>
</tr>
<tr>
<tdclass="Txt">Cidade</td>
<tdclass="Txt"><inputname="Cidade"type="text"size="30"maxlength="50"></td>
<td></td>
</tr>
<trid="estados">
<tdclass="Txt">Estado</td>
<tdclass="Txt">
<selectname="uf">
<optionvalue="">Selecione</option>
<optionvalue="AC">AC</option>
<optionvalue="AL">AL</option>
<optionvalue="AP">AP</option>
<optionvalue="AM">AM</option>
<optionvalue="BA">BA</option>
<optionvalue="CE">CE</option>
<optionvalue="DF">DF</option>
<optionvalue="ES">ES</option>
<optionvalue="GO">GO</option>
<optionvalue="MA">MA</option>
<optionvalue="MT">MT</option>
<optionvalue="MS">MS</option>
<optionvalue="MG">MG</option>
<optionvalue="PA">PA</option>
<optionvalue="PB">PB</option>
<optionvalue="PR">PR</option>

BenefrancisdoNascimento 136
SISTEMAWEB

<optionvalue="PE">PE</option>
<optionvalue="PI">PI</option>
<optionvalue="RJ">RJ</option>
<optionvalue="RN">RN</option>
<optionvalue="RS">RS</option>
<optionvalue="RO">RO</option>
<optionvalue="RR">RR</option>
<optionvalue="SC">SC</option>
<optionvalue="SP">SP</option>
<optionvalue="SE">SE</option>
<optionvalue="TO">TO</option>
</select></td>
<td></td>
</tr>
<tr>
<tdclass="Txt">CEP</td>
<tdclass="Txt">
<inputname="CEP"type="text"OnKeyPress="formatar(this,'########')"
onKeyUp="javascript:Sonumero(this)"size="12"maxlength="9">

+</td>

<td></td>
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
<td></td>
</tr>
<tr><td>&nbsp;</td></tr>

BenefrancisdoNascimento 137
SISTEMAWEB

<tr>
<tdclass="Txt"width="20">&nbsp;</td>
<tdclass="Txt"width="80"align="left">
<inputtype="hidden"name="op"value="1"/>
<inputtype="button"name="Btn_Entrar"value="Cadastrar"
onClick="Validar(document.Formulario);">
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<%}
}catch(Exceptione){
out.print("<br>");
out.print("<center><fontface='verdana'color='red'size='2'>"
+"ErroaocadastrarUtilizador</font></center>");
out.print(e.getMessage());
}
%>
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</form>
</body>
</html>
Figura98Cdigofontedoarquivopessoa.jspdodiretriocadastros

Layout da pgina de cadastramento de pessoa

BenefrancisdoNascimento 138
SISTEMAWEB

Abaixoolayoutdapginadecadastramentodepessoa.

Figura99Layoutdapginadecadastramentodepessoa

Animal.jsp

Paracadastrarumanimalousuriodeverprimeiroselecionarodonodoanimaleemseguida
pressionarobotoprosseguir.Emseguidadigitarosdadosdoanimaleporfimpressionaro
botocadastrar.

Elementos do formulrio
Abaixoseguealistadoselementosesuaspropriedades:

BenefrancisdoNascimento 139
SISTEMAWEB

Tabela3Elementosdoformulrioparacadastramentodeanimal

ndice

Id

Nome

idPessoa

Tipo

Valor

Tamanho Tamanho
mximo

tipoAnimal tipoAnimal

select

nome

nome

text

50

100

raca

raca

text

24

50

dataNascimento

text

11

10

sexo

sexo

select

observacao

textarea

op

hidden

Btn_Entrar

button

Cadastrar

hidden

Codificaremosagoraapginaparacadastramentodeanimais.

BenefrancisdoNascimento 140
SISTEMAWEB

<%
Document:animal.jsp
Createdon:22/11/2010,16:35:56

%>

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ListIterator"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.Collection"%>
<%@pageimport="java.util.Date"%>

<%
//Operaes:
//0=nenhuma.Nestecasoexibiremosoformulriopedindoparaselecionaro
//donodoanimal.Apsselecionadosubmitserexecutado.
//1=buscarosanimaisdodono:
//1a)Mostraremososdadosdodono(apagaremosocomboboxdelistagemdedonos);
//1b)Aguardamosqueousurioescolhaoanimal.Apsselecionadosubmitser
executado.
//2=registraremososervioexecutado.

//Iniciandoavarivelop

BenefrancisdoNascimento 141
SISTEMAWEB

intop=0;
//verificandoavarivelopenviadapeloformulrio:
try{
op=Integer.parseInt(Util.SoNumero(request.getParameter("op")));
}catch(Exceptionex){
ex.printStackTrace();
}
List<Pessoa>pList=newArrayList<Pessoa>();
%>

<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<jsp:includepage="../geral/head.jsp"/>
<body>

<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>CADASTRAMENTODE

BenefrancisdoNascimento 142
SISTEMAWEB

ANIMALDEESTIMAO</strong></td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
</td>
</tr>
<%if(op==0){%>
<tr>
<tdcolspan="2">
<formaction="animal.jsp"method="post"name="Formulario">

<tablewidth="750"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdcolspan="2">
<tr>
<tdwidth="162"class="Txt">Donodoanimal</td>
<tdwidth="436"class="Txt">
<selectname="idPessoa">
<optionvalue="0">Selecione</option>
<%
pList=Pessoa.consultar();
for(ListIteratoriter=pList.listIterator();iter.hasNext();){

BenefrancisdoNascimento 143
SISTEMAWEB

Pessoaachei=(Pessoa)iter.next();
%>
<optionvalue="<%out.print(achei.getIdPessoa());%>"><%
out.print(achei.getNome());%></option>
<%
}
%>
</select>
</td>

</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdclass="Txt">&nbsp;</td>
<tdclass="Txt"><inputtype="hidden"name="op"value="1"/>
<inputtype="button"name="Btn_Entrar"value="Prosseguir>>"
onClick="ValidarRegistro1(document.Formulario);">
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>

BenefrancisdoNascimento 144
SISTEMAWEB

</tr>
</table>

</form>

<jsp:includepage="../geral/rodape.jsp"/>

</td>
</tr>
<%}elseif(op==1){%>
<tr>
<tdcolspan="2">
<formaction="animal.jsp"method="post"name="Formulario">

<tablewidth="750"border="0"cellpadding="0"cellspacing="0">
<%
intidPessoa=
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa")));
PessoadonoAnimal=Pessoa.consultar(idPessoa);
%>

<tr>
<tdcolspan="2">
<inputtype="hidden"name="idPessoa"
value="<%out.print(donoAnimal.getIdPessoa());%>"/>
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0">

BenefrancisdoNascimento 145
SISTEMAWEB

<tr>
<tdwidth="20%"class="TopoTit">CLIENTE:</td>
<tdclass="TextoTit"><%out.print(donoAnimal.getNome());%></td>
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"
class="Txt"><strong>ANIMAL</strong></td>
</tr>
<tr>
<tdcolspan="2">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="162"class="Txt">Tipo</td>
<tdwidth="436"class="Txt">
<selectname="tipoAnimal"id="tipoAnimal">
<optionvalue="0">Selecione</option>
<optionvalue="1">Cachorro</option>
<optionvalue="2">Gato</option>
</select>

BenefrancisdoNascimento 146
SISTEMAWEB

</td>
</tr>
<tr>
<tdwidth="162"height="27"valign="top"class="Txt">Nome</td>
<tdwidth="436"valign="top"class="Txt"><inputname="nome"
type="text"id="nome"size="50"maxlength="100">
<spanclass="style1">*</span></td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Raa</td>
<tdvalign="top"class="Txt"><inputname="raca"type="text"
id="raca"size="24"maxLength="50"></td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">DatadeNascimento</td>
<tdvalign="top"class="Txt"><inputname="dataNascimento"
type="text"size="11"maxLength="10"OnKeyPress="formatar(this,'##/##/####')"
onKeyUp="javascript:Sonumero(this)"></td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Sexo</td>
<tdvalign="top"class="Txt">
<selectname="sexo"id="sexo">
<optionvalue="0">Selecione</option>
<optionvalue="M">Macho</option>
<optionvalue="F">Femea</option>
</select>

BenefrancisdoNascimento 147
SISTEMAWEB

<td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Observacao</td>
<tdvalign="top"class="Txt">
<textareaname="observacao"rows="4"cols="50"></textarea>
<td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdclass="Txt"width="23%">&nbsp;</td>
<tdclass="Txt"width="77%">
<inputtype="hidden"name="op"value="2"/>
<inputtype="button"name="Btn_Entrar"value="Cadastrar"
onClick="ValidarAnimal(document.Formulario);">
</td>
</tr>
<tr>

BenefrancisdoNascimento 148
SISTEMAWEB

<tdcolspan="2">&nbsp;</td>
</tr>
</table>
<jsp:includepage="../geral/rodape.jsp"/>

</form>
</td>
</tr>
<%}elseif(op==2){%>
<tr>
<tdcolspan="2">
<%

//Declarandovariveis
//Pessoa
Pessoapessoa=null;
intidPessoa=0;

//Animal
Animalanimal=null;
inttipoAnimal=0;
Stringnome=null;
Stringraca=null;
StringdataNascimento=null;
Stringsexo=null;

BenefrancisdoNascimento 149
SISTEMAWEB

Stringobservacao=null;

//Tipo,nome,datadenascimentoesexosoobrigatrios
try{
try{
idPessoa=
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa")));
pessoa=Pessoa.consultar(idPessoa);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("ErroaoconstruiroObjetopessoa");
}

try{
tipoAnimal=
Integer.parseInt(Util.SoNumero(request.getParameter("tipoAnimal")));
if(tipoAnimal==1){
animal=newCachorro();
}elseif(tipoAnimal==2){
animal=newGato();
}else{
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>SelecioneoTipodoanimal</font></center><br>");
}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'

BenefrancisdoNascimento 150
SISTEMAWEB

color='red'size='2'><br/>Erroaopegarotipodoanimal</font></center><br>");
}

try{
nome=request.getParameter("nome");
if(nome==null||nome==""||nome=="0"){
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Informeonomedoanimal</font></center><br>");
}else{
animal.setNome(nome);
}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Erroaopegaronomedoanimal</font></center><br>");
}

try{
raca=request.getParameter("raca");
animal.setRaca(raca);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Erroaocapturararaadoanimal</font></center><br>");

BenefrancisdoNascimento 151
SISTEMAWEB

try{
dataNascimento=request.getParameter("dataNascimento");

//validardataeconstruirumobjetoDate()casoadatasejavlida
if(dataNascimento==null||dataNascimento==""||dataNascimento==
"0"){
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Informeadatadenascimentodoanimal</font></center><br>");
}elseif(Util.validarData(dataNascimento)!=true){
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Adatadenascimentodoanimalinvlida</font></center><br>");
}else{
animal.setDataNascimento(newDate(dataNascimento));
}
}catch(Exceptionex){
ex.printStackTrace();
}

try{
sexo=request.getParameter("sexo");
if(sexo==null||sexo==""||sexo=="0"){
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Informeosexodoanimal</font></center><br>");
}else{
animal.setSexo(sexo.charAt(0));
}
}catch(Exceptionex){

BenefrancisdoNascimento 152
SISTEMAWEB

ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Informeosexodoanimal</font></center><br>");

try{
observacao=request.getParameter("observacao");
if(observacao!=""){
animal.setObservacao(observacao);
}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>ErroaopegaroparmetroObservao</font></center><br>");
}
animal.setPessoa(pessoa);
animal.setIdAnimal(1);
//Adicionandoaumalistaosservicosexecutados
ArrayList<Servico>servico=newArrayList<Servico>();
animal.setServico(servico);
//salvando
animal.salvar(animal);
out.print("<br><center><fontface='verdana'color='blue'size='2'><br
/>Animalcadastradocomsucessoemnossobancodedados</font></center><br><br><br>");
}catch(Exceptionex){
ex.printStackTrace();

BenefrancisdoNascimento 153
SISTEMAWEB

out.print("<br>");
out.print("<br>");
out.print("<br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br/>Erro
aocadastraroanimal</font></center><br>");
out.print(ex.getMessage());
out.print("<br>");
out.print("<br>");
}
%>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
<tr>
<%}//fimdoifdeop%>
</table>

</body>
</html>
Figura100cdigofontedapginaparacadastramentodeanimais

BenefrancisdoNascimento 154
SISTEMAWEB

Layout da pgina para registro de animal


Figura101Layoutdapginapararegistrodeanimal

BenefrancisdoNascimento 155
SISTEMAWEB

Codificando arquivos do diretrio servios

BenefrancisdoNascimento 156
SISTEMAWEB

Introduo

Nestediretrioteremosapenasumarquivo;Oregistra.jspqueseroresponsvelpelo
cadastramentodeserviosrealizadosnoanimal.

registrar.jsp

Pararegistrarumservio,sernecessrioselecionarumapessoa,eemseguidaoanimaldesta
pessoa,paraquesejaabertooformulriocomoscamposparacadastramentodoservio.

Ateladeverpossuirumformulrio.Vejaatag:
<formaction="registrar.jsp"method="post"name="Formulario">
<!Incluiroselementosdoformulrioaqui>
</form>

Elementos do formulrio para registro de servio



Tabela4Elementosdoformulriopararegistrodeservio

ndice

Id

Nome

Valor

Tamanho

Tamanho
mximo

servico servico

select

nome

nome

text

50

100

valor

text

11

10

observacao

textarea

op

hidden

idAnimal

hidden

Btn_Entrar

button

Cadastrar

idPessoa

Tipo

hidden

BenefrancisdoNascimento 157
SISTEMAWEB

Codificaremos agora a pgina para registro de servio.


<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.Date"%>
<%@pageimport="java.util.ListIterator"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.Collection"%>
<%@pageimport="java.util.Date"%>
<%
//Operaes:
//0=nenhuma.Nestecasoexibiremosoformulriopedindoparaselecionarodonodo
animal.Apsselecionadosubmitserexecutado.
//1=buscarosanimaisdodono:
//1a)Mostraremososdadosdodono(apagaremosocomboboxdelistagemdedonos);
//1b)Aguardamosqueousurioescolhaoanimal.Apsselecionadosubmitser
executado.
//2=registraremososervioexecutado.

//Iniciandoavarivelop
intop=0;
//verificandoavarivelopenviadapeloformulrio:
try{
op=Integer.parseInt(Util.SoNumero(request.getParameter("op")));
}catch(Exceptionex){

BenefrancisdoNascimento 158
SISTEMAWEB

ex.printStackTrace();
}

List<Pessoa>pList=newArrayList<Pessoa>();

List<Animal>aList=newArrayList<Animal>();

//Servio
intservicoEscolhido=0;
Servicoservico=null;
Stringnome=null;

%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>

BenefrancisdoNascimento 159
SISTEMAWEB

<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>CADASTRAMENTODE
SERVIOSNOANIMAL</strong></td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
</td>
</tr>
<%if(op==0){%>
<tr>
<tdcolspan="2">
<formaction="registrar.jsp"method="post"name="Formulario">
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<tr>
<tdwidth="162"class="Txt">Donodoanimal</td>
<tdwidth="436"class="Txt">
<selectname="idPessoa">
<optionvalue="0">Selecione</option>
<%
pList=Pessoa.consultar();
for(ListIteratoriter=pList.listIterator();iter.hasNext();){

BenefrancisdoNascimento 160
SISTEMAWEB

Pessoaachei=(Pessoa)iter.next();
%>
<optionvalue="<%out.print(achei.getIdPessoa());%>"><%
out.print(achei.getNome());%></option>
<%
}
%>
</select>
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdclass="Txt">&nbsp;</td>
<tdclass="Txt"><inputtype="hidden"name="op"value="1"/>
<inputtype="button"name="Btn_Entrar"value="Prosseguir>>"
onClick="ValidarRegistro1(document.Formulario);">
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>

BenefrancisdoNascimento 161
SISTEMAWEB

</tr>
</table>
</form>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
<%}elseif(op==1){%>
<tr>
<tdcolspan="2">
<formaction="registrar.jsp"method="post"name="Formulario">
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<%
intidPessoa=
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa")));
PessoadonoAnimal=Pessoa.consultar(idPessoa);
%>
<tr>
<tdcolspan="2">
<inputtype="hidden"name="idPessoa"
value="<%out.print(donoAnimal.getIdPessoa());%>"/>
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdwidth="20%"class="TopoTit">CLIENTE:</td>
<tdclass="TextoTit"><%out.print(donoAnimal.getNome());%></td>
</tr>
</table>

BenefrancisdoNascimento 162
SISTEMAWEB

</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
<tr>
<tdwidth="162"class="Txt">ANIMALDEESTIMAO</td>
<tdwidth="436"class="Txt">
<selectname="idAnimal">
<optionvalue="0">Selecione</option>
<%
aList=(ArrayList<Animal>)Animal.consultar(donoAnimal);
for(ListIteratoriter=aList.listIterator();iter.hasNext();){
AnimalacheiAnimal=(Animal)iter.next();
%>
<optionvalue="<%out.print(acheiAnimal.getIdAnimal());%>"><%
out.print(acheiAnimal.getNome());%></option>
<%
}
%>
</select>
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>

BenefrancisdoNascimento 163
SISTEMAWEB

<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdclass="Txt">&nbsp;</td>
<tdclass="Txt">
<inputtype="hidden"name="op"value="2"/>
<inputtype="button"name="Btn_Entrar"value="Prosseguir>>"
onClick="ValidarRegistro2(document.Formulario);">
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>

</tr>
</table>
<jsp:includepage="../geral/rodape.jsp"/>

</form>

</td>
</tr>
<%}elseif(op==2){%>

<tr>
<tdheight="104"colspan="2"valign="top">
<formaction="registrar.jsp"method="post"name="Formulario">

BenefrancisdoNascimento 164
SISTEMAWEB

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<!DWLayoutTable>
<%
intidPessoa=
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa")));
PessoadonoAnimal=Pessoa.consultar(idPessoa);

intidAnimal=
Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal")));
Animalanimal=Animal.consultar(idAnimal);
%>
<tr>
<tdcolspan="2">
<inputtype="hidden"name="idPessoa"
value="<%out.print(donoAnimal.getIdPessoa());%>"/>
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="20%"class="TopoTit">CLIENTE:</td>
<tdclass="TextoTit"><%out.print(donoAnimal.getNome());%></td>
</tr>
<tr>
<tdwidth="20%"class="TopoTit">ANIMALDEESTIMAO:</td>
<tdclass="TextoTit"><%out.print(animal.getNome());%></td>
</tr>
</table>

BenefrancisdoNascimento 165
SISTEMAWEB

</td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>SERVIO
EXECUTADO</strong></td>
</tr>
<tr>
<tdcolspan="2">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="165"class="Txt">Servio</td>
<tdwidth="581"class="Txt">
<selectname="servico"id="servico">
<optionvalue="0">Selecione</option>
<optionvalue="1">ConsultaVeterinria</option>
<optionvalue="2">Banho</option>
<optionvalue="3">Tosa</option>
<optionvalue="4">Vacina</option>
</select>
</td>
</tr>
<tr>
<tdwidth="165"height="27"valign="top"class="Txt">Nome/

BenefrancisdoNascimento 166
SISTEMAWEB

Descrio</td>
<tdwidth="581"valign="top"class="Txt">
<inputname="nome"type="text"id="nome"size="50"
maxlength="100">
<spanclass="style1">*</span></td>
</tr>

<tr>
<tdheight="27"valign="top"class="Txt">ValorR$</td>
<tdvalign="top"class="Txt">
<inputname="valor"type="text"size="11"maxLength="10"
onKeyUp="javascript:Sonumero(this)">
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Observacao</td>
<tdvalign="top"class="Txt">
<textareaname="observacao"rows="4"cols="50"></textarea>
<tdwidth="10">
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
</table>
</td>
</tr>

BenefrancisdoNascimento 167
SISTEMAWEB

<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdclass="Txt"width="23%">&nbsp;</td>
<tdclass="Txt"width="77%">
<inputtype="hidden"name="op"value="3"/>
<inputtype="hidden"name="idAnimal"value="<%
out.print(Util.SoNumero(request.getParameter("idAnimal")));%>"/>
<inputtype="button"name="Btn_Entrar"value="Cadastrar"
onClick="ValidarRegistro(document.Formulario);">
</td>
</tr>

</table>
</form>
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>

BenefrancisdoNascimento 168
SISTEMAWEB

<%}elseif(op==3){%>
<tr>
<tdcolspan="2">
<%
try{
Animalanimal=null;
try{
//Cadastraremososervioexecutadonoanimaldeestimaodeumapessoa
//BuscandoAnimal
intidAnimal=
Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal")));
animal=Animal.consultar(idAnimal);
if(animal==null){
thrownewRuntimeException("Erronabuscadosdadosdoanimal.");
}
//Criandoumobjetoservioconformeoservioescolhido:
try{
servicoEscolhido=
Integer.parseInt(Util.SoNumero(request.getParameter("servico")));
switch(servicoEscolhido){
case1:
servico=newBanho();
break;
case2:
servico=newConsulta();
break;

BenefrancisdoNascimento 169
SISTEMAWEB

case3:
servico=newTosa();
break;
case4:
servico=newVacina();
break;
default:
thrownewRuntimeException("Servioinvlido!Favorselecionaro
servioexecutado.");
}
}catch(Exceptionex){
}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Erroaopegaronomedoservioefetuado</font></center><br>");
}
doublevalor=0;
try{
valor=Double.parseDouble(request.getParameter("valor"));
servico.setValor(valor);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Informecorretamenteovalordoservio
executado</font></center><br>");
}

BenefrancisdoNascimento 170
SISTEMAWEB

Stringdescricao=null;
try{
descricao=request.getParameter("nome");
servico.setDescricao(descricao);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Erroaopegaronome/descriodoservio
efetuado</font></center><br>");
}
Stringobservacao=null;
try{
observacao=request.getParameter("observacao");
servico.setObservacao(observacao);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("<br><center><fontface='verdana'
color='red'size='2'><br/>Erroaopegarobservaoreferenteaoservio
efetuado</font></center><br>");
}
//Adicionandooanimal
servico.setAnimal(animal);
servico.setData(newDate());
//salvando
servico.salvar(servico);
out.print("<br>");
out.print("<br>");

BenefrancisdoNascimento 171
SISTEMAWEB

out.print("<br>");
out.print("<br><center><fontface='verdana'color='blue'size='2'><br
/>Serviocadastradocomsucesso</font></center><br>");
out.print("<br>");
out.print("<br>");
}catch(Exceptionex){
ex.printStackTrace();
out.print("<br>");
out.print("<br>");
out.print("<br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br/>Erro
aocadastraroservioexecutado</font></center><br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br/>"+
ex.getMessage()+"</font></center><br>");
out.print("<br>");
out.print("<br>");
}
%>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
<%}//fimdoifdeop%>
</table>
</body>
</html>
Figura102Cdigofontedapginapararegistrodeservio

BenefrancisdoNascimento 172
SISTEMAWEB

Layout da pagina para registro de servio

Figura103Layoutdapaginapararegistrodeservio

BenefrancisdoNascimento 173
SISTEMAWEB

Codificando arquivos do diretrio consultas

BenefrancisdoNascimento 174
SISTEMAWEB

Introduo

NestediretrioteremostelasparaconsultadePessoas,animaiseservios.Norelatriodas
consultasteroopesparadetalhar,editar,excluireetc.Soarquivosdestediretrio:
Tabela5Arquivosdodiretrioconsultas

NOME

DESCRIO

pessoa.jsp

Retornatodasaspessoascadastradasno
sistema.Apresentalinkparacadastrarum
novoanimalparaumapessoa,visualizaros
dadosdapessoa,editarosdadosdapessoa
ouexcluirapessoa.

animal.jsp

Retornaosanimaiscadastradosparauma
pessoaselecionadaoutodososanimais
registrados.Apresentalinkparaincluirnovo
servioparaoanimal,visualizarosdados
desteanimal,editarosdadosdoanimalou
excluiroanimal.

servico.jsp

Retornatodososserviosrealizados.
Apresentalinkparavisualizarosdadosdo
serviorealizado,editaroservioouexcluiro
servio.

detalhe_pessoa.jsp

Exibetodasasinformaesdeumapessoa.

detalhe_animal.jsp

Exibetodasasinformaesdeumanimal.

detalhe_servico.jsp

Exibetodasasinformaesdeumservio
realizado.

editar_pessoa.jsp

Permitealterarosdadosdeumapessoa

editar_animal.jsp

Permitealterarosdadosdeumanimal.

editar_servico.jsp

Permitealterarosdadosdeumservio
realizado.

excluir_pessoa.jsp

Permiteexcluirumapessoadosistema.

excluir_animal.jsp

Permiteexcluirumanimaldosistema.

BenefrancisdoNascimento 175
SISTEMAWEB

excluir_servio.jsp

Permiteexcluirumserviorealizadoemum
animalcadastradonosistema.

Pessoa.jsp

Apginapessoa.jspdodiretrioconsultaslistatodasaspessoascadastradasnosistema.Veja
abaixoocdigofonte.
<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.Date"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ListIterator"%>
<%
//Iniciandovariavelquereceberalistadepessoas
List<Pessoa>pList=newArrayList<Pessoa>();
%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>

BenefrancisdoNascimento 176
SISTEMAWEB

</td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"
class="Txt"><strong>PESSOAS</strong></td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
</td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>
<tr>
<tdcolspan="2">
<tableborder="0"width="100%">
<thead>
<trclass="TopoTit">
<th>NOME</th>
<th>TELEFONES</th>
<th>EMAIL</th>
<th>ANIMAIS</th>
<th>AES</th>

BenefrancisdoNascimento 177
SISTEMAWEB

</tr>
</thead>
<tbody>
<%
pList=Pessoa.consultar();
for(ListIteratoriter=pList.listIterator();iter.hasNext();){
Pessoaachei=(Pessoa)iter.next();
%>
<tr>
<tdalign="left"class="Txt"><%out.print(achei.getNome());%></td>

<tdalign="left"class="Txt">
<%
List<Telefone>telefones=(List<Telefone>)Telefone.consultar(achei);
for(inti=0;i<=telefones.size();i++){
try{
out.print(telefones.get(i).getDdd());
out.print("");
out.print(telefones.get(i).getNumero()+"&nbsp;&nbsp;");
}catch(Exceptione){
}
}
%>
</td>
<tdalign="left"class="Txt"><%out.print(achei.getEmail());%></td>

BenefrancisdoNascimento 178
SISTEMAWEB

<tdalign="center"class="Txt">
<%
List<Animal>animais=(ArrayList<Animal>)Animal.consultar(achei);

out.print(animais.size());

%>
</td>
<tdclass="Txt"align="center">
<tableborder="0"align="center"cellpadding="2"cellspacing="2"
width="100%">
<tralign="center"valign="middle">
<td>
<a
href="../cadastros/animal.jsp?op=1&amp;idPessoa=<%out.print(achei.getIdPessoa());%>">
<imgsrc="../images/img_gato.png"width="30"height="30"
alt="Inseriranimaldeestimao"title="Inseriranimaldeestimao"border="0"/>
</a>
</td>
<td>
<a
href="../consultas/detalhe_pessoa.jsp?idPessoa=<%out.print(achei.getIdPessoa());%>">
<imgsrc="../images/img_lupa_transparente.png"width="30"
height="30"alt="consultar"title="consultar"border="0"/>
</a>
</td>
<td>
<a

BenefrancisdoNascimento 179
SISTEMAWEB

href="../consultas/editar_pessoa.jsp?op=2&amp;idPessoa=<%out.print(achei.getIdPessoa());%
>">
<imgsrc="../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());%>">
<imgsrc="../images/img_lixeira_transparente.png"width="30"
height="30"border="0"alt="excluir"title="excluir"/>
</a>
</td>
</tr>
</table>
</td>
</tr>
<%}%>
</tbody>
</table>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</body>
</html>

BenefrancisdoNascimento 180
SISTEMAWEB

Layout da pgina de consulta de pessoas

Abaixoolayoutdapginadeconsultadepessoas.

Figure4Layoutdapginadeconsultadepessoas


Editar_pessoa.jsp
Vejaocdigodapaginaeditar_pessoa.jsp

BenefrancisdoNascimento 181
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.ListIterator"%>
<%@pageimport="java.util.Collection"%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<formaction="editar_pessoa.jsp"method="post"name="Formulario">
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdcolspan="2">
<%
//iniciandovariveis:
intop=0;
Stringtipo=null;

BenefrancisdoNascimento 182
SISTEMAWEB

intidPessoa=0;
Pessoap=null;
Stringnome="";
Stringrazao="";
StringdocReceita="";
intdddTel=0;
StringTel="";
intdddCel=0;
StringCel="";
intdddFax=0;
StringFax="";

try{
if(!request.getParameter("op").isEmpty()){
op=Integer.parseInt(request.getParameter("op"));
}
}catch(Exceptionex){
thrownewRuntimeException("<center><fontface='verdana'color='red'
size='2'>Erroaotentarlocalizardadosdapessoa.<br/>Verifiqueosdadosetente
novamente</font></center>");
}

try{
idPessoa=Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa")));
}catch(Exceptione){
thrownewRuntimeException("<center><fontface='verdana'color='red'
size='2'>Erroaotentarlocalizardadosdapessoa.<br/>Verifiqueosdadosetente

BenefrancisdoNascimento 183
SISTEMAWEB

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

p=newPF().consultar(idPessoa);
try{
if(op==1){
try{
idPessoa=Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa")));
}catch(Exceptione){
thrownewRuntimeException("<center><fontface='verdana'color='red'
size='2'>Erroaotentarlocalizardadosdapessoa.<br/>Verifiqueosdadosetente
novamente</font></center>");
}
try{
tipo=request.getParameter("Tipo");
}catch(Exceptionex){
}
if(tipo=="PJ"){

p=newPJ().consultar(idPessoa);
try{
nome=request.getParameter("razao");
docReceita=request.getParameter("CNPJ");
docReceita=Util.SoNumero(docReceita);
//Criandoumapessoajuridica
}catch(Exceptionex){
thrownewRuntimeException("<center><fontface='verdana'color='red'

BenefrancisdoNascimento 184
SISTEMAWEB

size='2'>ErroaocadastrarUtilizador.<br/>VerifiqueosdadosdePessoaJurdicatente
novamente</font></center>");
}
}else{

p=newPF().consultar(idPessoa);

try{
nome=request.getParameter("Nome");
docReceita=request.getParameter("CPF");
docReceita=Util.SoNumero(docReceita);
}catch(Exceptionex){
thrownewRuntimeException("<center><fontface='verdana'color='red'
size='2'>ErroaocadastrarUtilizador.<br/>VerifiqueosdadosdePessoafsicatente
novamente</font></center>");
}
}
//Endereodapessoa
Enderecoendereco=newEndereco();
Stringlogradouro="";
Stringnumero="";
Stringcomplemento="";
Stringbairro="";
Stringcep="";
Stringcidade="";
Stringuf="";

BenefrancisdoNascimento 185
SISTEMAWEB

//Endereo
List<Endereco>novoEndereco=newArrayList<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==""){
thrownewRuntimeException("Oendereodeveconterlogradouro,nmero,
Bairro,Cidade,EstadoeCEP");
}else{
endereco.setLogradouro(logradouro);
endereco.setBairro(bairro);
endereco.setCep(cep);
endereco.setCidade(cidade);
endereco.setComplemento(complemento);
endereco.setNumero(numero);
endereco.setUf(uf);
}
}catch(Exceptionex){
thrownewRuntimeException("Logradouroumcampoobrigatrio");
}

BenefrancisdoNascimento 186
SISTEMAWEB

//Telefones
ArrayList<Telefone>telefone=newArrayList<Telefone>();
try{
dddTel=Integer.parseInt(Util.SoNumero(request.getParameter("TelDDD")));
Tel=Util.SoNumeroTel(request.getParameter("Tel"));
}catch(ExceptioneTel){
}
try{
dddCel=
Integer.parseInt(Util.SoNumero(request.getParameter("TelCelDDD")));
Cel=Util.SoNumeroTel(request.getParameter("TelCel"));
}catch(ExceptioneCel){
}
try{
dddFax=
Integer.parseInt(Util.SoNumero(request.getParameter("TelFaxDDD")));
Fax=Util.SoNumeroTel(request.getParameter("TelFax"));
}catch(ExceptioneFax){
}

if(dddTel!=0&&Tel!=""){
telefone.add(newTelefone(dddTel,Tel,p));
}

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

BenefrancisdoNascimento 187
SISTEMAWEB

telefone.add(newTelefone(dddCel,Cel,p));
}

if(dddFax!=0&&Fax!=""){
telefone.add(newTelefone(dddFax,Fax,p));
}

//Excluindoendereoanterior
List<Endereco>end=endereco.consultar(p);
for(inti=0;i<end.size();i++){
Endereco.excluir(end.get(i));
}

//ExcluindoTelefonesanteriores
List<Telefone>tel=(List<Telefone>)Telefone.consultar(p);
for(inti=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);

BenefrancisdoNascimento 188
SISTEMAWEB

out.print("<br>");
out.print("<br>");
out.print("<br>");
out.print("<center><fontface='verdana'color='blue'size='2'>Utilizador
cadastradocomsucesso</font></center>");
out.print("<br>");
out.print("<br>");
out.print("<br>");

}elseif(op==2){

%>
</td>
</tr>
<tr>
<tdwidth="162"class="Txt">Tipo</td>
<tdwidth="436"class="Txt">
<selectname="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>

BenefrancisdoNascimento 189
SISTEMAWEB

<trid="campo_hiddenPJ"style<%if(p.getTipo()==2){%>="display:''"<%}else{%>
="display:none"<%}%>>
<tdheight="104"colspan="2"valign="top">

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"align="center">
<!DWLayoutTable>
<tr>
<tdheight="1"colspan="2"valign="top"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>PESSOA
JURDICA</strong></td>
</tr>
<tr>
<tdwidth="162"height="27"valign="top"class="Txt">RAZOSOCIAL</td>
<tdwidth="436"valign="top"class="Txt"><inputname="razao"value="<%if
(p.getTipo()==2){
out.print(p.getNome());
}%>"type="text"id="razao"size="50"
maxlength="100">
<spanclass="style1">*</span></td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">CNPJ</td>
<tdvalign="top"class="Txt">
<inputname="CNPJ"

BenefrancisdoNascimento 190
SISTEMAWEB

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>

<trid="campo_hiddenPF"style<%if(p.getTipo()==1){%>="display:''"<%}else{%>
="display:none"<%}%>>
<tdheight="104"colspan="2"valign="top">

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"align="center">
<!DWLayoutTable>
<tr>
<tdheight="1"colspan="2"valign="top"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>PESSOA
F&Iacute;SICA</strong></td>

BenefrancisdoNascimento 191
SISTEMAWEB

</tr>
<tr>
<tdwidth="162"height="27"valign="top"class="Txt">NomeCompleto
</td>
<tdwidth="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">
<spanclass="style1">*</span></td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">CPF</td>
<tdvalign="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)

BenefrancisdoNascimento 192
SISTEMAWEB

{out.print(p.getDocReceita().getNumero());}%>">
+</td>
</tr>
</table>
</td>

</tr>

<tr>
<tdid="contato"height="104"colspan="2"valign="top">

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"align="center">
<!DWLayoutTable>

<tr>
<tdcolspan="3"><hrsize="1"></td>
<td></td>
</tr>
<tr>
<tdcolspan="3"class="Txt"><strong>TELEFONES</strong></td>
</tr>
<%
List<Telefone>telefones=newArrayList<Telefone>();

BenefrancisdoNascimento 193
SISTEMAWEB

telefones=(List<Telefone>)Telefone.consultar(p);

for(inti=0;i<=2;i++){
if(i==0){
try{
%>
<tr>
<tdclass="Txt">Telefone</td>
<tdcolspan="2"class="Txt">
<%if(telefones.size()>=1){%>
(<inputname="TelDDD"value="<%out.print(telefones.get(i).getDdd());%>"
type="text"id="TelDDD"onKeyUp="javascript:Sonumero(this)"size="2"maxlength="2">)
<inputname="Tel"value="<%out.print(telefones.get(i).getNumero());%>"
type="text"id="Tel"OnKeyPress="formatar(this,'########')"
onKeyUp="javascript:Sonumero(this)"size="12"maxlength="10">
<%}else{%>
(<inputname="TelDDD"type="text"id="TelDDD"
onKeyUp="javascript:Sonumero(this)"size="2"maxlength="2">)
<inputname="Tel"type="text"id="Tel"OnKeyPress="formatar(this,
'########')"onKeyUp="javascript:Sonumero(this)"size="12"maxlength="10">

<%}%>
</td>
</tr>
<%
}catch(Exceptione){
e.printStackTrace();

BenefrancisdoNascimento 194
SISTEMAWEB

}
}
if(i==1){
try{
%>
<tr>
<tdclass="Txt">Telefone</td>
<tdcolspan="2"class="Txt">

<%if(telefones.size()>=2){%>
(<inputname="TelCelDDD"
value="<%out.print(telefones.get(i).getDdd());%>"type="text"
onKeyUp="javascript:Sonumero(this)"size="2"maxlength="2">)
<inputname="TelCel"
value="<%out.print(telefones.get(i).getNumero());%>"type="text"OnKeyPress="formatar(this,
'########')"onKeyUp="javascript:Sonumero(this)"size="12"maxlength="10">

<%}else{%>
(<inputname="TelCelDDD"onKeyUp="javascript:Sonumero(this)"
size="2"maxlength="2">)
<inputname="TelCel"type="text"OnKeyPress="formatar(this,'####
####')"onKeyUp="javascript:Sonumero(this)"size="12"maxlength="10">

<%}%>
</td>
</tr>
<%
}catch(Exceptione){

BenefrancisdoNascimento 195
SISTEMAWEB

e.printStackTrace();
}
}

if(i==2){
try{
%>
<tr>
<tdclass="Txt">Telefone</td>
<tdcolspan="2"class="Txt">
<%if(telefones.size()>=3){%>
(<inputname="TelFaxDDD"
value="<%out.print(telefones.get(i).getDdd());%>"type="text"
onKeyUp="javascript:Sonumero(this)"size="2"maxlength="2">)
<inputname="TelFax"
value="<%out.print(telefones.get(i).getNumero());%>"type="text"OnKeyPress="formatar(this,
'########')"onKeyUp="javascript:Sonumero(this)"size="12"maxlength="10">
<%}else{%>
(<inputname="TelFaxDDD"type="text"
onKeyUp="javascript:Sonumero(this)"size="2"maxlength="2">)
<inputname="TelFax"type="text"OnKeyPress="formatar(this,'####
####')"onKeyUp="javascript:Sonumero(this)"size="12"maxlength="10">
<%}%>
</td>
</tr>
<%
}catch(Exceptione){
e.printStackTrace();

BenefrancisdoNascimento 196
SISTEMAWEB

}
}
}
%>
<tr>
<tdcolspan="3"><hrsize="1"></td>
<td></td>
</tr>
<%
List<Endereco>enderecos=Endereco.consultar(p);

for(ListIteratoriter=enderecos.listIterator();iter.hasNext();){
Enderecoend=(Endereco)iter.next();
%>
<tr>
<tdcolspan="3"class="Txt"><strong>ENDERE&Ccedil;O</strong></td>
</tr>
<tr>
<tdclass="Txt">LOGRADOURO</td>
<tdcolspan="2"class="Txt"><inputname="logradouro"
value="<%out.print(end.getLogradouro());%>"type="text"size="50"maxlength="50"></td>
</tr>
<tr>
<tdclass="Txt">N</td>
<tdcolspan="2"class="Txt"><inputname="Numero"
value="<%out.print(end.getNumero());%>"type="text"size="10"maxlength="10"></td>

BenefrancisdoNascimento 197
SISTEMAWEB

</tr>
<tr>
<tdclass="Txt">Complemento</td>
<tdcolspan="2"class="Txt"><inputname="Complemento"
value="<%out.print(end.getComplemento());%>"type="text"size="30"maxlength="50"></td>
</tr>
<tr>
<tdclass="Txt">Bairro</td>
<tdcolspan="2"class="Txt"><inputname="Bairro"
value="<%out.print(end.getBairro());%>"type="text"size="30"maxlength="50"></td>
</tr>
<tr>
<tdclass="Txt">Cidade</td>
<tdcolspan="2"class="Txt"><inputname="Cidade"
value="<%out.print(end.getCidade());%>"type="text"size="30"maxlength="50"></td>
</tr>

<trid="estados">
<tdclass="Txt">Estado</td>
<tdcolspan="2"class="Txt">
<selectname="uf">
<optionvalue="AC">AC</option>
<optionvalue="AL">AL</option>
<optionvalue="AP">AP</option>
<optionvalue="AM">AM</option>
<optionvalue="BA">BA</option>
<optionvalue="CE">CE</option>

BenefrancisdoNascimento 198
SISTEMAWEB

<optionvalue="DF">DF</option>
<optionvalue="ES">ES</option>
<optionvalue="GO">GO</option>
<optionvalue="MA">MA</option>
<optionvalue="MT">MT</option>
<optionvalue="MS">MS</option>
<optionvalue="MG">MG</option>
<optionvalue="PA">PA</option>
<optionvalue="PB">PB</option>
<optionvalue="PR">PR</option>
<optionvalue="PE">PE</option>
<optionvalue="PI">PI</option>
<optionvalue="RJ">RJ</option>
<optionvalue="RN">RN</option>
<optionvalue="RS">RS</option>
<optionvalue="RO">RO</option>
<optionvalue="RR">RR</option>
<optionvalue="SC">SC</option>
<optionvalue="SP">SP</option>
<optionvalue="SE">SE</option>
<optionvalue="TO">TO</option>
<optionselected="true"
value="<%out.print(end.getUf());%>"><%out.print(end.getUf());%></option>
</select></td>
</tr>
<tr>

BenefrancisdoNascimento 199
SISTEMAWEB

<tdclass="Txt">CEP</td>
<tdcolspan="2"class="Txt">
<inputname="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>
<tdcolspan="2">&nbsp;</td>
<td></td>
</tr>
<tr>
<tdclass="Txt"width="23%">&nbsp;</td>
<tdclass="Txt"width="77%">
<inputtype="hidden"name="op"value="1"/>
<inputtype="hidden"name="idPessoa"value="<%out.print(p.getIdPessoa());%>"
/>
<inputtype="button"name="Btn_Entrar"value="Alterar"
onClick="Validar(document.Formulario);">
</td>
<td>&nbsp;</td>
</tr>
<tr>

BenefrancisdoNascimento 200
SISTEMAWEB

<tdcolspan="2">
<%
}
}catch(Exceptione){
out.print("<br>");
out.print("<center><fontface='verdana'color='red'size='2'>Erroao
cadastrar</font></center>");
out.print("<center><fontface='verdana'color='red'size='2'>"+e.getMessage()+
"</font></center>");
}
%>

</td>
</tr>
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</form>
</body>
</html>
Figure5Cdigofontedapginaeditar_pessoa

BenefrancisdoNascimento 201
SISTEMAWEB

Layout da pgina editar_pessoa.jsp

Abaixoolayoutdapginaeditar_pessoa.jsp

Figure6Layoutdapginaeditar_pessoa.jsp

Excluir_pessoa.jsp
Apginaexcluir_pessoa.jspdodiretrioconsultassolicitaaconfirmaodaexclusodeuma
pessoa,animaiseserviosrelacionadosquelapessoa.Vejaabaixoocdigofonte.

BenefrancisdoNascimento 202
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.ListIterator"%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdcolspan="2">
<%
intop=0;
intidPessoa=0;
Pessoap=null;
try{
if(!request.getParameter("op").isEmpty()){

BenefrancisdoNascimento 203
SISTEMAWEB

op=Integer.parseInt(request.getParameter("op"));
}
}catch(Exceptionex){
ex.printStackTrace();
}
try{
if(!request.getParameter("idPessoa").isEmpty()){
idPessoa=Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa")));
}
}catch(Exceptionex){
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><fontface='verdana'color='blue'size='2'>Registroexcludo
comsucesso</font></center>");
out.print("<br>");
out.print("<br>");
out.print("<br>");
}else{%>
<tableborder="0"width="100%">

BenefrancisdoNascimento 204
SISTEMAWEB

<thead>
<trclass="TextoTit"align="center">
<thcolspan="2"height="50">Estaoperaoexcluir
<%out.print(p.getNome());%>,seusanimaisdeestimaoeserviosrealizadosdosistema.
</th>
</tr>
</thead>
<tbody>
<trclass="TextoTit">
<tdcolspan="2"align="center"height="60">Confirmaaexcluso?</td>
</tr>
<tralign="center">
<tdwidth="50%"align="right"height="150"><form
action="excluir_pessoa.jsp"method="post"name="Formulario"><inputtype="hidden"
name="op"value="1"><inputtype="hidden"name="idPessoa"
value="<%out.print(p.getIdPessoa());%>">&nbsp;<inputtype="submit"name="btn_sim"
value="SIM">&nbsp;</form></td>
<tdwidth="50%"align="left"height="150"><form
action="../consultas/pessoa.jsp"method="post"name="Formulario">&nbsp;<input
type="submit"name="btn_sim"value="NO">&nbsp;</form></td>
</tr>
</tbody>
</table>
<%
}
}catch(Exceptione){
out.print("<br>");
out.print("<center><fontface='verdana'color='red'size='2'>Erroao
excluir</font></center>");

BenefrancisdoNascimento 205
SISTEMAWEB

out.print("<center><fontface='verdana'color='red'size='2'>"+e.getMessage()+
"</font></center>");
}
%>
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</body>
</html>
Figure7cdigofontedapginaexcluir_pessoa.jsp

BenefrancisdoNascimento 206
SISTEMAWEB

Layout da pgina excluir_pessoa.jsp

Abaixo,olayoutdapginaexcluir_pessoa.jsp.

Figure8Layoutdapginaexcluir_pessoa.jsp

Animal.jsp

Apginaanimal.jspdodiretriodeconsultaslistatodososanimaisregistradosnosistema.
Apresentalinkparainserirumservio,detalhar,alterareexcluir.
Abaixo,ocdigofontedapginaanimal.jsp.

BenefrancisdoNascimento 207
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ListIterator"%>
<%@pageimport="java.util.ArrayList"%>
<%
//Listadeanimais
List<Animal>pList=newArrayList<Animal>();
%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"
class="Txt"><strong>ANIMAIS</strong></td>
</tr>
<tr>

BenefrancisdoNascimento 208
SISTEMAWEB

<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
</td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>
<tr>
<tdcolspan="2">
<tableborder="0"width="100%">
<thead>
<trclass="TopoTit">
<th>NOME</th>
<th>NASCIMENTO</th>
<th>TIPO</th>
<th>RAA</th>
<th>QTDSERVIOS</th>
<th>AES</th>
</tr>
</thead>
<tbody>
<%
pList=(List<Animal>)Animal.consultar();

BenefrancisdoNascimento 209
SISTEMAWEB

for(ListIteratoriter=pList.listIterator();iter.hasNext();){
Animalachei=(Animal)iter.next();
%>
<trclass="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>
<tdalign="center">
<%
List<Servico>servicos=(List<Servico>)Servico.consultar(achei);
out.print(servicos.size());
%>
</td>
<tdclass="Txt"align="center">
<%
intidPessoa=achei.getPessoa().getIdPessoa();
%>
<tableborder="0"align="center"cellpadding="2"cellspacing="2"
width="100%">
<tralign="center"valign="middle">
<td>
<a
href="../servicos/registrar.jsp?op=2&amp;idPessoa=<%out.print(idPessoa);%>&amp;idAnimal=
<%out.print(achei.getIdAnimal());%>">
<imgsrc="../images/img_cesto.png"width="30"height="30"

BenefrancisdoNascimento 210
SISTEMAWEB

alt="Incluirservio"title="Incluirservio"border="0"/>
</a>
</td>
<td>
<a
href="../consultas/detalhe_animal.jsp?idAnimal=<%out.print(achei.getIdAnimal());%>">
<imgsrc="../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());%
>">
<imgsrc="../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());%>">

<imgsrc="../images/img_lixeira_transparente.png"width="30"
height="30"alt="excluir"title="excluir"border="0"/>
</a>
</td>
</tr>
</table>

BenefrancisdoNascimento 211
SISTEMAWEB

</td>
</tr>
<%}%>
</tbody>
</table>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</body>
</html>
Figure9cdigofontedapginaanimal.jspdiretrioconsultas

BenefrancisdoNascimento 212
SISTEMAWEB

Layout da pgina animal.jsp

Abaixo,olayoutdapginaanimal.jsp,presentenodiretrioconsultas.

Figure10Layoutdapginaanimal.jsp

detalhe_animal.jsp

Abaixo,ocdigodapginadetalhe_animal.jsppresentenodiretrioconsultas.

BenefrancisdoNascimento 213
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ListIterator"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.Date"%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<formaction="animal.jsp"method="post"name="Formulario">
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>DETALHAMENTO
DOANIMALDEESTIMAO</strong></td>
</tr>
<%
Animalanimal;
intidAnimal=0;

BenefrancisdoNascimento 214
SISTEMAWEB

try{
try{
idAnimal=Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal")));
animal=Animal.consultar(idAnimal);
}catch(Exceptionex){
thrownewRuntimeException("ErroaoconstruiroObjetoanimal");
}
%>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
</td>
</tr>
<%
Pessoapessoa=Pessoa.consultar(animal.getPessoa().getIdPessoa());
%>
<tr>
<tdwidth="20%"class="TopoTit">Donodoanimal</td>
<tdwidth="80%"class="TextoTit">
<%out.print(pessoa.getNome());%>
</td>
</tr>
<tr>

BenefrancisdoNascimento 215
SISTEMAWEB

<tdheight="104"colspan="2"valign="top">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"
class="Txt"><strong>ANIMAL</strong></td>
</tr>
<tr>
<tdcolspan="2">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="162"class="Txt">Tipo</td>
<tdwidth="436"class="Txt">
<%out.print(animal.getDescricao());%>
</td>
</tr>
<tr>
<tdwidth="162"height="27"valign="top"class="Txt">Nome</td>
<tdwidth="436"valign="top"class="Txt">
<%out.print(animal.getNome());%>
</td>
</tr>
<tr>

BenefrancisdoNascimento 216
SISTEMAWEB

<tdheight="27"valign="top"class="Txt">Raa</td>
<tdvalign="top"class="Txt">
<%out.print(animal.getRaca());%>
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">DatadeNascimento</td>
<tdvalign="top"class="Txt">

<%out.print(animal.getDataNascimento().toLocaleString().substring(0,10));%>
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Sexo</td>
<tdvalign="top"class="Txt">
<%out.print(animal.getSexo());%>
<td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Observacao</td>
<tdvalign="top"class="Txt">
<%out.print(animal.getObservacao());%>
<td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>

BenefrancisdoNascimento 217
SISTEMAWEB

</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
</table>
<%}catch(Exceptionex){
ex.printStackTrace();
out.print("<br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br
/>Erroaoconsultaroanimal</font></center><br>");
out.print(ex.getMessage());
out.print("<br>");
out.print("<br>");
}%>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</form>
</body>
</html>
Figure11Ocdigodapginadetalhe_animal.jsp

BenefrancisdoNascimento 218
SISTEMAWEB

Layout da pgina detalhe_animal.jsp

Vejaabaixoolayoutdapginadetalheanimal.jsp

Figure12layoutdapginadetalhe_animal.jsp

Editar_animal.jsp

Codificaremosagoraapginaeditar_animal.jspquedeverestarnapastaconsultas.

BenefrancisdoNascimento 219
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ListIterator"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.Date"%>

<%
//Iniciandovariaveis
intop=0;
intidPessoa=0;
intidAnimal=0;

//verificandoavarivelopenviadapeloformulrio:
try{
op=Integer.parseInt(Util.SoNumero(request.getParameter("op")));
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Nofoiinformadaaoperaodesejada!");
}

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

BenefrancisdoNascimento 220
SISTEMAWEB

}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("necessrioinformaroiddoanimal!");
}
//Listandopessoas
List<Pessoa>pList=newArrayList<Pessoa>();
Animalanimal;
%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<formaction="editar_animal.jsp"method="post"name="Formulario">
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>ATUALIZAODE
ANIMALDEESTIMAO</strong></td>
</tr>

<tr>

BenefrancisdoNascimento 221
SISTEMAWEB

<tdcolspan="2">
<%
try{
animal=Animal.consultar(idAnimal);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Animalnoencontrado");
}
%>
</td>
</tr>
<tr>
<td></td>
</tr>
<%if(op!=2){%>
<tr>
<tdcolspan="2">

<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdwidth="23%"class="Txt">Donodoanimal</td>
<tdwidth="77%"class="Txt">
<selectname="idPessoa">
<optionvalue="0">Selecione</option>
<%

BenefrancisdoNascimento 222
SISTEMAWEB

pList=Pessoa.consultar();
for(ListIteratoriter=pList.listIterator();iter.hasNext();){
Pessoaachei=(Pessoa)iter.next();
%>
<optionvalue="<%out.print(achei.getIdPessoa());%>"<%if
(animal.getPessoa().getIdPessoa()==achei.getIdPessoa()){%>selected="true"<%}%>><%
out.print(achei.getNome());%></option>

<%
}
%>
</select>
</td>

</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>

</table>

</td>
</tr>

BenefrancisdoNascimento 223
SISTEMAWEB

<%}%>
<%if(op==1){%>
<tr>
<tdcolspan="2">

<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdheight="22"colspan="2"valign="top"
class="Txt"><strong>ANIMAL</strong></td>
</tr>
<tr>
<tdcolspan="2">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="162"class="Txt">Tipo</td>
<tdwidth="436"class="Txt">
<selectname="tipoAnimal"id="tipoAnimal">
<optionvalue="1"<%if(animal.getTipo()==1){%>
selected="true"<%}%>>Cachorro</option>
<optionvalue="2"<%if(animal.getTipo()==2){%>
selected="true"<%}%>>Gato</option>
</select>
</td>
</tr>
<tr>
<tdwidth="162"height="27"valign="top"class="Txt">Nome</td>

BenefrancisdoNascimento 224
SISTEMAWEB

<tdwidth="436"valign="top"class="Txt">
<inputvalue="<%out.print(animal.getNome());%>"name="nome"
type="text"id="nome"size="50"maxlength="100">
<spanclass="style1">*</span></td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Raa</td>
<tdvalign="top"class="Txt">
<inputvalue="<%out.print(animal.getRaca());%>"name="raca"
type="text"id="raca"size="24"maxLength="50">
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">DatadeNascimento</td>
<tdvalign="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>
<tdheight="27"valign="top"class="Txt">Sexo</td>
<tdvalign="top"class="Txt">
<selectname="sexo"id="sexo">
<optionvalue="M"<%if(animal.getSexo()=='M'){%>
selected="true"<%}%>>Macho</option>
<optionvalue="F"<%if(animal.getSexo()=='F'){%>

BenefrancisdoNascimento 225
SISTEMAWEB

selected="true"<%}%>>Femea</option>
</select>
<td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Observacao</td>
<tdvalign="top"class="Txt">
<textareaname="observacao"rows="4"cols="50">
<%
if(animal.getObservacao()!=null){
out.print(animal.getObservacao());
}
%>
</textarea>
<td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>

BenefrancisdoNascimento 226
SISTEMAWEB

<tr>
<tdclass="Txt"width="23%">&nbsp;</td>
<tdclass="Txt"width="77%">
<inputtype="hidden"name="op"value="2"/>
<inputtype="hidden"name="idAnimal"
value="<%out.print(animal.getIdAnimal());%>"/>
<inputtype="button"name="Btn_Entrar"value="Alterar"
onClick="ValidarAnimal(document.Formulario);">
</td>
</tr>
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/rodape.jsp"/>

</td>
</tr>
</table>

</td>
</tr>
<%}elseif(op==2){%>
<tr>
<tdcolspan="2">
<%
//Declarandovariveis
//Pessoa

BenefrancisdoNascimento 227
SISTEMAWEB

Pessoapessoa=null;

//Animal
inttipoAnimal=0;
Stringnome=null;
Stringraca=null;
StringdataNascimento=null;
Stringsexo=null;
Stringobservacao=null;

//Tipo,nome,datadenascimentoesexosoobrigatrios
try{
try{
idPessoa=
Integer.parseInt(Util.SoNumero(request.getParameter("idPessoa")));
pessoa=Pessoa.consultar(idPessoa);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("ErroaoconstruiroObjetopessoa");
}
try{
tipoAnimal=
Integer.parseInt(Util.SoNumero(request.getParameter("tipoAnimal")));
if(tipoAnimal==0){
thrownewRuntimeException("SelecioneoTipodoanimal");
}else{

BenefrancisdoNascimento 228
SISTEMAWEB

animal.setTipo(tipoAnimal);
}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Erroaopegarotipodoanimal");
}
try{
nome=request.getParameter("nome");
if(nome==null||nome==""||nome=="0"){
thrownewRuntimeException("Informeonomedoanimal");
}else{
animal.setNome(nome);
}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Erroaocapturaronomedoanimal");
}
try{
raca=request.getParameter("raca");
animal.setRaca(raca);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Erroaocapturararaadoanimal");

BenefrancisdoNascimento 229
SISTEMAWEB

try{
dataNascimento=request.getParameter("dataNascimento");

//validardataeconstruirumobjetoDate()casoadatasejavlida
if(dataNascimento==null||dataNascimento==""||dataNascimento
=="0"){
thrownewRuntimeException("Informeadatadenascimentodo
animal");
}elseif(Util.validarData(dataNascimento)!=true){
thrownewRuntimeException("Adatadenascimentodoanimal
invlida");
}else{
animal.setDataNascimento(newDate(dataNascimento));
}
}catch(Exceptionex){
ex.printStackTrace();
}
try{
sexo=request.getParameter("sexo");
if(sexo==null||sexo==""||sexo=="0"){
thrownewRuntimeException("Informeosexodoanimal");
}else{
animal.setSexo(sexo.charAt(0));
}
}catch(Exceptionex){
ex.printStackTrace();

BenefrancisdoNascimento 230
SISTEMAWEB

thrownewRuntimeException("Informeosexodoanimal");
}
try{
observacao=request.getParameter("observacao");
if(observacao!=""){
animal.setObservacao(observacao.trim());
}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("ErroaopegaroparmetroObservao");
}
animal.setIdAnimal(idAnimal);
animal.setPessoa(pessoa);
Animal.alterar(animal);
out.print("<br><center><fontface='verdana'color='blue'size='2'><br
/>Animalatualizadocomsucessoemnossobancodedados</font></center><br>");
}catch(Exceptionex){
ex.printStackTrace();
out.print("<br>");
out.print("<br>");
out.print("<br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br
/>Erroaoatualizardadosdoanimal</font></center><br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br/>"+
ex.getMessage()+"</font></center><br>");
out.print("<br>");
out.print("<br>");

BenefrancisdoNascimento 231
SISTEMAWEB

}
%>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
<tr>
<%}//fimdoifdeop%>
</table>
</form>
</body>
</html>
Figure13cdigofontedapginaeditar_animal.jsp

BenefrancisdoNascimento 232
SISTEMAWEB

Layout da pgina editar_animal.jsp

Vejaolayoutdapginaeditar_animal.jsp.

Figure14Layoutdapginaeditar_animal.jsp

Excluir_animal.jsp

Segueocdigofontedapginaqueexcluiumanimaldosistema.

BenefrancisdoNascimento 233
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.ListIterator"%>

<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>

<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">

<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>

<tr>
<tdcolspan="2">
<%
intop=0;

BenefrancisdoNascimento 234
SISTEMAWEB

intidAnimal=0;
Animala=null;

try{
if(!request.getParameter("op").isEmpty()){
op=Integer.parseInt(request.getParameter("op"));
}
}catch(Exceptionex){
ex.printStackTrace();
}
try{
if(!request.getParameter("idAnimal").isEmpty()){
idAnimal=
Integer.parseInt(Util.SoNumero(request.getParameter("idAnimal")));
}
}catch(Exceptionex){
ex.printStackTrace();
}
a=Animal.consultar(idAnimal);
try{
if(op==1&&idAnimal>0){//Op=1:Deletar

Animal.excluir(a);

out.print("<br>");
out.print("<br>");

BenefrancisdoNascimento 235
SISTEMAWEB

out.print("<br>");
out.print("<center><fontface='verdana'color='blue'size='2'>Registro
excludocomsucesso</font></center>");
out.print("<br>");
out.print("<br>");
out.print("<br>");
%>
<%}else{%>
<tableborder="0"width="100%">
<thead>
<trclass="TextoTit"align="center">
<thcolspan="2"height="50">Estaoperaoexcluiro
<%out.print(a.getDescricao());%>de&nbsp;<font
color="blue"><%out.print(a.getPessoa().getNome());%></font>chamado:<fontcolor="blue">
<%out.print(a.getNome());%></font></th>
</tr>
</thead>
<tbody>
<trclass="TextoTit">
<tdcolspan="2"align="center"height="60">Confirmaaexcluso?</td>
</tr>
<tralign="center">
<tdwidth="50%"align="right"height="150"><form
action="excluir_animal.jsp"method="post"name="Formulario"><inputtype="hidden"
name="op"value="1"><inputtype="hidden"name="idAnimal"
value="<%out.print(a.getIdAnimal());%>">&nbsp;<inputtype="submit"name="btn_sim"
value="SIM">&nbsp;</form></td>
<tdwidth="50%"align="left"height="150"><form
action="../consultas/animal.jsp"method="post"name="Formulario">&nbsp;<input

BenefrancisdoNascimento 236
SISTEMAWEB

type="submit"name="btn_sim"value="NO">&nbsp;</form></td>
</tr>
</tbody>
</table>
<%
}
}catch(Exceptione){
out.print("<br>");
out.print("<center><fontface='verdana'color='red'size='2'>Erroao
excluir</font></center>");
out.print("<center><fontface='verdana'color='red'size='2'>"+
e.getMessage()+"<br>"+e.getCause()+"</font></center>");
}
%>
</td>
</tr>
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</body>
</html>
Figure15cdigofontedapginaexcluir_animal.jsp

BenefrancisdoNascimento 237
SISTEMAWEB

Layout da pgina excluir_animal.jsp

Vejaabaixoolayoutdapginaexcluir_animal.jsp.

Figure16Layoutdapginaexcluir_animal.jsp

servico.jsp

Apginaservico.jspdodiretriodeconsultaslistatodososserviosrealizadosqueesto
registradosnosistema.Apresentalinkparadetalhar,alterareexcluir.
Abaixo,ocdigofontedapginaservico.jsp.

BenefrancisdoNascimento 238
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ListIterator"%>
<%@pageimport="java.util.ArrayList"%>
<%
List<Servico>sList=newArrayList<Servico>();
Stringdata="";
%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>SERVIOS
REALIZADOS</strong></td>
</tr>
<tr>

BenefrancisdoNascimento 239
SISTEMAWEB

<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
</td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>
<tr>
<tdcolspan="2">
<tableborder="0"width="100%">
<thead>
<trclass="TopoTit">
<th>DATA</th>
<th>TIPO</th>
<th>NOME</th>
<th>ANIMAL</th>
<th>VALOR</th>
<th>AES</th>
</tr>
</thead>
<tbody><%
try{
sList=(List<Servico>)Servico.consultar();

BenefrancisdoNascimento 240
SISTEMAWEB

for(ListIteratoriter=sList.listIterator();iter.hasNext();){
Servicoachei=(Servico)iter.next();
data=achei.getData().toLocaleString().substring(0,10);
%>
<trclass="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>
<tdalign="right"><%out.print(achei.getValor());%></td>
<tdclass="Txt"align="center">
<tableborder="0"align="center"cellpadding="2"cellspacing="2"
width="100%">
<tralign="center"valign="middle">
<td><a
href="../consultas/detalhe_servico.jsp?idServico=<%out.print(achei.getIdServico());%>">
<imgsrc="../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());%>">
<imgsrc="../images/img_caderno_transparente.png"
width="30"height="30"alt="editar"title="editar"border="0"/>
</a>
</td>
<td>

BenefrancisdoNascimento 241
SISTEMAWEB

<ahref="../consultas/excluir_servico.jsp?idServico=<%out.print(achei.getIdServico());%>">
<imgsrc="../images/img_lixeira_transparente.png"width="30"
height="30"alt="excluir"title="excluir"border="0"/>
</a>
</td>
</tr>
</table>
</td>
</tr>
<%}
}catch(Exceptione){
out.print("<br>");
out.print("<center><fontface='verdana'color='red'size='2'>Erroaolistar
servios</font></center>");
out.print("<center><fontface='verdana'color='red'size='2'>"+e.getMessage()
+"</font></center>");
}
%>
</tbody>
</table>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</body>
</html>
Figure17Ocdigofontedapginaservico.jsp

BenefrancisdoNascimento 242
SISTEMAWEB

Layout da pgina Servio.jsp

Vejaabaixoolayoutdapginaservico.jsp

Figure18Layoutdapginaservico.jsp

detalhe_servico.jsp

Codificaremosagoraapginadetalhe_servico.jsp.

BenefrancisdoNascimento 243
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="java.util.*"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>DETALHAMENTODE
SERVIOREALIZADO</strong></td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
</td>
</tr>

BenefrancisdoNascimento 244
SISTEMAWEB

<tr>
<tdheight="104"colspan="2"valign="top">
<formaction="registrar.jsp"method="post"name="Formulario">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<!DWLayoutTable>

<tr>
<tdcolspan="2">

<%
intidServico=
Integer.parseInt(Util.SoNumero(request.getParameter("idServico")));
Stringdata="";
try{
Servicoservico=Servico.consultar(idServico);

data=servico.getData().toLocaleString().substring(0,10);
%>
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="20%"class="TopoTit">CLIENTE:</td>
<tdclass="TextoTit"><%
out.print(servico.getAnimal().getPessoa().getNome());%></td>
</tr>
<tr>

BenefrancisdoNascimento 245
SISTEMAWEB

<tdwidth="20%"class="TopoTit">ANIMALDEESTIMAO:</td>
<tdclass="TextoTit"><%
out.print(servico.getAnimal().getNome());%></td>
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>SERVIO
EXECUTADO</strong></td>
</tr>
<tr>
<tdcolspan="2">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="162"class="Txt">Servio</td>
<tdwidth="436"class="Txt">
<%out.print(servico.getNome());%>
</td>
</tr>
<tr>
<tdwidth="162"height="27"valign="top"class="Txt">Nome/
Descrio</td>

BenefrancisdoNascimento 246
SISTEMAWEB

<tdwidth="436"valign="top"class="Txt">
<%out.print(servico.getNome());%>
</td>
</tr>

<tr>
<tdheight="27"valign="top"class="Txt">ValorR$</td>
<tdvalign="top"class="Txt">
<%out.print(servico.getValor());%>
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Datadeexecuo</td>
<tdvalign="top"class="Txt">
<%out.print(data);%>
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Observacao</td>
<tdvalign="top"class="Txt">
<%out.print(servico.getObservacao());%>
<td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>

BenefrancisdoNascimento 247
SISTEMAWEB

</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<tdclass="Txt">&nbsp;</td>
<tdclass="Txt">
</td>
</tr>

<tr>
<tdcolspan="2">
<%}catch(Exceptionex){
ex.printStackTrace();
out.print("<br>");
out.print("<br>");
out.print("<br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br

BenefrancisdoNascimento 248
SISTEMAWEB

/>Erroaocadastraroservioexecutado</font></center><br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br/>"
+ex.getMessage()+"</font></center><br>");
out.print("<br>");
out.print("<br>");
}
%>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</body>
</html>
Figure19Cdigofontedapginadetalhe_servico.jsp

Layout da pgina detalhe_servico.jsp

Abaixoolayoutdapginadetalhe_servico.jsp.

BenefrancisdoNascimento 249
SISTEMAWEB

Figure20Layoutdapginadetalhe_servico.jsp

Editar_servico.jsp

Codificaremosagoraapginaeditar_servico.jsp.

BenefrancisdoNascimento 250
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="java.util.*"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>

<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>DETALHAMENTODE
SERVIOREALIZADO</strong></td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdcolspan="2">
</td>

BenefrancisdoNascimento 251
SISTEMAWEB

</tr>
<tr>
<tdheight="104"colspan="2"valign="top">
<formaction="editar_servico.jsp"method="post"name="Formulario">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<!DWLayoutTable>
<tr>
<tdcolspan="2">
<%
intop=0;
try{
op=Integer.parseInt(Util.SoNumero(request.getParameter("op")));

}catch(Exceptione){
e.printStackTrace();
}

intidServico=
Integer.parseInt(Util.SoNumero(request.getParameter("idServico")));
Stringdata="";

Servicoservico=Servico.consultar(idServico);
data=servico.getData().toLocaleString().substring(0,10);

try{

BenefrancisdoNascimento 252
SISTEMAWEB

if(op==0){
%>

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="20%"class="TopoTit">CLIENTE:</td>
<tdclass="TextoTit"><%
out.print(servico.getAnimal().getPessoa().getNome());%></td>
</tr>
<tr>
<tdwidth="20%"class="TopoTit">ANIMALDEESTIMAO:</td>
<tdclass="TextoTit"><%
out.print(servico.getAnimal().getNome());%></td>
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2"><hrsize="1"></td>
</tr>
<tr>
<tdheight="22"colspan="2"valign="top"class="Txt"><strong>SERVIO
EXECUTADO</strong></td>
</tr>
<tr>
<tdcolspan="2">

BenefrancisdoNascimento 253
SISTEMAWEB

<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"
align="center">
<tr>
<tdwidth="162"class="Txt">Servio</td>
<tdwidth="436"class="Txt">
<selectname="servico"id="servico">
<optionvalue="Consulta"<%if
(servico.getNome().equals("Consulta")){%>selected="true"<%}%>>Consulta
Veterinria</option>
<optionvalue="Banho"<%if
(servico.getNome().equals("Banho")){%>selected="true"<%}%>>Banho</option>
<optionvalue="Tosa"<%if(servico.getNome().equals("Tosa"))
{%>selected="true"<%}%>>Tosa</option>
<optionvalue="Vacina"<%if
(servico.getNome().equals("Vacina")){%>selected="true"<%}%>>Vacina</option>
</select>
</td>
</tr>
<tr>
<tdwidth="162"height="27"valign="top"class="Txt">Nome/
Descrio</td>
<tdwidth="436"valign="top"class="Txt">
<inputname="nome"value="<%
out.print(servico.getNome());%>"type="text"id="nome"size="50"maxlength="100">
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">ValorR$</td>
<tdvalign="top"class="Txt">

BenefrancisdoNascimento 254
SISTEMAWEB

<inputname="valor"value="<%out.print(servico.getValor());%>"
type="text"size="11"maxLength="10"onKeyUp="javascript:Sonumero(this)">
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Datadeexecuo</td>
<tdvalign="top"class="Txt">
<inputtype="text"value="<%out.print(data);%>"name="data">
</td>
</tr>
<tr>
<tdheight="27"valign="top"class="Txt">Observacao</td>
<tdvalign="top"class="Txt">

<textareaname="observacao"rows="4"cols="50"><%
if(servico.getObservacao()!=null&&servico.getObservacao()!=""&&
servico.getObservacao()!="null"){
out.print(servico.getObservacao().trim());
}%></textarea>
<td>
</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
</table>
</td>

BenefrancisdoNascimento 255
SISTEMAWEB

</tr>
<tr>
<tdcolspan="2">&nbsp;</td>
</tr>
<tr>
<tdclass="Txt"width="23%">&nbsp;</td>
<tdclass="Txt"width="77%">
<inputtype="hidden"name="op"value="3"/>
<inputtype="hidden"name="idAnimal"value="<%
out.print(servico.getAnimal().getIdAnimal());%>"/>
<inputtype="hidden"name="idServico"value="<%
out.print(servico.getIdServico());%>"/>
<inputtype="button"name="Btn_Entrar"value="Alterar"
onClick="ValidarRegistro(document.Formulario);">
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<tdclass="Txt">&nbsp;</td>
<tdclass="Txt">
<%
}elseif(op==3){
StringservicoEscolhido="";
Stringnome="";

BenefrancisdoNascimento 256
SISTEMAWEB

intperiodicidade=0;
StringnovaData="";

//Criandoumobjetoservio
servicoEscolhido=request.getParameter("servico");
novaData=request.getParameter("data");

servico=Servico.consultar(servico.getIdServico());
if(Util.validarData(novaData)){
servico.setData(newDate(novaData));
}
try{
nome=request.getParameter("nome");
if(nome==null||nome==""||nome=="0"){
thrownewRuntimeException("Informeonomeoudescriodoservioefetuado");
}else{
servico.setNome(nome);
}
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Erroaopegaronomedoservioefetuado");
}
doublevalor=0;
try{
valor=Double.parseDouble(request.getParameter("valor"));

BenefrancisdoNascimento 257
SISTEMAWEB

servico.setValor(valor);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Informecorretamenteovalordoservioexecutado");
}

Stringobservacao=null;
try{
observacao=request.getParameter("observacao");
servico.setObservacao(observacao);
}catch(Exceptionex){
ex.printStackTrace();
thrownewRuntimeException("Erroaopegaronomedoservioefetuado");
}

Servico.alterar(servico);
out.print("<br>");
out.print("<br>");
out.print("<br>");
out.print("<br><center><fontface='verdana'color='blue'size='2'><br/>Servioatualizado
comsucesso!</font></center><br>");
out.print("<br>");
out.print("<br>");
}else{
thrownewRuntimeException("Operaoinvlida");
}

BenefrancisdoNascimento 258
SISTEMAWEB

%>
</td>
</tr>
<tr>
<tdcolspan="2">
<%}catch(Exceptionex){
ex.printStackTrace();
out.print("<br>");
out.print("<br>");
out.print("<br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br
/>Erroaocadastraroservioexecutado</font></center><br>");
out.print("<br><center><fontface='verdana'color='red'size='2'><br/>"
+ex.getMessage()+"</font></center><br>");
out.print("<br>");
out.print("<br>");
}
%>
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</body>
</html>
Figure19Cdigofontedapginaeditar_servico.jsp

BenefrancisdoNascimento 259
SISTEMAWEB

Layout da pgina editar_servico.jsp

Abaixoolayoutdapginaeditar_servico.jsp.

Figure20Layoutdapginaeditar_servico.jsp

Excluir_servico.jsp

Eparafinalizarcodificaremosapginaexcluir_servico.jsp

BenefrancisdoNascimento 260
SISTEMAWEB

<%@pagecontentType="text/html"pageEncoding="UTF8"%>
<%@pageimport="br.com.benefrancis.controle.*"%>
<%@pageimport="br.com.benefrancis.util.Util"%>
<%@pageimport="java.util.List"%>
<%@pageimport="java.util.ArrayList"%>
<%@pageimport="java.util.ListIterator"%>

<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<jsp:includepage="../geral/head.jsp"/>
<body>
<tablewidth="750"border="0"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/topo.jsp"/>
</td>
</tr>

<tr>
<tdcolspan="2">
<%
intop=0;
intidServico=0;
Servicos=null;

BenefrancisdoNascimento 261
SISTEMAWEB

try{
if(!request.getParameter("op").isEmpty()){
op=Integer.parseInt(request.getParameter("op"));
}
}catch(Exceptionex){
ex.printStackTrace();
}
try{
if(!request.getParameter("idServico").isEmpty()){
idServico=Integer.parseInt(Util.SoNumero(request.getParameter("idServico")));
}
}catch(Exceptionex){
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><fontface='verdana'color='blue'size='2'>Registroexcludo
comsucesso</font></center>");
out.print("<br>");
out.print("<br>");
out.print("<br>");

BenefrancisdoNascimento 262
SISTEMAWEB

}else{%>

<tableborder="0"width="100%">
<thead>
<trclass="TextoTit"align="center">
<thcolspan="2"height="50">Estaoperaoexcluiroservioreferente<%
out.print(s.getNome()+""+s.getDescricao());%>em&nbsp;<font
color="blue"><%out.print(s.getAnimal().getNome());%></font>quepertencea<font
color="blue"><%out.print(s.getAnimal().getPessoa().getNome());%></font></th>
</tr>
</thead>
<tbody>
<trclass="TextoTit">
<tdcolspan="2"align="center"height="60">Confirmaaexcluso?</td>
</tr>
<tralign="center">
<tdwidth="50%"align="right"height="150"><form
action="excluir_servico.jsp"method="post"name="Formulario"><inputtype="hidden"
name="op"value="1"><inputtype="hidden"name="idServico"
value="<%out.print(s.getIdServico());%>">&nbsp;<inputtype="submit"name="btn_sim"
value="SIM">&nbsp;</form></td>
<tdwidth="50%"align="left"height="150"><form
action="../consultas/servico.jsp"method="post"name="Formulario">&nbsp;<input
type="submit"name="btn_sim"value="NO">&nbsp;</form></td>
</tr>
</tbody>
</table>
<%
}

BenefrancisdoNascimento 263
SISTEMAWEB

}catch(Exceptione){
out.print("<br>");
out.print("<center><fontface='verdana'color='red'size='2'>Erroaoexcluir
</font></center>");
out.print("<center><fontface='verdana'color='red'size='2'>"+e.getMessage()+
"<br>"+e.getCause()+"</font></center>");
}
%>
</td>
</tr>
<tr>
<tdcolspan="2">
<jsp:includepage="../geral/rodape.jsp"/>
</td>
</tr>
</table>
</body>
</html>
Figure21Cdigofontedapginaexcluir_servico.jsp

BenefrancisdoNascimento 264
SISTEMAWEB

Layout da pgina excluir_servico.jsp

Aprentoolayoutdapginaexcluir_servico.jsp.

Figure22excluir_servico.jsp

BenefrancisdoNascimento 265
SISTEMAWEB

Consideraes finais

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


Espero que este artigo se torne um material de grande valor aos estudantes e
desenvolvedores de sistemas para web. Este material veio para completar o meu
artigo sobre MAPEAMENTOOBJETORELACIONALCOMHIBERNATE.
Lembrando mais uma vez que estou aberto criticas e sugestes, com objetivo de
alimentar o processo de melhoria contnua de meus artigos. O contato dever ser
estabelecido por meio do seguinte endereo eletrnico:
benefrancis@gmail.com
twitter:
@Benefrancis
Skype:
Benefrancis.com

Importante:
1Conformelei9.610/98,quedispesobredireitosautorais,areproduoparcialouintegral
destaobrasemautorizaoprviaeexpressadoautorconstituiofensaaosseusdireitos
autorais(art.29).Emcasodeinteresse,emeditaroupublicarestaobraentreemcontatocom
oautordotexto.
2Entretanto,deacordocomalei9.610/98,art.46,noconstituiofensaaosdireitosautorais
acitaodepassagensdaobraparafinsdeestudo,crticaoupolmica,namedidajustificada
paraofimaatingir,indicandoseonomedoautor(BenefrancisdoNascimento).

Você também pode gostar