Escolar Documentos
Profissional Documentos
Cultura Documentos
Desenvolva Passo A Passo Um Sistema Web Utilizando Java Hibernate e JSP Benefrancis Do Nascimento
Desenvolva Passo A Passo Um Sistema Web Utilizando Java Hibernate e JSP Benefrancis Do Nascimento
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
Criaremosagoraonossodatabase.Paraisso,cliquecomobotodadireitadomouse
noTreeviewroot@127.0.0.1;abrirummenususpensonoqualvocdeveracessara
opoCreateNew/Database.Atelarepresentadnaimagemabaixoseraberta.
Preenchaosdadosconformeaimagemabaixo.
Disponvelem:http://www.heidisql.com/
BenefrancisdoNascimento 10
SISTEMAWEB
Figura3Criandoobancodedadoscomonomeestimacao
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.
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
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
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);
}
IniciaremosomapeamentoObjetoRelacionaldaclassepessoa
PrecisamosinformaraoHibernatequeaclassepessoadarorigemaobjetosquesero
persistidosembancodedados.Paraissoutilizamosaseguinteanotao:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="tipo")
BenefrancisdoNascimento 23
SISTEMAWEB
Asanotaesacimadeveroserinseridasantesdonomedaclasse.Vejaimagemabaixo:
Figura15InformandoaoHibernatequeaClassePessoaserpersistidaeaestratgiadeHerana
utilizada
AodigitarasanotaesoNetbeanssugerealgumasimportaes,vocdeverescolheras
importaesconformeaslinhasquevode5a8naimagemacima.
ONetbeansirasugeriracriaodoidparahierarquiadaclasse,paracriaroidqueseroid
databelanobancodedados;insiraocdigoabaixoantesdoatributoidPessoa.Ser
necessrioalterardepublicparaprivateoatributoidPessoa.Nodeixedefazeras
importaessugeridaspeloNetbeans,pormselecionesempreasquecomeamcom
javax.persistence
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
privateintidPessoa;
BenefrancisdoNascimento 24
SISTEMAWEB
BenefrancisdoNascimento 25
SISTEMAWEB
BenefrancisdoNascimento 26
SISTEMAWEB
Figura16Atributosdaclassepessoaqueseropersistidos
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
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);
}
IniciaremosomapeamentoobjetorelacionaldaclasseTelefone.
Parainformarqueaclassetelefonedarorigemaobjetosqueseropersistidosembancode
dados,bastaapenasincluiraanotao@Entityantesdonomedaclasse.
BenefrancisdoNascimento 32
SISTEMAWEB
Paracriaroidqueseroiddatabelanobancodedados;insiraocdigoabaixoantesdo
atributoidTelefone.NodeixedefazerasimportaessugeridaspeloNetbeans,porm
selecionesempreasquecomeamcomjavax.persistence.
Figura24InformandoaoHibernatequalseroIddatabelatelefone
BenefrancisdoNascimento 33
SISTEMAWEB
Figura25AtributosdaclasseTelefonequeseropersistidos
Paraencapsularoscamposdaclassetelefoneacesseomenrefatorar/encapsularcampos.A
telaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.
BenefrancisdoNascimento 34
SISTEMAWEB
Figura26EncapsulandoosatributosdaclasseTelefone
Figura27CriandomtodoconstrutorparaaclasseTelefone
BenefrancisdoNascimento 35
SISTEMAWEB
A classe Endereco
Figura28AtributosdaclasseEndereco
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
ParainformarqueaclasseEnderecodarorigemaobjetosqueseropersistidosembancode
dados,bastaapenasincluiraanotao@Entityantesdonomedaclasse.
Paracriaroidqueseroiddatabelanobancodedados;insiraocdigoabaixoantesdo
atributoidEndereco.NodeixedefazerasimportaessugeridaspeloNetbeans,porm
selecionesempreasquecomeamcomjavax.persistence.
Figura29InformandoaoHibernatequalseroIddatabelaendereo
BenefrancisdoNascimento 38
SISTEMAWEB
Figura30OsatributosdaclasseEnderecoqueseropersistidos
BenefrancisdoNascimento 39
SISTEMAWEB
Paraencapsularoscamposdaclasseenderecoacesseomenrefatorar/encapsularcampos.
Atelaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.
Figura31Encapsulandocamposdaclasseendereo
BenefrancisdoNascimento 40
SISTEMAWEB
Figura32MtodosconstrutoresparaaclasseEndereco
A classe DocReceita
CodificaremosagoraaclasseDocReceita.
Figura33AinterfaceDocReceita
Mapeando a classe DocReceita
IniciaremosomapeamentoobjetorelacionaldaclasseDocReceita.
BenefrancisdoNascimento 41
SISTEMAWEB
ParainformarqueaclasseDocReceitadarorigemaobjetosqueseropersistidosembanco
dedados,bastaapenasincluiraanotao@Entityantesdonomedaclasse,pormdocReceita
seraclassemedeCPFeCNPJ,destaformasernecessrioinformarqualaestratgiade
heranaqueutilizaremos.
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="tipo")
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
AbaixoapresentoomtodoutilizadoparacalcularodgitodeumCNPJ.Naimagemacimaele
estoculto,paramelhorvisualizao.
BenefrancisdoNascimento 46
SISTEMAWEB
Figura37MtodoutilizadoparacalcularodgitodeumCNPJ.Deveestardentrodaclasse
CNPJ.
BenefrancisdoNascimento 47
SISTEMAWEB
A classe Animal
IniciaremosacodificaodaclasseabstrataAnimal.
Figura38AclasseAbstrataAnimal
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
PrecisamosinformaraoHibernatequeaclasseAnimaldarorigemaobjetosquesero
persistidosembancodedadosequalseraestratgiaparahierarquia.Paraissoutilizamosas
seguintesanotaes:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="tipo")
Asanotaesacimadeveroserinseridasantesdonomedaclasse.Vejaimagemabaixo:
Figura39informaraoHibernatequeaclasseAnimaldarorigemaobjetosqueseropersistidosem
bancodedadosequalseraestratgiaparahierarquia
BenefrancisdoNascimento 50
SISTEMAWEB
ONetbeansirasugeriracriaodoidparahierarquiadaclasse,paracriaroidqueseroid
databelanobancodedados;insiraocdigoabaixoantesdoatributoidAnimal.Nodeixede
fazerasimportaessugeridaspeloNetbeans,pormselecionesempreasquecomeamcom
javax.persistence
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
privateintidAnimal;
Figura40Acriaodoidparahierarquiadaclasse
BenefrancisdoNascimento 51
SISTEMAWEB
Figura41Osatributosdaclasseanimalqueseropersistidos
BenefrancisdoNascimento 52
SISTEMAWEB
Paraencapsularoscamposdaclasseanimalacesseomenrefatorar/encapsularcampos.A
telaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.
Figura42EncapsulandocamposdaclasseAnimal
Figura43MtodosconstrutoresparaaclasseAnimal
BenefrancisdoNascimento 53
SISTEMAWEB
A classe Cachorro
ExibimosabaixoaclasseCachorrojcomasdevidasanotaeseomtodoconstrutor.
Figura44AclasseCachorrojcomasdevidasanotaeseomtodoconstrutor.
BenefrancisdoNascimento 54
SISTEMAWEB
A classe Gato
ExibimosabaixoaclasseGatojcomasdevidasanotaeseomtodoconstrutor.
Figura45AclasseGatojcomasdevidasanotaeseomtodoconstrutor
BenefrancisdoNascimento 55
SISTEMAWEB
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
IniciaremosomapeamentoobjetorelacionaldaclasseabstrataServico.
PrecisamosinformaraoHibernatequeaclasseServicodarorigemaobjetosquesero
persistidosembancodedados.Paraissoutilizamosaseguinteanotao:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="tipo")
Asanotaesacimadeveroserinseridasantesdonomedaclasse.Vejaimagemabaixo:
Figura47AclasseServicodarorigemaobjetosqueseropersistidosembancodedados
BenefrancisdoNascimento 58
SISTEMAWEB
Asconstantesnoseromapeadas.
Figura48InformandoaoHibernatequaisosatributosdaclasseServicoqueseropersistidos
BenefrancisdoNascimento 59
SISTEMAWEB
ParaencapsularoscamposdaclasseServicoacesseomenrefatorar/encapsularcampos.A
telaabaixoseraberta.Selecionetodososcamposecliqueemrefatorar.
Figura49EncapsulandocamposdaclasseServico
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
BenefrancisdoNascimento 64
SISTEMAWEB
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
ParaobterconexescomoHibernatecriamosaclasseConexaoHibernatenopacotemodelo.
Ocdigopoderservisualizadonaimagemabaixo:
Figura51AclasseConexaoHibernate
AclasseConexaoHibernatepossuiumblocoestticonoqualpormeiodavarivel
sessionFactorycapturamosasconfiguraesinseridasnoarquivohibernate.cfg.xml.Criamos
tambmummtodoestticogetInstance()queretornarumasesso.
BenefrancisdoNascimento 66
SISTEMAWEB
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
BenefrancisdoNascimento 69
SISTEMAWEB
Introduo
Figura55Exceodemtodoquenofoiimplementado
DeveremosinserirocontedodosmtodosdasclassesDAO.Eestaseranossaatividade
nestecapitulo.OscdigosdasclassesDAOseromuitosemelhantesaosmtodosdasoutras
classesdeacessoemanipulaodedados.Vejam.
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
Figura57ConsultandoPessoapeloid
BenefrancisdoNascimento 72
SISTEMAWEB
Usaremosasobrecargademtodosparacriarmaisumaopodeconsulta.Agora
consultaremostodasaspessoascadastradas.
Figura58Consultandotodasaspessoascadastradas
BenefrancisdoNascimento 73
SISTEMAWEB
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
Salvar
Nestemtodosalvaremosumanimalnobancodedados.Omtodoesperacomoparmetro
umobjetodotipoAnimal.Poderemosenviarcachorrosougatos,poisesteumclssico
mtodopolifrmico.
Figura62Salvandoanimais
BenefrancisdoNascimento 77
SISTEMAWEB
Criamosummtodoparasalvartodososanimaisdeumapessoa.
Figura63Salvandotodososanimaisdeumapessoa
BenefrancisdoNascimento 78
SISTEMAWEB
Codificaremosomtodoqueconsultaanimalpeloid
Figura64ConsultandoanimaispeloId
BenefrancisdoNascimento 79
SISTEMAWEB
Alterando animais
CodificaremosomtodoalterardaclasseanimalDAO.
Figura65Alterandoanimal
BenefrancisdoNascimento 80
SISTEMAWEB
Excluindo animal
AbaixoocdigodomtodoexcluirdaclasseAnimalDAO.
Figura66Excluindoanimal
BenefrancisdoNascimento 81
SISTEMAWEB
Codificaremosummtodoparaexclusodetodososanimaisdeumapessoa.
Figura67Excluindotodososanimaisdeumapessoa
BenefrancisdoNascimento 82
SISTEMAWEB
IniciaremosagoraacodificaodosmtodosdaclasseServicoDAO.
Salvar
AbaixoomtodosalvardaclasseServicoDAO.
Figura68Salvandoservios
BenefrancisdoNascimento 83
SISTEMAWEB
Abaixoocdigoparaconsultadeserviopeloid.
Figura69Consultandoserviopeloid
BenefrancisdoNascimento 84
SISTEMAWEB
Codificaremosummtodoparasalvartodososserviosdeumanimal.
Figura70Salvandotodososserviosdeumanimal
BenefrancisdoNascimento 85
SISTEMAWEB
Codificaremosomtodoquedeverretornartodosserviosrealizadosemumanimal.
Figura71Consultandotodosserviosrealizadosemumanimal
BenefrancisdoNascimento 86
SISTEMAWEB
Codificaremosummtodoparaquesejapossvelexcluirtodososserviosdeumanimal.
Figura72Excluindotodososserviosdeumanimal
BenefrancisdoNascimento 87
SISTEMAWEB
Alterando servio
Desenvolvendomtodoparaalterarumservio.
Figura73Alterandoservio
BenefrancisdoNascimento 88
SISTEMAWEB
Excluindo servio
Abaixoocdigoparaexclusodeservio
Figura74Excluindoservio
BenefrancisdoNascimento 89
SISTEMAWEB
IniciaremosagoraacodificaodosmtodosdaclasseTelefoneDAO.
salvar
Figura75Salvandoumtelefone
BenefrancisdoNascimento 90
SISTEMAWEB
Figura76Consultandotelefonepeloid
BenefrancisdoNascimento 91
SISTEMAWEB
Omtodoabaixoproveaconsultadetodosostelefonesdeumapessoa.
Figura77Consultandotodosostelefonesdeumapessoa
BenefrancisdoNascimento 92
SISTEMAWEB
Omtodoabaixosalvatodosostelefonesdeumapessoa
Figura78Salvandotodosostelefonesdeumapessoa
BenefrancisdoNascimento 93
SISTEMAWEB
Excluindo telefone
Omtodoabaixoexcluiumtelefonedabasededados
Figura79Excluindotelefone
BenefrancisdoNascimento 94
SISTEMAWEB
Ocdigoabaixoexcluitodosostelefonesdeumapessoa
Figura80Excluindotodosostelefonesdeumapessoa
BenefrancisdoNascimento 95
SISTEMAWEB
IniciaremosagoraacodificaodosmtodosdaclasseEnderecoDAO.
Salvar
Omtodoabaixosalvaumendereonobancodedados
Figura81Salvandotodososendereosdeumapessoa
BenefrancisdoNascimento 96
SISTEMAWEB
OmtodoabaixoconsultaendereopeloId.
Figura82Consultandoendereopeloid
BenefrancisdoNascimento 97
SISTEMAWEB
Omtodoabaixoconsultatodososendereosdeumapessoa.
Figura83Consultandotodososendereosdeumapessoa
BenefrancisdoNascimento 98
SISTEMAWEB
Alterando um endereo
Abaixocodificaremosummtodoparaalterarendereo
Figura84Alterandoumendereo
BenefrancisdoNascimento 99
SISTEMAWEB
Excluindo um endereo
Omtodoabaixoexcluiumendereo
Figura85Excluindoendereo
BenefrancisdoNascimento 100
SISTEMAWEB
Omtodoabaixoexcluitodososendereosdeumapessoa.
Figura86Excluindotodososendereosdeumapessoa
BenefrancisdoNascimento 101
SISTEMAWEB
BenefrancisdoNascimento 102
SISTEMAWEB
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
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
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
BenefrancisdoNascimento 111
SISTEMAWEB
Figura92Autenticandoindex.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
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
Abaixoateladeboasvindasdanossaaplicao.
Figura97Ateladeboasvindasdanossaaplicao
BenefrancisdoNascimento 120
SISTEMAWEB
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
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
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Í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Ç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"> </td>
<td></td>
</tr>
<tr><td> </td></tr>
BenefrancisdoNascimento 137
SISTEMAWEB
<tr>
<tdclass="Txt"width="20"> </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> </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
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"> </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"> </td>
</tr>
<tr>
<tdcolspan="2"> </td>
</tr>
<tr>
<tdclass="Txt"> </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"> </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"> </td>
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2"> </td>
</tr>
<tr>
<tdclass="Txt"width="23%"> </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"> </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
Figura101Layoutdapginapararegistrodeanimal
BenefrancisdoNascimento 155
SISTEMAWEB
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>
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
//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"> </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"> </td>
</tr>
<tr>
<tdcolspan="2"> </td>
</tr>
<tr>
<tdclass="Txt"> </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"> </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"> </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"> </td>
</tr>
<tr>
BenefrancisdoNascimento 163
SISTEMAWEB
<tdcolspan="2"> </td>
</tr>
<tr>
<tdclass="Txt"> </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"> </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"> </td>
</tr>
</table>
</td>
</tr>
BenefrancisdoNascimento 167
SISTEMAWEB
<tr>
<tdcolspan="2"> </td>
</tr>
<tr>
<tdclass="Txt"width="23%"> </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"> </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
Figura103Layoutdapaginapararegistrodeservio
BenefrancisdoNascimento 173
SISTEMAWEB
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"> </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()+" ");
}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&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&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
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Í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Ç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"> </td>
<td></td>
</tr>
<tr>
<tdclass="Txt"width="23%"> </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> </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
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());%>"> <inputtype="submit"name="btn_sim"
value="SIM"> </form></td>
<tdwidth="50%"align="left"height="150"><form
action="../consultas/pessoa.jsp"method="post"name="Formulario"> <input
type="submit"name="btn_sim"value="NO"> </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
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"> </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&idPessoa=<%out.print(idPessoa);%>&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&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
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"> </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"> </td>
BenefrancisdoNascimento 217
SISTEMAWEB
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2"> </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
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"> </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"> </td>
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2"> </td>
</tr>
BenefrancisdoNascimento 226
SISTEMAWEB
<tr>
<tdclass="Txt"width="23%"> </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
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 <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());%>"> <inputtype="submit"name="btn_sim"
value="SIM"> </form></td>
<tdwidth="50%"align="left"height="150"><form
action="../consultas/animal.jsp"method="post"name="Formulario"> <input
BenefrancisdoNascimento 236
SISTEMAWEB
type="submit"name="btn_sim"value="NO"> </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
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"> </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
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"> </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"> </td>
BenefrancisdoNascimento 247
SISTEMAWEB
</tr>
</table>
</td>
</tr>
<tr>
<tdcolspan="2"> </td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<tdclass="Txt"> </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
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"> </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"> </td>
</tr>
</table>
</td>
BenefrancisdoNascimento 255
SISTEMAWEB
</tr>
<tr>
<tdcolspan="2"> </td>
</tr>
<tr>
<tdclass="Txt"width="23%"> </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"> </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
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 <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());%>"> <inputtype="submit"name="btn_sim"
value="SIM"> </form></td>
<tdwidth="50%"align="left"height="150"><form
action="../consultas/servico.jsp"method="post"name="Formulario"> <input
type="submit"name="btn_sim"value="NO"> </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
Aprentoolayoutdapginaexcluir_servico.jsp.
Figure22excluir_servico.jsp
BenefrancisdoNascimento 265
SISTEMAWEB
Consideraes finais
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).