Buscar

Use a cabeça! Servelets & JSP 2ed

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 900 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 900 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 900 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

"Sôci'êdadede EnsinoSuneriorda PamffJa
Elogios antecipados para o Use a Cabeça! Servlets & JSpTM
"Estelivro, Usea Cabeça!Servlets& JSP, é tãobomquantoo Use a Cabeça!EJB, quemefezrir E
megarantiu97%deaproveitamentonaprova!"
- Jef Cumps, Consultor deJ2EE, Cronos
"ParanossasaulasdeServlet/JSP,nóscompramosmaisdedezlivros,semencontrarnenhum,defato,
satisfatórioparanossasnecessidadesdeensino...Até queencontrarmosesta'jóia'pedagógicaque
vocêtemagoranasmãos!Os livrosdasérieUsea Cabeça!nostornarammelhoresprofessores."
- Philippe Maquet: Instrutor Sênior da Loop Factory,Bruxelas
Elogios parao Use a Cabeça!EJBTM e para o formato da série Use a Cabeça!
"A tecnologiaJavaestáemtodososlugares- emtelefonescelulares,carros,câmeras,impressoras,
jogos,PDAs, ATMs, smartcards,bombasdegasolina,estádios,equipamentosmédicos,webcams,
servidores,vocêescolhe.SevocêdesenvolvesoftwareenãoconheceJava,definitivamente,estána
horadevocêmergulhardecabeça- Usea Cabeça!."
- ScottMcNealy,Chairman,PresidenteeCEO, SunMicrosystems
(Notadodepartamentode marketing:isto foi o melhorque
vocêconseguiudoScott? Vejase conseguefazer comqueele
acrescentealgodotipo:"Se nóstivéssemosos livrosdasérie
Usea Cabeça!hádoisanos,aindapodíamoster aquelailusão...'~).
"Um livro incrivelmenteagradável.Dividido e interconectadocomoumarededeconhecimentos.
ComoprofessordaPurdueUniversity,comespecializaçãoemdesenvolvimentoavançadodesoftware
utilizandotecnologiasbaseadasemJava,estouemconstantebuscapormateriaisdeapoioque
ofereçammotivaçãoeumalinguagemcompreensivadirecionadaparao exame,masqueaomesmo
temponãodesestimulemosalunos.O livro 'Usea Cabeça!EJB' preencheestesrequisitosfacilmente!
Livros comoestessãoextremamenteraros.
Incluí estelivro comoumdostextosessenciaisparaasfuturasturmasdo cursodegraduaçãoavançada
queeudoude 'DesenvolvimentodeAplicaçõesparaEmpresas'.Parabénsparaosautores;continuem
como excelentetrabalho!"
- ProfessorDan Gill, DepartamentodeTecnologiade
Computadores,Purdue University.
"Além doestiloenvolventequeo levarádonível deleigoaostatusdeguerreiroaclamadono Java,o
livro Use a Cabeça!Javatrazumgrandenúmerodequestõespráticas,queoutrostítulostratamcomo
o temível'exercícioparao leitor...' Ele é inteligente,irônico,descoladoeprático- existempoucos
livroscomestascaracterísticasequesãocapazesdeensinarsobreserializaçãodeobjetoseprotocolos
deexecuçãoemredeaomesmotempo."
- Dr. Dan Russel,Diretor dePesquisasExperimentaise
CientíficascomUsuários, IBM Almaden ResearchCenter (e
professordeInteligênciaArtificial na Stanford University).
Quemaneiramaravilhosadeaprender!!!EU NÃO CONSIGO LARGAR ESTE LIVRO!!! Meu
filho de3 anosacordouà Ih40 damanhã,eeuo colÇ>queidevoltanacamasegurandoo livro euma
lanterna,econtinueilendopormaisumahora.
- Ross Goldberg
"O Usea Cabeça!Java,escritoporKathyeBert,dáàssuaspáginasimpressasumaaparênciaGUI
comovocêjamaisviu.De umjeito diferenteedescolado,osautorestransformama aprendizagemem
Java emumaempolganteexperiência,dotipo 'qualseráapróximasurpresa?'"
.- Warren Keuffel, RevistaSoftwareDevelopment.
(
Parabéns pelo formato Use a Cabeça!
"É rápido,irreverente,divertidoeenvolvente.Cuidado- vocêpoderealmenteaprenderalgumacoisa!"
- Ken Arnold, ex-EngenheiroSênior da Sun Microsystems
eco-autor(comJames Gosling, criador do Java) do livro
"The J avaProgramming Language"
"Eu passeino exameSCBCD com94%deaproveitamento.Realmente,o 'P! EJB' édemais!Eu li o
livro todoem10dias..."
- BasavarajDevershetty
"...aúnicamaneiradesabero valordeumtutorialé saberseelerealmenteensinarábem.Use a
Cabeça!Javaéexcelenteparaensinar.Tudobem,eupenseiqueelefossebobinho...mas,medeiconta
dequeestavaaprendendoostópicostotalmente,àmedidaqueavançavapelolivro."
"O estilodoUse a Cabeça!Javatomoumeuaprendizado,digamos,maisfácil."
- slashdot(análisedo sitehonestpuck)
"Eu jamaispoderiaimaginarquealguémpudesserir enquantolesseumlivro deTI! Usandoo material
doUsea Cabeça!EJB euconseguiumaótimapontuação(91%) eestabeleciumrecordemundial
comoo maisjovemSCBCD, com14anosdeidade."
- Afsah Shafquat(o maisnovoSCBCD do mundo)
"Esselivro étãobacanaquemedeuvontadedeCHORAR! Estouchocado."
- Floyd Jones,Escritor TécnicoSênior/Garotodapiscina,BEA
"SevocêqueraprenderJava,nãoprocuremais:bem-vindoaoprimeirolivro técnicocom
característicasGUI! Comseuformatorevolucionárioeelaboradocomperfeição,o livro oferece
vantagensqueoutrostítulossobreJava simplesmentenãoconseguem...Prepare-separaumpasseio
realmenteextraordináriopelouniversoJava."
- Neil R. Bauman,Diretor Executivoecapitãoda Geek
Cruises (www.GeekCruises.com)
"Se existealguémnomundofamiliarizadocomo conceitodo 'Usea Cabeça!',estesoueu.Estelivro
étãobomqueeumecasariacomelenaTV!"
- Rick Rockwell, comediante.
O noivooriginal do programa"Quem Quer SeCasar com
um Milionário?" ("Who Wants to Marry a Millionaire"),
da FOX Television
"O Use a Cabeça!Java écomoo Monty Pythonmeetsthegangoffourl ...o textoestátãobem
divididoentrequebra-cabeçasehistórias,questionárioseexemplos,quevocêobtémumaabrangência
quehenhumlivro deinformáticaconseguiuatéagora."
- DouglasRowe,ComunidadedeUsuáriosdeJava, Columbia.
"'Use a Cabeça!Java'...dáumnovosignificadoàfrasedemarketingdaO'Reilly: 'Existeum
O'Reilly paraisso'z.Eu o escolhi,poismuitasoutraspessoasqueeuadmiroo classificaramcomo
'revolucionário'eeudescreviumatécnicatotalmentediferenteparaestelivro.Eles estavam(estão)
certos...SemfugirdotípicoformatodaO'Reilly, elesconseguiramumformatocientífico,masbem
aceito.O resultadoédivertido,irreverente,atuiü,interativoebrilhante...A sensaçãodeler estelivro é
a deestarsentadobempróximoaosalto-falantesemumasaladereunião,aprendendo- erindo- com
oscolegas...SevocêquerENTENDER Java,comprelogoo seu."
- Andrew Pollack, www.thenorth.com
SociedadedeEnsinoSuperbrdaPaat1ira
"Lembraquandovocêestavanojardimdeinfância?Não? Bem,equandovocêaprendeupelaprimeira
vezo alfabeto?É dificillembrar?Bem,nãofazmal.Lendoo Use a Cabeça!lava,vocêvaivoltar
a sedivertirenquantoaprende...Paraaquelesqueseinteressamporaprendernovaslinguagensde
programaçãoenãovieramdaáreadeciênciadacomputaçãooudaprogramação,estelivro éuma
preciosidade...Ele tornadivertidoo aprendizadodeumalinguagemdificil decomputação.Esperoque
existammaisautoresinteressadosemquebraro velhoecorriqueiromodelo'tradicional'doestilode
escrever.Aprenderlinguagensdecomputaçãodeveriaserprazerosoenãooneroso."
- Judith Taylor,ComunidadedeUsuários da Maeromedia,
SoutheastOhio.
"Há poucosdias,recebiminhacópiadoUsea Cabeça!lava,deKathy SierraeBertBates.Eu ainda
estouno começodolivro,maso quemeencantoufoi que,mesmoestandocomsononaquelaprimeira
noite,mepegueipensando:'tudobem,sómaisumapáginaevou dormir.'"
- JoeLitton
"FINALMENTE, umlivro delava escritotal qualeuescreveriasetivessesidoeu.
Falandosério,estelivro simplesmentearrasaqualqueroutrolivro desoftwarequeeujá li...É muito
dificil escreverumbomlivro...É precisomuitotempoparaexplicarosassuntos,emumaseqüência
naturalecujofocoéo leitor.É muitotrabalho.Muitos autores,notoriamente,nãoestãoprontosparao
desafio.Parabénsà equipedoUse a Cabeça!EJB porestetrabalhoprimoroso!
P.S.Quandovai sairo projetoUse a Cabeça!l2EE? E o Use a Cabeça!Desenvolvedorde
ComponentesparaaWeb?E comoeufaçoparaquemeuvideocassetegraveumjogo defutebol
enquantoestoutrabalhando?"
- Wally Flint
"Sevocêérelativamenteuminicianteemprogramaçãoeestáinteressadoemlava,eiso seulivro...
Abordandotudo- desdeobjetosparaacriaçãodeinterfacesgráficasdeusuário(GUl),tratamentode
exceções(erros),redes(sockets)emultitarefas,atécomoagruparsuaspilhasdeclassesemumúnico
arquivodeinstalação-, estelivroécompletíssimo...Sevocêgostardoestilo,estoucertodequeiráadoraro
livroassimcomoeu.EsperoqueasérieUseaCabeça!possaserestendidaaváriosoutrosassuntos!"
- LinuxQuestions.org
"Quandoeuli o 'Use a Cabeça!lava', domesmoautor,eupenseiqueé impossívelescreveroutro
livro (aquelesobreEJB também)deumaformatãobrilhante.Porém,agoraelesnossurpreenderam
comestelivro aindamaislegal.OslivrosdasérieUsea Cabeca!tornaram-sealgonecessário
(QUASE UMA EXIGÊNCIA) emtodososassuntos.Eu queri~serumacriançaparapoderaprender
tudodamaneiracomoensinaestelivro."
- Anshu Mishra
Eu trabalheicomEJB hácercade4 anoseo acheiumabagunçaàsavessas.Depoisdeleras
especificações2.1e2.0,eudescobriqueéapenasumat*** 3 fumegantequeficoumaior.Seulivro
respondeuàmaioriadasincontáveisperguntasquemartelavammeucérebrodeamendoimepermitiu-
mepassarnaprovacomumapontuaçãode92%...
Vencendofacilmenteaquelecolegade 14 anosdeidadepor 1ponto.:-) Muito obrigado.
- Jim Steiner
"Eu meVICIEI noscontosdo livro,noscódigoscomanotações,nasentrevistaspreparatóriasenos
exercíciosparao cérebro."
- MiehaelYuan, autor,Enterprise J2ME
sea CabecaServlets & JSPTM
...:>
Segunda Edição
Não seria fantástico se existisse
um livrosobre Servlets que
fosse mais interessantedo que
apagar spam da sua caixa de
mensagens? Talvez isso seja
uma ilusão...
Bryan Basham
Kathy Sierra
Bert Bates
Rio deJaneiro.2008
Use a Cabeça Servlets & JSpTM
©Alta Books Editora - Starlin Alta Con Com Ltda 2008
Do original Head First Servlets and JSPTM.
Authorized translation of the English edition of Head FirstServletsand JSPTM, 2st Edition ©2008 O'Reil/y
Media,lnc. ISBN: 978-0596102340This translation ispublished and sold bypermission ofO'Reil/y
Media, Inc., the owner ofali rights to publish and sell thesome.
Todos os direitosreservados e protegidospela Lei 5988 de 14/12/73.Nenhuma partedeste livro,sem
autorizaçãopréviapor escrito da editora,poderá ser reproduzidaou transmitidasejam quais forem os
meios empregados:eletrônico,mecânico, fotográfico,gravação ou quaisqueroutros.Todo o esforço
foi feito para fornecer a mais completae adequada informação,contudo a editorae o(s) autor(es)não
assumem responsabilidadepelos resultadose usos da informaçãofornecida. Recomendamos aos
leitorestestara informação,bem como tomartodos os cuidados necessários (como o backup), antes da
efetivautilização.Este livronão contémCD-ROM, disqueteou qualqueroutra midia.
Erratase atualizações:Sempre nos esforçamosparaentregara você, leitor,um livrolivrede erros
técnicosou de conteúdo;porém,nemsempre isso é conseguido,seja por motivode alteraçãode
software,interpretaçãoou mesmoquando algunsdeslizes constamna versão originalde alguns livros
que traduzimos.Sendo assim, criamosem nosso site,www.altabooks.com.br.a seção Erratas,onde
relataremos,com a devidacorreção,qualquererro encontradoem nossos livros.
Avisos e Renúncia de Direitos: Este livro é vendido como está, sem garantia de qualquer tipo, seja
expressa ou implícita.
Marcas Registradas:Todosos termosmencionadose reconhecidoscomo Marca Registradae/oucomercial
são de responsabilidadede seus proprietários.A Editorainformanão estarassociadaa nenhumprodutoe/
ou fornecedorapresentadono livro.No decorrerda obra, imagens,nomesde produtose fabricantespodem
tersido utilizados,e desdejá a Editorainformaqueo uso é apenas ilustrativoe/oueducativo,nãovisandoao
lucro,favorecimentoou desmerecimentodo produto/fabricante.
Produção Editorial: Editora Alta Books
Coordenação Editorial: Roberto Baptista Barroco
Tradução: Eveline Vieira Machado
Revisão: Fernanda Rigamond
Revisão Técnica: Helder Borges
Diagramação: Equipe Alta Books
Impressono Brasil
o código de propriedadeintelectualde 10de Julho de 1992proibe expressamenteo uso coletivosem
autorizaçãodos detentoresdo direitoautoralda obra, bem como a cópia ilegaldo original.Esta prática
generalizada nos estabelecimentosde ensino, provoca uma brutalbaixa nas vendas dos livrosa ponto
de impossibilitaros autores de criaremnovas obras.
Editora Alta Books
Rua Viúva Claudio, 291 - Jacaré
Rio de Janeiro - RJ CEP 20551-010
Tel: 21 3278-8069 Fax: 21 3277-1253
www.altabooks.com.br
altabooks@altabooks.com.br
Esselivro édedicadoatodosaquelesquedecidiramqueEL implicitobject
os autores
Os "procurados"da série Usea Cabeça!(edeste livro)
Beart Bates Bryan Basham
Bert éumantigodesenvolvedor
earquitetodesoftware,mas
umperíodode 10anosem
inteligênciaartificialo fez
seinteressarporteoriada
aprendizagemetreinamento
via computador.Ele passoua
primeiradécadadesuacarreira
comodesenvolvedorviajando
pelomundoeajudandoclientes
comoarádioNovaZelândia,
o TheWeatherChannelea
rededeentretenimentosArts
andEntertainmentNetwork
(A&E) emsuastransmissões.
Atualmente,eleémembroda
equipedaSunresponsávelpelo
desenvolvimentodediversos
examesdecertificaçãoemJava,
incluindoo recenteSCWCD.
Bertéumantigoe incorrigível
aficionadopeloGOlevem
trabalhandohábastante
tempoemumprograma.O
Javahádesetomaruma
linguagemexpressivao
suficienteparaqueelefinalize
seuprojeto.Ele éumbom
guitarristae,atualmente,está
experimentandoo banjo.
Suamaisrecenteaventura
foi a compradeumcavalo
islandês,o quedeverátrazer
novosdesafiosaosseus
conhecimentosnaáreade
treinamento...
VIII
Kathy gostadeteoriada
aprendizagemeassuntos
relacionadosàmentedesdea
épocaemqueeradesignerde
jogos(elaescreveujogospara
aVirgin,MGM eAmblin')e
desenvolvedoraemI.A2 Grande
partedoformatodasérieUse
aCabeça!foi desenvolvido
enquantolecionavaInteratividade
UsandoNovasMidias,no
programadeextensãode
EstudosemEntretenimento
daUniversidadedaCalifómia
(DCLA). Recentemente,se
tomouinstrutora-chefeda
SunMicrosystemseensinaos
instrutoresdeJavaadivulgarem
asmaisnovastecnologias
destalinguagem.Alémdisso,
desenvolvediversosexames
paracertificaçõesSun,incluindo
o SCWCD. JuntocomBert
Bates,elatemaplicado
extensivamenteosconceitosda
sérieUseaCabeça!noensino
demilharesdedesenvolvedores.
Ela fundouumadasmaiores
comunidadesemJavano
mundovirtual,ajavaranch.
com,premiadaem2003e2004
comoPrêmioProdutividadeem
DesenvolvimentodeSoftware.
Elaadoracorrer,esquiar,montar
acavalo,andardeskatee
ciênciasesotéricas.
Bryan temmaisdevinte
anosdeexperiênciaem
desenvolvimentodesoftware,
incluindoumperíodocom
softwaredeautomação
avançadausandotécnicas
deI.A naNASA Ele
tambématuouemuma
consultoria,desenvolvendo
aplicaçõescomerciaisem00
personalizadas.Atualmente,
BryanéDesenvolvedorde
CursosdaSun,comênfase
nosprincípiosdedesignem
Javaeem00.Elejá trabalhou
emdiversoscursosdeJava
daSun,incluindoJDBC,
J2EE, Servletse JSP, alémde
DesenvolvimentodeSoftware
utilizando00.Ele foi também
o primeirodesignerdosexames
SCWCD, nasversõesoriginal
eatual.
Bryanpraticao ZenBudismo,
jogaUltimateFrisbee,adora
somepraticao ski telemark.
conteúdo
(Sumát19)
Introdução XIX
Por queusarServlets& JSPs: umaintrodução 1
Arquiteturadaaplicaçãoweb:visãogeraldealtonível 37
MinitutorialdoMVC: praticandocomoMVC 67
Sendoumservlet:requesteresposta 93
Sendoumaaplicaçãoweb:atributoselisteners 147
Estadodeconversação:sincronizandoobean/entidade 223
SendoumJSP: escrevendocódigosemJSP 281
Páginassemscripts:escrevendoJSPssemscripts 343
As tagscustomizadassãopoderosas:usandoaJSTL 439
QuandonemaJSTL éo bastante:desenvolvendotagscustomizadas499
Distribuindosuaaplicaçãoweb:distribuiçãodaaplicaçãoweb 601
Mantenhaemsegredo,mantenhaseguro:segurançadaaplicaçãoweb649
O poderdosfiltros:wrappersefiltros 701
PadrõesdeDesignEnterprise:padrõeseStruts 737
ApêndiceA: TestePreparatórioFinal 791
Índice 865
Introdução
SeucérebropensandoemServlets.Aqui estávocêtentandoaprenderalgo,enquanto
seucérebrolheprestao favordecertificar-sedequetal aprendizadonãoserá
interrompido.Ele pensa,"é melhorreservarespaçoparacoisasmaisimportantes,como
qualanimalselvagemevitareseesquiarsemroupaéruimmesmo".Então,comovocê
vaiinduzi-loapensarquesuavidadependedoconhecimentoemServlets?
A quemsedestinaestelivro?
Nós sabemoso queseucérebroestápensando
Metacognição
Domineseucérebrp
O quevocêprecisaparaestelivro
Passandono examedecertificação
Os revisorestécnicos
Agradecimentos
XX
XXI
XXlll
xxv
XXVI
XXVlll
XXX
XXXI
IX
1Por que usar servlets& JSPs?
As aplicaçõesweb estãona moda.QuantasaplicaçõesGUI vocêconheceque
sãousadaspormilhõesdeusuáriosemtodoo mundo?Comodesenvolvedorde
aplicaçõesweb,vocênãoprecisaráseprenderaosproblemasdedistribuição
presentesemtodaaplicaçãostandalonee irádistribuirsuaaplicaçãoa qualquer
pessoaquepossuaumbrowser.Mas vocêprecisarádosservletsedosJSPs, pois
asvelhaseestáticaspáginasHTML sãotão,digamos,"1999".Saibacomomudar
dosUenaweb,paraaaplicaçãonaweb.
Principais elementosdo fluxo de resposta:
• Um código de .umIS (no caso de uma
solicitação bem sucedida)
TIpo de conteúdo (tc."to, i~oem, HIML, ctc_)
• O conteúdo (o HTML real, a imagem, etc_)
Cliente
Principais elementosdo fluxo
de solicitação:
• O métodoHTTP (a açãode
se~executada)
• A~<rinaqueseráacessada
(umaURL)
• Osp:mi:mctrosdofurmulãrio(curoo
argtIIIlell!oSparamnrnéloOO)
solicitaçãoHTTP
Servidor
ObjetivosdoExame 2
O queosservidoreswebeosclientesfazemecomoconversam
entresi 4
GuiarápidodeHTML 7
O queéo protocoloHTTP? 10
A anatomiadassolicitaçõesHTTP GET ePOST edasrespostasHTTP 16
LocalizandopáginaswebusandoURLs 20
Servidoresweb,páginasestáticasecm 24
DesmistificandoosServlets:escreva,distribuaerodeumservlet 30
JSP foio queaconteceuquandoalguémapresentouo JavaaoHTML 34
Arquiteturada aplicaçãoweb
2
Os servletsprecisamdeajuda. Quandoumasolicitaçãochega,alguémtem
queinstaro servletou,pelomenos,alocarumathreadparatratara solicitação.
Alguémtemquechamarou o métododoPostOouo métododoGetOdoservlet.
Alguémprecisalevara solicitaçãoearespostaparao servlet.Alguémprecisa
gerenciaravida,amorteeosrecursosdo servlet.Nestecapítulo,vamosestudaro
ContaineredarumaprimeiraolhadanopadrãoMVC.
(Controlador'\
iJSP 1
38
39
44
46
50
54
64
65
ObjetivosdoExame
O queéumContainereo queeleoferece?
Comoficao código(o quetomaumservletumservlet)
Nomeandoosservletsemapeando-osaURLs usandoo DD
História:BobConstróiumSitedeEncontros(introduçãoaoMVC)
VisãogeraleexemplodeMVC (Model-View-Controller)
Um DeploymentDescriptor(DD) "funcionando"
Ba",ode Comoo J2EE cabenissotudo
Dad,,,
1,
Modelo
JCVQ
antigo
Serv!et
View
JSP
x
conteúdo
3
Minitutorialdo MVC
Criando e distribuindo uma aplicaçãoMVC. Chegouahoradecolocara
mãonamassaeescreverumformulárioHTML, umcontroladordeservlet,um
modelo(classeJava simples),umdeployrnentdescriptorXML eumaview em
JSP. É horadecriar,distribuiretestar.Antes,porém,vocêdeveráconfigurar
seuambientededesenvolvimento.Em seguida,vocêteráqueconfiguraro seu
ambientededistribuição,deacordocomasespecificaçõesdo servletedoJSP,
easexigênciasdoTomcat.Concordo,estaéumaaplicaçãopequena...Porém,
quaseNÃO existeaplicaçãoquesejatãopequenaeuseo MVC.
Especffico para o Tomcat
Este nome de diretÓf'io
tambémrepresentao •context r::::aroot" queo Torncatusaquando ~ Esta parte daestrutura
estó resolvendoURLs.Nós ! de diretórios éexigido
exploraremoseste conceno ;~ '-; peloTomcate d~veestaremmaioresdetalhesno l;;;J j diretamenteablllxodo
copít1JlosobreDistribuição. I {'seudiretónohome.
-~8)~_OOOmedaapricação.
parteda••pecifj~ção~l
dos Servlets j- '-'\ l§l ,!J.
! _ ~" Este arquivoweb.xmJ1"""" ~ h~TEMQ~Eestarem
l ___ _ z;; WEB-INF
Específico da 8,--•.: ~ A estrutura deste pacote éAplicação
~;_~_". :~:~~~~u:n=;~o
- - .' .' A menosquevocêesteja
1 _~ _ i_~ ~~(~:~~a~:e~t~i:O
.. ,'- , -- _ - - maIs tarde). você DEVE colocaro
i [pacote deestruturadediretóriosg 8 irnediatamenteabaixode WEB-
~> _si"", INF/classes.
ObjetivosdoExame 68
VamosconstruirumaaplicaçãoMVC: primeiroo design 69
Criandoosambientesdedesenvolvimentoedistribuição 72
Criandoetestandoo HTML parao formulárioinicial
Criandoo DeploymentDescriptor(DD) 77
Criando,compilando,distribuindoetestandoo servletdecontrole 81
Design,criaçãoetestedocomponentemodelo 82
Otimizandoo controladorparachamaro modelo
Criandoedistribuindoo componenteview;(istoéumJSP) 87
Otimizandoo servletdecontroleparachamaro JSP 88
4
Sendo umservlet
Servletsvivempara servir clientes.A funçãodeumservletéreceberuma
solicitaçãodoclienteedevolverumaresposta.A solicitaçãotalvezsejasimples:
"traga-meapáginadeBoas-vindas".Ou podesercomplexa:"Finalizeo
processodomeucarrinhodecompras."Asolicitaçãocarregadadoscruciaise
o códigodoseuservlettemquesabercomoencontrá-Ioseutilizá-Ios.E eletem
quesabercomoenviarumaresposta.Ou não...
o servlet usaos dados
NÃO Idempotente do POST para atualizar
<_.... ~:":: .... ObanCOde.....d.•..QdOS.~ LJ wz -----8..
~~ WW'. D~ M /servletCliente ':::~irO servJet enviade volta umaresposta
~ com umapáginagerada em HTML
ObjetivosdoExame 94
Os ServletssãocontroladospeloContainer 95
Cadasolicitaçãorodaemumathreadseparada! 101
A verdadeirafunçãodoservletno tratamentodassolicitações 105
A históriadasolicitaçãonão-idempotente 112
O quedeterminasevocêrecebeuumasolicitaçãoGET ouPOST? 117
Enviandoeusandoparâmetro(s) 119
Então,essafoi a Solicitação...vejamosagoraa Resposta 126
Vocêpodeconfigurarheadersderesposta,vocêpodeadicionar
headersderesposta 133
Redirecionamentodeservletsfazo browsertrabalhar 136
Revisão:HttpServletResponse 140
XI
5
Sendo uma aplicação web
Nenhum servletvive sozinho.Nas aplicaçõeswebatuais,várioscomponentes
trabalhamemconjuntoporumobjetivo.Temososmodelos,oscontroladores
easviews.Temososparâmetrose osatributos.Temosasclasseshelper.Mas,
comojuntarospedaços?Comopermitirqueoscomponentescompartilhem
informações?Comovocêocultainformações?Comovocêtornaumainformação
thread-safe?Seutrabalhopodedependerdestasrespostas.
Atributos de SOUctTAÇÃO
9rset
ObjetivosdoExame 148
OsParâmetrosInit dãoumaforça 150
ComoumJSP consegueobterosparâmetrosinit do servlet? 155
Osparâmetrosinit docontextodãoumaforça 157
Comparandoo ServletConfigcomo ServletContext 159
Ela querumServletContextListener 166
Tutorial:escrevaumServletContextListenersimples 168
Compile,distribuaetesteo seulistener 176
A históriacompleta,umaanálisedoServletContextListener 178
Listeners:elesnãoservemapenasparaoseventosdecontextos 180
O queéexatamenteumatributo? 185
AAPI Atributo 189
O escopodecontextonãoéthread-safe! 192
Comotomamososatributosdocontextothread-safe? 194
Testandoa Sincronização 195
Os atributosdeSessãosãothread-safe? 198
Osmalesdo SingleThreadModel 201
ApenasosatnbutosdaSolicitaçãoeasvariáveislocaissãothread-safe!204
AtributosdaSolicitaçãoerequestdispatching 205
,,,
~set
Acessível apennspamoquelescomoc:essoQ_HttpSessionespecifico
XII
6
conteúdo(sumário)
Estado de conversação
Os servidoreswebnãotêmmemóriacurta.Assim queeleslheenviamuma
resposta,elesesquecemquemvocêé.Na próximavezquevocêfizeruma
solicitação,elesnãoo reconhecerão.Elesnãoserecordamdoquevocêsolicitou
nopassadoenemdo queelesenviaramcomoresposta.Nada.Porém,algumas
vezesvocêprecisamantero estadodeconversaçãocomo clientedurantevárias
solicitações.Um carrinhodecomprasnãofuncionariaseo usuáriotivesseque
escolherseusprodutosefinalizaracompradeumaúnicavez.
06of.if-f,-",",,-!--r.~""~'-
~"ú'ú..•.•."'~=
ObjetivosdoExame
Esperamosquesejaumaconversa(comoassessões
funcionam)
IDs desessão,cookieseoutrosfundamentosdassessões
ReescritadeURL: umaalternativa
Quandoassessõesenvelhecem;dandoadeusàssessõesruins
Possousarcookiesparaoutrascoisasalémdassessões?
OsprincipaismomentosdeumHttpSession
Não seesqueçadoHttpSessionBindingListener
A migraçãodasessão
Exemplosdelistener
224
226
231
237
241
250
254
256
257
261
Sendo um JSP
Um JSP torna-seum servlet.Um servletquevocênãocria.O Containerolha
o seuJSP, o traduzemcódigo-fonteJava eo compilaemumaclasseservletde
Javacompleta.Porém,vocêtemquesabero queacontecequandoo códigoque
vocêescreveuemJSP setransformaemcódigoJava.Vocêpodeescrevercódigos
JavaemJSP, masseráquevocêdeveria?E senãofor umcódigoJava,oque
vocêpodeescrever?Comoelejaz a traduçãoparao códigoJava?Veremosseis
diferentestiposdeelementosJSP ~cadaumcomseuprópriopropósitoe,sim,
sintaxeúnica.Vocêaprenderácomo,porqueeo queescreverno seuJSP. E você
aprenderáo quenãoescrever.
~',. ., ._.~.
ObjetivosdoExame
CriandoumJSP simplesusandoo "out"euma
diretivadepágina
Expressões,variáveisedeclaraçõesemJSP
Horadever.umservletgeradoapartirdoJSP
A variáveloutnãoéo únicoobjetoimplícito
">.,.O Ciclo devidae a inicializaçãodeumJSP
MyISP-.J<pSc1vlet
Já queestamosfalandosobreisso...astrêsdiretivas
Scriptletsconsideradosperigosos?Eis aEL
Mas, espere...aindanãovimosasações
282
283
288
296
298
306
314
317
323
XIII
8
Páginas sem scripts
Fuja do scripting.SeráqueseuswebdesignersprecisammesmosaberJava?
SeráqueelespensamquequemprogramaJavaparaservidorestomar-se-á,
digamos,designergráfico?E mesmoquea equipesejasóvocê,vocêquer
mesmoummontedebitsepedaçosdecódigosJavanosseusJSPs? Vocêsabe
o quesignifica"umpesadelonahoradamanutenção"?Escreverpáginassem
scriptsnãosóépossível,comotambémémaisfácil emaisflexívelcomanova
especificaçãoJSP 2.0,graçasànovaExpressionLanguage(EL). Padronizada
depoisdo JavaScriptedoXPATH, oswebdesignerssentir-se-ãoemcasacoma
EL. E vocêtambémvai gostar(assimquevocêseacostumar).Porém,existem
algumasarmadilhas...aEL separececomo Java,masnãoé.Às vezes,aEL se
comportadeformadiferentedecomocomportar-se-iaamesmasintaxeno Java.
Portanto,fiqueatento!
XIV
.""'<0""" .•.••••.••• '''<1''''<:;
'9"",'~.,,<!~~",-,.~."._~d~.
ObjetivosdoExame 344
Quandoosatributossãobeans 345
Ações-padrão:useBean,getProperty,setProperty 349
Vocêsabefazerreferênciaspolimórficasparabeans? 354
atributoparamdáumaajuda 360
Convertendopropriedades 363
A ExpressionLanguage(EL) salvao dia! 368
Usandoo operadorponto(.) paraacessarpropriedades
emapearvalores 370
O [c:catch]dáavocêmaisopções(Lists,arrays...) 372
Mais detalhesdosoperadorespontoe [ ] 376
Os objetosimplícitosdaEL 385
FunçõesEL etratandoo "null" 392
Ospedaçosreutilizáveisdotemplate- doistiposde"include" 402
A ação-padrão<jsp:forward> 416
Ela nãoconheceastagsJSTL (umavisãorápida) 417
Revisandoasações-padrãoeo include 417
9
conteúdo
As tags customizadassão poderosas
Em algunscasos,vocêprecisademaisdo quea EL ou ações-padrão.E se
vocêquisessefazerumloopatravésdosdadosdeumarray,exibindoemseguida
umitemporlinhaemumatabelaHTML? Vocêsabequepoderiaescreverissoem
doissegundos,usandoumloopfor emumscriptlet.Masvocêestátentandoevitar
osscripts.Semproblema.QuandoaEL easações-padrãonãoforemsuficientes,
vocêpodeusartagscustomizadas.ElassãotãofáceisdeusaremumJSP quanto
asações-padrão.Melhorainda,alguémjá escreveuboapartedastagsdequevocê
maisprovavelmenteprecisará,easjuntounaJSTL (JSP StandardTagLibrary,
ouBibliotecadeTagsJSP Padrão).Nestecapítulo,aprenderemosausartags
customizadas,enocapítuloseguinte,aprenderemosacriarasnossasprópriastags.
ObjetivosdoExame 440
Fazendoloopssemscripts;<c:forEach> 446
Controlecondicionalcomo <c:i:f>eo <c:choose> 451
Usandoastags<c:set>e<c:remove> 455
Coma <c:import>,hátrêsmaneirasdeincluirconteúdo 460
Customizandoo quevocêinclui 462
Fazendoo mesmocom<c:param> 463
A <c:url>paratodasassuasnecessidadesdehyperlink 465
Crie suasprópriaspáginasdeerro 468
A tag<c:catch>.Semelhanteatry/catch...maisoumenos 472
E sevocêprecisardeumatagqueNÃO estejanaJSTL? 475
Presteatençãoao<rtexprvalue> 480
O quepodeexistirno corpodeumatag 482
O taghandler,o TLD eo JSP 483
A taglib<uri>éapenasumnome,nãoumlocal 484
QuandoumJSP usamaisdeumabibliotecadetags 487
</c:forEach>
() .H-ritr.rl'c.te #fler+4.f';tJ
,lll.prN.ltLlsi
JÇ'
<c;forEach var="1i.stElement" items="${movi.es}">,"------
va.r=-mov.ie"items="${1i;,...tE:J.ezent}"><td>${llICIVie}</td> '--
</c:f:~~ lIJoo.{(asfi.:N.js. 5i!"'!~55tte
.j"nll1\ (I:!-""jV;,,!DS 'ufI,+"tJ,,,,+a
V;jr-J<!l /"* exhl'~c.
MatrL,,{Ievoiutions
!«:so,!h"''''f,,''~iros,'''''J,n---'7'j KillBilI
BoondockSaints
Àmelie
ReturnoflheKing
MeanGirls
xv
10
11
Quando nema JSTL é o bastante...
Em algunscasos,aJSTL easações-padrãonãosãosuficientes.Quandovocê
precisadealgocustomizado,enãoquervoltaraosvelhosscripts,vocêpodeescreveros
seusprópriostaghandlers.Dessamaneira,osseusdesenvolvedoresdepáginaspoderão
usarasuatagnassuaspáginas,enquantotodootrabalhoduroéfeitonosbastidores,na
suaclassetaghandler.Mashátrêsmaneirasdiferentesdesecriarosseusprópriostag
handlers,então,hámuitoo queaprender.Dessastrês,duasforamintroduzidascomo
JSP 2.0paratomarasuavidamaisfácil(SimpleTagseTagFiles).
ObjetivosdoExame 500
TagFiles: iguaisao include,sóquemelhores 502
Ondeo ContainerprocuraporTagFiles 509
Taghandlerssimples 513
UmatagSimplescomumcorpo 514
E seo corpodatagusarumaexpressão? 519
Vocêaindaprecisasabersobreostag
handlersClássicos 529
Um taghandlerClássicobempequeno 531
O ciclo devidaClássicodependedos
valoresretomados 536
A interationTaglhepermiterepetiro corpo 537
Valores-padrãoretomadospelaTagSupport 539
A interfaceDynamicAttribute 556
ComBodyTag,vocêtemdoisnovosmétodos 563
E sevocêtivertagsquefuncionamconjuntamente? 567
UsandoaAPI PageContextparataghandlers 577
Distribuindosua aplicaçãoweb
Finalmente,suaaplicaçãoestáprontapara o horário nobre.As suaspáginas
estãofinalizadas,seucódigoestátestadoeajustado,eo prazodeentregaerahá
duassemanasatrás.Mas,paraondevai issotudo?Tantosdiretórios,tantasregras.
Quenomevocêdáaosseusdiretórios?Qualnomeo clientepensaqueelestêm?O
queéqueo clienterealmentesolicita,ecomoo Containersabeondeprocurar?
Referênciaaumbeanlocal
XVI
ObjetivosdoExame
Principaltarefadadistribuição:ondeentrao quê?
~" ArquivosWAR
~ Comoo mapeamentodeservletsREALMENTE funciona
=~?::::::~;~:::.Configurandoarquivosdeboas-vindasnoDD
Configurandopáginasdeerrono DD
~ ~ Configurandoa inicializaçãodeservletsnoDD
__ -êCriando umJSP compatívelcomXML: umDocumentoJSP
602
603
612
616
622
626
628
629
conteúdo
ObjetivosdoExame 650
O Top4 emsegurançadeservlets 653
ComoAutenticarnoMundoHTTP 656
AsDezMelhoresRazõespararealizarasuasegurançadeclarativamente659
Quemimplementaa segurançaemumaaplicaçãoweb? 660
Autorização:funçõeserestrições 662
Autenticação:quatrosabores 677
OSQUATRO tiposdeautenticação 677
Protegendoasegurançadosdadosemtrânsito:HTTPS emação 682
Comoimplementarconfidencialidadee integridadededadoscaso
a casoedeclarativamente 684
Mantenhaem segredo, mantenhaseguro
12
o~~::::j~~:ma~;~~asmaisflexíveis,
G Estáno exame.
Suaaplicaçãowebestáemperigo.O perigoespreitaemcadacantodarede.Vocênão
querosCarasMausxeretandonastransaçõesdasualojavirtual,roubandonúmeros
decartõesdecrédito.TambémnãoquerosCarasMausconvencendoo seuservidor
dequeelesnaverdadesãoosClientesEspeciaisQueRecebemGrandesDescontos.
E vocênãoquerninguém(amigoOU inimigo)olhandodadosconfidenciaisdos
empregados.Seráqueo Jim, dodepartamentodemarketing,precisamesmosaber
queaLisa,dodepartamentodeengenharia,ganhatrêsvezesmaisdoqueele?
As Dez Melhores Razões para realizar a Sua
segurança declaratwamente
'Iil lJmpaucomaisdeprátirocomXML11ÕrJfazmal a 11inguém.
O:~:U~::te, as.~eclaraçõescasamnaturalmente
deparrame;oSd~~':mp~O) já existentesno
eFica multo bemno seucurriculo.
ePermiteaosdcsenvoh-edoresde aplicaçõesIeUtJlizarem
senlets,mesmosemacessoaocódigo-fonte.
O É legal,simplesmente.
opoderdos filtros
13
Os filtroslhepermiteminterceptara solicitação.E sepuderinterceptara
solicitação,vocêpoderátambémcontrolararesposta.E, melhordetudo,o servlet
nempercebeo queaconteceu.Elenuncaficarásabendoquealguémintercedeu
entreasolicitaçãodoclienteeainvocaçãodométodoserviceOdoservletpelo
Container.O queissosignificaparavocê?Maisférias.Porqueotempoquevocê
levariareescrevendoapenasumdosseusservletspodeserdespendido,emvez
disso,escrevendoeconfigurandoumfiltrocomacapacidadedeafetartodososseussetvlets.Adicionartrackingdassolicitaçõesdousuárioa todososservletsdasua
aplicação?Semproblema.Manipularo outputdecadaservletdasuaaplicação?Sem
problema.E vocênãoprecisanemsequertocarnocódigodoservlet.
•
·181'" ••--_.•...
a pilha• a pilha9 a pilhae
oConta;tle<"
""'P<Jn"otrlétodo
~i<eOdo
S••••leM I""" o
~~::~~~é
fircl,m-.e ""tilo,;
",t;rndodo.pilll<l.
a pilhae
ObjetivosdoExame
Construindoumfiltroparao monitoramentodassolicitações
O ciclo devidadeumfiltro
Declarandoeordenandofiltros
Comprimindoo outputcomumfiltrono ladodaresposta
a pilhao
~;::o::-,.Os wrapperssãodemais
êiªª:::O códigodoverdadeirofiltrodecompressão
Conta;ner-nMlÜQa
respost"- Códigodowrapperdecompressão
702
707
708
710
713
719
722
724
XVII
14
Padrões de Design Enterprise
Alguémjá fezissoantes.Seestivercomeçandoagoraa desenvolveraplicações
webemJava,vocêtemsorte.Poderásebeneficiardo sabercoletivodasdezenas
demilharesdedesenvolvedoresquejá trilharamessecaminhoesobreviveram
paracontar.Usandotantoospadrõesdedesignespecíficosdo J2EE quanto
outrospadrões,épossívelsimplificaro seucódigoea suavida.E o padrãode
designmaissignificativoparaaplicaçõesweb,o MVC, possuiatémesmoum
frameworkabsurdamentepopular,o Struts,queajudarávocêa criarumservlet
FrontControllerflexíveledefácil manutenção.Vocêdevea si mesmotirar
vantagemdotrabalhodosoutrosparaquepossadespendermaistemponas
coisasmaisimportantesdavida...
ObjetivosdoExame 738
O poderdohardwareedo softwareportrásdospadrões 739
Revisãodosprincípiosdo designdesoftware... 744
Padrõesparadarsuportea componentesdemodelosremotos 745
VisãogeraldaJNDI edaRMI 747
O BusinessDelegateéum"intermediário" 753
SimplifiqueosseusBusinessDelegatescomo ServiceLocator759
HoradeusarumTransferObject? 761
Nossoprimeiropadrãorevisitado...MVC 762
Sim!É o Struts(eo FrontController),empoucaspalavras 767
Refatorandoa aplicaçãoBeerparao Struts 770
Revisãosobrepadrões 778
fausa pata
ºcaté
oTestePreparatório final. É isso,69perguntas.A aparência,osassuntos
abordadoseo nível dedificuldadesãopraticamenteidênticosaosdaprova
oficial.Nóssabemos.
o1
XVIII
Testepreparatóriofinal
Respostas
índice
791
828
865
1 Introdução
Como usar este livro?
Use a Cabeça JSP
A quemse destina este livro?
Sevocêresponder"sim" atodasestasperguntas:
(1)VocêsabeJava? (nãoprecisaserum guru)
®Vocêgostadeconsertar- vocêaprendefazendo,aoinvésdeapenasler?Vocêdeseja
aprender,compreender,lembrar dosservletsedosJSPs epassarno exameSCWD
for Java EE 1.5?
®Vocêprefereuma conversadescontraídaemumafestaa palestrasacadêmicassem
graçaetediosasestelivro épara você.
estelivro nãoéparavocê.
Quem provavelmentedeveria manter-se longe deste livro?
Sevocêresponder"sim" a algumadestasperguntas:
(!)VocêétotalmenteinexperienteemJava? Vocênãoprecisaestaremumnível
avançado,mas,definitivamente,deveteralgumaexperiência.Senãotiver,pegueum
exemplardoUse a Cabeça!Javaagoramesmo.Hoje! E sóentãoretomea estelivro.
®VocêéumdesenvolvedorJava"forçado"embuscadeum livro deconsulta?
®VocêéumveteranoemJ2EE embuscadetécnicasultra-avançadase"como-fazer"
específicosparaservidores,projetosparaempresasecódigoscomplexos,robustose
reais?
@ Vocêtemmedodeexperimentarcoisasdiferentes?Vocêpreferefazerumcanalno
seudenteamisturarlistrasnumtecidoxadrez?Vocêachaqueumlivro técnicoperdea
credibilidadeseoscomponentesJavativeremaparênciahumana?
estelivro nãoéparavocê.
xx
Nós sabemos o que você está pensando.
"Comoestelivro deprogramaçãopodesersério?"
"Com tantasilustrações?"
"Eu consigorealmenteaprenderdestaforma?"
E nós sabemos o que seu cérebro está pensando.
Seucérebroclamapornovidades.Estásempreprocurando,examinandoe
esperandoporalgodiferente.Ele foi criadoassimeo ajudaasemantervivo.
Atualmente,époucoprovávelquevocêvireo lanchinhodeumtigre,
masseucérebrocontinuaráemalerta.Nuncasesabe.
Então,comoseucérebrofazparalidarcomtodasascoisasrotineiras,
comunsenormaiscomasquaisvocêsedepara?Tudoo queelepuder
fazerparaimpedirquetaiscoisasinterfiramno seurealtrabalho:
registraro queinteressa.Não fazmalguardarascoisasfúteis;elasnunca
passarãopelofiltroqueretémo que"obviamentenãoimporta".
Comoseucérebroreconheceo queé importante?Suponhaquevocêtire
umdiaparafazerumacaminhadaeumtigrepulenasuafrente.O que
acontececoma suacabeçaeo seucorpo?
Os neurôniosdisparam.As emoçõessãoativadas.As reações
químicasexplodem.
E éassimqueseucérebroreconhece...
Isto pode ser importante! Não esqueça!
Mas, imaginequevocê estáemcasa,ou emuma
biblioteca.É um local seguro,acolhedore sem
tigres.Você estáestudando.Preparando-separa
um exame.Ou tentandoaprenderum assunto
técnicoedifícil, queseuchefeacreditaque
levaráumasemana,dezdiasno máximo.
Sóumproblema.Seucérebroestátentando
lhefazerumgrandefavor.Ele estátentando
assegurar-sedequeaqueleconteúdo,obviamente
irre1evante,nãová confundirospoucosrecursos.
Recursosestesqueseriammelhoresseusadospara
armazenaremcoisasrealmenteimportantes.Como
tigres.Comoo perigodofogo.Ou comovocê
nuncamaisdeveriapraticarsnowboarddeshort.
E não existeumjeito simples de dizer ao seu
cérebro, "Ei cérebro,muito obrigado, masnào
importa se o livro é tedioso, ou o quantoestou
registrandoagorana escalaRichter emocional,
eu realmentequero quevocê guardeestas
coisas por aqui."
você está
introdução
~ XXI
Use a Cabeça JSP
Então,o queénecessárioparaseaprenderalgo?Primeiro,vocêprecisaabsorveredepois
secertificardequenãoirá esquecer.Não temnadaa vercomenfiarcoisasnasuacabeça.
Baseando-senasúltimaspesquisasemciênciacognitiva,neurobiologiaepsicologia
educacional,o atodeaprenderenvolvemuitomaisquetextosemumapágina.E nóssabemoso
quefazo seucérebrofuncionar.
Alguns princípios de aprendizagem da série Use a Cabeça:
Dê ênfaseà parte visual.As imagenssãomuitomaisfáceis
deseremmemorizadasdoquepalavrassoltasetomamo
aprendizadomuitomaisprodutivo(aumentaematé89%a
memóriaeo aprendizadousandoatécnicadatransferência).E
facilitaa compreensão.Ponha aspalavrasdentroou próximas
àsrespectivasfiguras,emvezdenorodapéouemoutrapágina
eosleitoresserãoatéduasvezesmaiscapazesdesolucionaros
problemasrelacionadoscomaqueleconteúdo.
Useum estilopróprio eemforma deconversa.Em estudos
recentes,o desempenhodosalunosnasprovasrealizadasapós
aprenderemamatéria,melhoravaem40%seo conteúdofalasse
diretamenteaoleitorusandoaprimeirapessoa,comumestilo
quesimulasseumaconversaemlugardotomformal.Conte
históriasemvezdedarpalestras.Usea linguagemcoloquial.Evite
sermuitosério.Em quevocêprestariamaisatenção:emuma
companhiainteressantenafestaouemumapalestra?
precisa chamarum
métodono servidor
(
~
serviço
remoto RMI
Façao alunorefletir.Emoutraspalavras,nadaacontecenasuacabeça
amenosquevocêexercitemuitoosseusneurônios.O leitorprecisaestar
motivado,atraído,curiosoeinspiradopararesolverproblemas,tecer
conclusõesegerarumnovoconhecimento.E paraissovocêprecisade
desafios,exercícioseperguntasqueestimulemoraciocínio,alémde
atividadesqueenvolvamambososladosdocérebroeosmúltiplossentidos.
Prenda- esegure- a atençãodo leitor.Todosnósjá pensamos"eu
realmentegostariadeaprenderisto,maseunãoconsigomemanter
abstrac acordadodepoisdaprimeirapágina".Seucérebroprestaatençãoacoisas
roam() ; quesãoextraordinárias,interessantes,estranhas,atraenteseinesperadas.
/ Aprenderumassuntonovo,difícil etécniconãoprecisaserchato.Seu
f, cérebroaprenderámuitomaisrápidoseo assuntofor interessante.
c.óM !)WIpM'l.fb-rV!i!'5Udi,
Mexa coma emoçãodo leitor.Agora nóssabemosquesuacapacidadede
recordaralgodependeenormementedo seuconteúdoemocional.Aquilo que
vocêsepreocupa,vocêserecorda.Você serecordaquandosentealgo.Não,
nósnãoestamosfalandodehistóriasde sofrimentoentreummeninoe seu
cão.Estamosfalandodeemoçõescomoa surpresa,a curiosidade,adiversão,
o "caramba!..." e aquelasensaçãode"Eu souo cara!"quevemquandovocê
conseguematarumacharada,aprenderalgoquetodosachamdifícilou
perceberquesabeumacoisaqueo "bam-bam-bam"daengenharianãosabe.
XXII
introdução
Metacognição: pensando sobre pensar
Sevocêrealmentequeraprender- eaprendermais
rápidaedefinitivamente-, presteatençãoemcomo
vocêprestaatenção.Penseemcomovocêpensa.
Aprendacomovocêaprende.
A maioriadenósnãofezcursosdemetacogniçãoou
teoriadoaprendizadoenquantocrescia.Esperamque
aprendamos,masraramentenosensinamaaprender.
Supomosquesevocêestásegurandoestelivro,você
queraprenderservletse,provavelmente,nãoquer
perdermuitotempo.Considerandoquevocêfará
aprova,vocêteráquelembrardoqueleu.Logo,
precisaentendero quefoi lido.Paraobtero máximo
destelivro - oudequalqueroutrolivro ouformade
aprendizado-, dêresponsabilidadesaoseucérebro.
Faça-oficaratentoa esteconteúdo.
O truqueéfazercomqueseucérebroencarecomo
RealmenteImportanteo novomaterialquevocê
estáaprendendo.Crucialparao seubem-estar.
Tão importantequantoumtigre.Casocontrário,
vocêestaráconstantementeemconflito,como seu
cérebrodandoo melhordesi paranãoassimilaro
assuntonovo.
Então, como você FAZ para que seu cérebro
considere os servlefs um tigre faminto?
Existemasformaslentaetediosaeamaisrápidaeefetiva.A formalentaéapurarepetição.É claro
quevocêsabequeserácapazdeaprendererelembraratémesmoo assuntomaisestúpidoseo ficar
repetindo.Comumarepetiçãointensaseucérebrodiz, "istonãopareceimportanteparaele,masele
ficaolhandoparaamesmacoisarepetidamente,entãoeuimaginoquedevaser".
A maneiramaisrápidaéfazerqualquercoisaqueaumentesuaatividadecerebral,principalmente
atividadesdetiposdiferentes.O quefoi ditonapáginaanterioréumagrandepartedasoluçãoe
foi comprovadocomoformadeajudarseucérebroatrabalharemseufavor.Por exemplo,estudos
demonstramquecolocandoaspalavrasdentrodasfigurasqueelasrepresentam(emvezdesoltasna
página,comoumaexplicaçãooudentrodotexto)faz comqueseucérebroentendacomoasfigurase
aspalavrasserelacionam,ativandomaisneurônios.Mais neurôniosativadossignificamaischances
do cérebroentenderquedeterminadoassuntomereceatençãoe,possivelmente,deveserregistrado.
O estilointerativotambémajuda,poisaspessoastendemaprestarmaisatençãoquandopercebemque
estãoemumaconversa,já queseesperaqueela;sacompanhematéo final.O interessanteéqueseu
cérebronãoseimportanecessariamentequea "conversa"sejaentrevocêeumlivro! Por outrolado,
seo estilodeescreverfor secoeformal,seucérebroentenderáissodomesmomodoquevocêo faria
seestivesseemumapalestranumasalarepletadeparticipantesindiferentes.
Porém,asfiguraseo estiloquesimulaumaconversasãosóo começo.
você está ~ XXIII
Use a Cabeça JSP
Eis O que NÓS fizemos:
Ro<:hd'~ttltf
W<wd<;::ligners~
Quthere..•
Nós usamosfiguras,poisseucérebroestáadaptadoaoqueévisual,
nãotexto.Paraele,umaimagemvale1.024palavras.E quandofiguras
etextostrabalhamjuntos,nósinserimoso textonaimagem,poisseu
cérebrofuncionamelhorquandoo textoestádentrodaquiloaqueserefere,I
diferentedeestarnumaobservaçãoouescondidoemalgumlugarnotexto.
Nós usamosa repetição.Dizemosamesmacoisadeformasdistintase
atravésdemeiosdiferentes- emúltiplossentidos-, paraaumentaras
chancesdeo assuntoserregistradoemmaisdeumaáreacerebral.
Nós usamososconceitoseasfigurasdemaneirainesperada,poisseu
cérebroéativadoquandoencontraumanovidade.E usamosfigurase
idéiascompelomenosalgumconteúdoemocional,poisseucérebroestá
predispostoa darmaisatençãoàbioquímicadasemoções.Aquilo que
tefaz sentiralgotendea sermaisfacilmentelembrado,aindaqueesta
sensaçãonãopassedeumpoucodehumor,surpresaou interesse.
Nós usamosumestilopróprioquesimulaumaconversa,porqueseu
cérebrotendeaprestarmaioratençãoquandoacreditaquevocêestá
participandod~umaconversaenãoassistindopassivamenteauma
apresentação.E assimquefuncionamesmoquandovocêestálendo.
Nós incluímosmaisde40atividades,pois seucérebroestáhabituadoa
aprenderearelembrarmaisquandovocêfaz algumacoisadoquequando
vocêlê arespeito.E colocamosexercíciosdificeis,porémpossíveisde
seremfeitos,poisécomoamaioriadaspessoasprefere.
Nós usamosmétodosdiferentesdeaprendizado,poisvocêpoderia
preferirosprocedimentospassoapasso,enquantooutrapessoa
poderiapreferirentenderprimeiroasfigurasgrandes,enquantooutras,
simplesmenteverosexemplosdecódigos.Mas, independentementeda
suaprópriapreferênciadeaprendizado,todossebeneficiamvendoo
mesmoconteúdorepresentadosobmúltiplasformas.
Nós colocamosassuntosparaseremusadospor ambososladosdoseu
cérebro,poisquantomaisvocêusardoseucérebro,maischancesteráde
aprenderelembrar,alémdemaistempodeconcentração.Já quecolocando
parafuncionarumladodocérebrosignificageralmenteaoportunidadedo
outroladodescansar,vocêpoderáproduzirmaispormaistempo.
E nósincluímosestudosdecasoeexercíciosqueapresentammais
deumpontodevista,poisseucérebroestáadaptadoa aprendermais
intensamente,quandoforçadoa fazeravaliaçõesejulgamentos.
Nós inserimosdesafioscomexercícioseperguntasquenemsempretêm
respostasdiretas,poisseucérebroestámaispropensoaaprenderelembrar
quandotemqueseesforçarporalgo.Pensenisso- vocênãoconseguemanter
seucorpoemformaapenasobservandoaspessoasnaacademia.Porem,nós
fizemoso melhorpossívelparagarantirque,quandovocêestivertrabalhando
duro,serápelascoisascertas.E quevocênãoestarádesperdiçandonenhum
dendritoa mais,tentandoentenderumexemplocomplicadoouanalisando
umtextodificil,repletodejargões,ouentão,extremamenteresumido.
Nós usamospessoasnashistórias,nosexemplos,nasfiguras,etc.Afinal,
vocêéumapessoaeseucérebrodámaioratençãoapessoasdoqueacoisas.
Nós usamosatécnicado80/20.Entendemosquesevocêpretendeserum
PhD emJSP, estenãodeveserseuúnicolivro. Logo, nãofalamossobre
tudo.Apenasdamatériaquevocêrealmenteprecisará.
XXIV
introdução
Eis O que VOCÊ pode fazer para
dominar seu cérebro
Então,fizemosanossaparte.O restoécomvocê.As dicasa seguirsãoo
pontodepartida.Presteatençãono seucérebroedescubrao queservee o
Jef!cá/'h , quenãoserveparavocê.Experimentenovidades.
d ! " f: C<J!Y4{1P - ;
~",J1?1tJ;«elf'tI. (). "i!IPó/'r",
(1)Vá devagar.Quanto maisvocêentender,
menosterá quememorizar.
Nãoleiaapenas.Pareepense.Quandoo
livroperguntaralgo,nãopuleparaaresposta.
Imaginequealguémestejarealmentelhe
fazendoapergunta.Quantomaisvocêforçaro
seucérebroapensar,melhoresserãoaschaTIces
deaprendererecordar.
®Faça osexerCÍcios.Faça suaspróprias
anotações.
Nós oscolocamosno livro,massenós
resolvermos,vaiparecerquealguémestá
fazendoa ginásticaparavocê.E nãobasta
olharosexercícios.Useumlápis.Está
provadoquea atividadefisica,enquantose
estuda,podemelhoraro aprendizado.
@)Leia a seção"Perguntar não ofende".
Ou seja,todaselas.Elasnãosãobarras
lateraisopcionais.Elas s ãopartedo
conteúdoprincipal!Não aspule.
@Antes deir dormir, façadestaa suaúltima
leitura. Ou pelomenosa última quelhe
exija racioCÍnio.
Partedoaprendizado(especialmentea
transferênciaparaamemóriadelonga
duração)acontecedepoisquevocêfechao
livro. Seucérebronecessitado seupróprio
tempoparamaiorprocessamento.Sevocê
puserumainformaçãonovaduranteeste
tempodeprocessamento,o quevocêacabou
deaprenderseráperdido.
@Bebaágua.Muita água.
Seucérebrofuncionarámelhorsereceber
umbelobanho.A desidratação(quepode .
acontecerbemantesdevocêsentirsede)
reduza funçãocognitiva.A cerveja,oualgo
maisforte,serábem-vindaquandovocê
passarno exame.
®Fale. Em voz alta.
Falando,vocêativaumapartediferentedo
cérebro.Sevocêestivertentandoentender
algoouaumentarsuachancederecordar
maistarde,leiaemvoz alta.Melhor ainda,
tenteexplicaristoparaoutrapessoaemvoz
alta.Vocêaprenderámaisrápidoetalvez
observeidéiasquevocênãohaviapercebido
queestavamali enquantolia.
Q)Ouça seucérebro.
Observeseo seucérebronãoestáficando
sobrecarregado.Sevocêsepegarpassando
amãonasuperficiedo livro ouesquecendo
o queacabaradeler,éhoradeuma
pausa.Umavezquevocêultrapasseum
determinadoponto,vocênãoaprenderámais
rápidosetentar"enfiar"maisinformação
nacabeçaepoderáatécomprometero
processo.
®Sinta algo!
Seucérebroprecisasaberqueistoé
importante.Envolva-secomashistórias.
Crie suasprópriaslegendasparaasfotos.
Darumsorrisoamareloquandoumapiadanãotemgraçaaindaémelhordoquenão
esboçarreação.
®FaçaoTestePreparatórioFinal sóDEPOIS
deacabaro livro.
Sevocêfizero testemuitocedo,vocênão
teráumaidéiaclaradasuapreparaçãopara
o exame.Espereatésentirquevocêestá
quaseprontoeentãofaçao testeem,no
máximo,135minutos- o tempoverdadeiro
doSCWCD.
você está •• XXV
Use a Cabeça JSP
oque você precisapara este livro:
Além do seucérebroeumlápis, vocêprecisado Java, do Tomcat5 e de
um computador.
Vocênãoprecisadenenhumaoutraferramentadedesenvolvimentocomoo
IntegratedDevelopmentEnvironment(IDE). Definitivamente,recomendamos
quevocênãousenadaalémdeumeditorsimplesatéterminaro livro.Um
IDE quereconheceservleteJSP poderáprivá-lo dealgumdetalherealmente
importante(equecairánaprova).Por isso,émelhorvocêevitardesenvolver
todoo beanmanualmente.Umavezquevocêrealmenteentendao queestá
acontecendo,poderáutilizarumaferramentaqueautomatizealgunsdos
passosparaacriaçãoedistribuiçãodoservlet/JSP.Sevocêjá sabecomousar
oAnt, poderáusá-loapóso capítulo3paraajudarnadistribuição.Porém,não
recomendamosusaroAnt atéquevocêtenhamemorizadocompletamentea
estruturadedistribuiçãodaaplicaçãoweb.
OBTENDO O TOMCAT --------,
Casoaindanãopossuao Java SE v1.5ou superior,vocêvai
precisar(depreferência1.4).
Sevocênãotemaindao Tomcat5, obtenha-oem:
http://tomcat.apache.org/
Selecione"Tomcatv5.5"nomenuDownloadsno ladoesquerdo
dahomepage.
• Pagineatéaseção"BinaryDistributions"(DistribuiçõesBinárias)
efaçao downloaddaversãoescolhida.Senãosouber,então,
selecioneadistribuição"Core"(Básico);étudoquevocêprecisa.
Salveo arquivodeinstalaçãoemumapastatemporária.
Instaleo Tomcat.
ParaWindows,dêumduplo-cliqueno arquivoinstall.exeesiga
asinstruçõesdo assistentedeinstalação.
Paraosoutrossistemas,descompacteo arquivodeinstalação
no diretórioondevocêquerqueo Tomcatresida.
Parafacilitarasinstruçõesdo livro,renomeiepara"tomcat"o
diretóriohomedoTomcat(ouconfigureumcognome"tomcat"
queaponteparao homeverdadeirodoTomcat).
ConfigureasvariáveisdeambienteparaJAVA_HOME e
TOMCAT HOME, damesmaformacomovocênormalmente
faz emsuamáquina.
Vocêdeveterumacópiadasespecificações,emboranão
precisedelasparapassarno exame.Até o lançamentodeste
livro,asespecificaçõeseram:
Servlet2.4(JSR #154) http://jcp.org/eng/jsr/detail?id=154
JSP 2.0(JSR #152) http://jcp.org/eng/jsr/detail?id=152
JSTL 1.1(JSR #52) http://jcp.org/eng/jsr/detail?id=52
Vá atéapáginaJSR ecliqueemDownloadPageparao
lançamentomaisrecente.
Testeo Tomcatrodandoo scripttomcat/bin/startup(startup.
shparaossistemasLinux/Unix/OSX). Digitenabarrade
endereçosdoseubrowser:
http://localhost:8080/evocêveráapáginainicialdoTomcat.
XXVI
.~ ...
Java2 StandardEdition 1.5
Tomcat5
O exameabrangeas
seguintesespecificações:
•Servlets2.4
·JSP 2.0
•JSTL 1.1
Coisas de última hora que você precisa saber:
Istoéumaexperiênciadeaprendizadoenãoumlivro de
referência.Nós retiramosdeliberadamentetudoquepudesse
atrapalharo caminhodo aprendizado,independentementedo
queestejamostrabalhandono livro.E, desdeo primeiroinstante,
comecedocomeço,pois o livro faz consideraçõesquantoàquilo
quejá foi vistoeaprendido.
Nós usamosdiagramassimpleseparecidoscomUML.
Emboraexistaumagrandechancedevocêjá saberUML, istonão
écobradono exameenãoéumpré-requisitoparao livro.Então,
vocênãoteráquesepreocuparemaprenderservlets,JSP, JSTL e
UML aomesmotempo.
Nós nãocobrimostodososdetalhesminuciososda especificação.
O exameémuitodetalhado,mas,nóstambémsomos.Porém,se
existeumdetalhenaespecificaçãoquenãoécobradono exame,só
o citaremossefor importanteparaamaioriadosdesenvolvedoresde
componentes.O quevocêprecisasaberparacomeçaradesenvolver
componentesweb(servletse JSPs), eo queprecisaparapassarno
exame,cobrecercade85%.Nós incluímosalgumascoisasquenão
caemnaprova,massinalizamosparaquevocênãosepreocupeem
memorizá-Ias.Nós criamoso verdadeiroexame,portanto,sabemos
ondevocêdeveráconcentrarsuaenergia!Sehouverapossibilidade
deummínimodetalhefiguraremumaquestãodaprova,masseo
esforçoparaaprendê-Iorealmentenãovalhaapena,provavelmente
ouo omitiremos,ouo abordaremossucintamente,ouo colocaremos
emumaquestãodotestepreparatório.
As atividadesNÃO sãoopcionais.
Os exercícioseasatividadesnãosãomerosadicionais;elessão
partedoconteúdoprincipaldo livro.Algunsestãoláparaajudarna
memorização,outrosparaajudarnacompreensão,enquantooutros
o ajudarãoa aplicaro quevocêaprendeu.Não pulenada.
A redundânciaéintencionaleimportante.
UmacoisaqueéclaramentediferenteemumlivrodasérieUsea
Cabeça!équenósqueremosmuito,muito,muítoquevocêentenda.
E gostaríamosquevocêterminasseo livro lembrandoo que
aprendeu.A maioriadasinformaçõesedoslivrosdereferênciasnão
tem,necessariamente,aretençãoealembrançacomoobjetivos,mas
aquivocêveráalgunsconceitosapareceremmaisdeumavez.
Os códigos-exemplossãoosmaisresumidospossíveis.
Nossosleitorestêmrelatadoo quantoéfrustranteler
minuciosamente200linhasdecódigosprocurandoporaquelas
duaslinhasqueelesprecisam.A maioriadosexemplosdestelivro
éexibidadentrodosmenorescontextospossíveis,paraqueaparte
quevocêprecisafiqueclaraesimples.Não esperequeo código
sejarobustooucompleto.Estaésuatarefaparaquandoterminaro
livro.Os exemplosaquisãoescritosespecialmenteparaaprendere
nemsempresãototalmentefuncionais.Algunsexemplosdecódigo
parao livro estãodisponíveisemwww.altabooks.com.br
introdução
fJS{Ufl6S VI?, fJMI-.
m~Ji/tllt:M.,lt~f!h!4,(~
Diretor
getMovies
getOscars ( )
getKevin
BaconDegrees()
você está aqui ~XXVII
fazendo a prova
Sobre o exame SCWCD (para Java EE 1.5)
oexameSCWCD atualizadoé chamadode"Sun CertifiedWebComponentDeveloper
for Java Platform,EnterpriseEdition 5" (CX-310-083),masnão fiqueconfusocom o
título.O exameatualizadoaindaé designadoparao Java EE vIA, parao servletv2A e
asespecificaçõesJSP v2.0.
PrimeirotenhoquepassarnoSCJP?
Sim.O exameWebComponentDeveloper,exameBusinessComponentDeveloper,
exameMobileApplicationDeveloper,exameWebServicesDevelopereexame
DeveloperrequeremquevocêsejaumSunCertifiedJavaProgrammer.
Quantasquestões?
Vocêterá69questõesquandofizeroexame.Ninguémtêemasmesmas69questões;existem
muitasversõesdiferentesdoexame.Mastodastêmomesmograudedificuldadeeomesmo
equilíbriodetópicos.No examereal,espereverpelomenosumaquestãodo objetivode
cadaexameeexistemalgunsobjetivosnosquaisvocêterámaisdeumaquestão.
Quantotempotenhoparacompletaroexame?
Vocêtemtrêshoras(180minutos).A maioriadaspessoasnãoachaqueissoéumproblema,
pois essasquestõesnãosãolongas,complicadas,complexas.A maioriadasquestõesé
muitocurta,temmúltiplaescolhaevocêsabearespostaounão.
Comosãoasquestões7
Elas sãoquaseexatamentecomoasnossasperguntassimuladasdoexame,comuma
grandediferença- o examereal informa-oquantasrespostasestãocorretas,nósnão.
Contudo,vocêveráalgumasperguntasdotipoarrastaresoltarquenãopodemosfazer
aqui.Mas asquestõescomarrastaresoltarsãoapenaso modointerativodecoincidir
umacoisacomoutra.
Quantastenhoquerespondercorretamente?
Vocêdeveter49questõescorretas(70%)parapassarno exame.Quandoterminar
deresponderatodasasquestões,mantenhao cursordomousesobreo botãoDone
(Terminado)atéquetenhacoragemdeclicá-Io.Em cercadeseisnanossegundos,você
saberásepassou(claro,vocêpassará).
Por queosexamessimuladosnolivronãoinformamquantasopçõesescolherparaa
respostacorreta?
Queremosquenossosexamessejamapenasumpoucomaisdifíceis queo examereal,
para lhe dar uma idéia mais verdadeiraparasaberse você estáprontopara fazer o
exame.As pessoastendematernotasmaisaltasnosexamessimuladosdo livro porque
refazemo mesmotestemais de umavez e não queremosquevocê tenhauma falsa
sensaçãode suaaptidãopara o exame.Os leitorestêminformadoque a pontuação
conseguida no examereal é muito próxima da pontuaçãoque eles têm no exame
simuladofinal nestelivro.
XXVIII introdução
oqueacontecedepoisdefazer o exame?
Antesdedeixaro centrodeteste,obtenhao relatóriodeseuexame.Ele mostraum
resumodesuapontuaçãoemcadaáreamaioresepassououfalhou.Guarde-o!Ésua
provainicial dequevocêfoi certificado.Em poucassemanasdepoisdoteste,você
receberáumpequenopacotedaSunEducationalServicesqueinclui seucertificado
impressoreal,umacartadefelicitaçãodaSuneumadorávelalfinetedelapela
informandoSunCertifiedWebComponentDeveloperemumafontetãopequenaque
vocêpoderiadeclararsercertificadoemqualquercoisaquequisesseeninguémpoderia
lerparasabera diferença.Não incluiabebidaalcoólicaquevocêestaráquerendodepois
depassarno exame.
Quanto custaecomomeregistro?
O examecustaUS$200.E épor issoquevocêprecisadestelivro...paraassegurar
quepassaránaprimeiravez.Vocêregistra-seatravésdo SunEducationalServices,
fornecendoo númerodeseucartãodecrédito.Em troca,receberáumnúmerode
voucher,queusaráparaagendarumencontroemumPrometricTestingCentermais
próximodevocê.
Paraobterdetalheson-lineecomprarumvoucherdoexame,comeceem:bttp://www.sun.
com/training/certificationi.SeestivernosEstadosUnidos,estarámarcado.Senão,poderá
selecionarumpaísnabarrademenusàdireita.
Como éo softwaredo exame?
É bemsimplesdeusar- vocêtemumaquestãoeresponde-a.Senãoquiserresponder,
poderápulá-Iaevoltarparaelamaistarde.Searesponder,masnãoestivercertoe
quiservoltarparaelasetivermaistempo,poderá"marcar"umaquestão.Assim que
tiverterminado,veráumatelaquemostratodasasquestõesquevocênãorespondeuou
marcou,paraquepossavoltarparaelas.
Bem no início do exame,vocêobteráum pequenotutorialsobrecomousaro software,
ondeconseguirumpequenotesteprático(nãosobreServlets).O tempogastonotutorial
nãocontacomoo tempogastono exameSCWCD. O relógionãoiniciaráatéquevocê
tenhaterminadoo tutorialdo softwaredeexameeestiverprontoparacomeçar.
Ondepossoencontrarumgrupodeestudoequantotempolevaráparamepreparar?
O melhorgrupodeanáliseon-lineparaesteexameéaquelequeos autores
presidem!(Deus,quaissãoasprobabilidades?)Pareemj avaranch.comeváparaBig
Moose Saloon(é ondeestãotodosos fórunsdediscussão).Vocênãopodeperder.
Semprehaveráalguémpararespondersuasperguntas,inclusivenós.JavaRanché
a comunidadeJava maisamistosana Internet,portanto,vocêserábem-vindonão
importandoo nível emqueestiverno Java. Sevocêaindaprecisartero SCJP, iremos
ajudá-Iocomeletambém.
Quantotempolevaparaficarprontoparao examedependemuitodequantosservlets
eexperiênciaJSP vocêtem.Sevocêfor novo.nos servletseno JSP, poderáprecisarde
6 a 12semanas,dependendodequantotempopodededicara cadadia.Aquelescom
muitosservletsrecentese experiênciaJPS geralmentepoderãoestarprontosematé
trêssemanas.
você está ~ XXIX
a equipe de revisores
Betatesters& RevisoresTécnicos
IV';" 1"+(;5f'~f~d",
("'4S+õ'ó
''''Pórhwl-e&1/4",1-"
"$"'1I+r"s)
/1-",1'+L"",dhe
XXX introdução
lA"fi.iS d"'$f•.•ude
~a,beld$!JT'rt.b'Jc'(';s f>4!JJ'"
Céwsa deshItvrcó,
-I
de:J""'5 ---.----/
A"drew1Lf.""k/,{Jtlse
(~
fl.ee,l-ish lA.adafta
J.tU'ct'~J.t.f<}
Outras pessoas a quem ~:
Na O'Reilly:
NossosmaioresagradecimentosaMike Loukides naO'Reilly,
por iniciartudoeajudara darformaaoconceitoUse a Cabeçaem
umasérie.AdoramosterumeditorqueéumVerdadeiroJava.E um
grandeagradecimentoà forçamotrizpor trásdoUse aCabeça,Tim
O'Reilly. Felizmenteparanós,elesempreestápensandono futuro
egostadeserumainfluênciadestruidora.ObrigadoaKyle Hard "a
mamãedasérie"Use a Cabeçainteligentepordescobrircomoo Use
a Cabeçaencaixa-senorestodoslivrosdecomputador.
Nossosrevisoresintrépidos:
Tudobem,então,o livro levouumpoucomaisdetempodo que
tínhamosplanejado.Mas semo gerentederevisãoJavaRanch
Johannes deJong, eleteriaficadoassustadoramenteatrasado.Você
énossoherói,Johannes.E nossosagradecimentosespeciaisa Joe
Konior cujo feedbackemcadacapítulofoi quasedomesmotamanho
docapítulo.Estamosprofundamenteagradecidospeloesforço
inexoráveleexperiência(ealegria)dePhilippe Macquet.Todos
ostrêsautoresadoram-notantoquequeremoscasarcomele...mas
issoseriaestranho.E estamosmuitogratosaAndrew Monkhouse
pelofeedbacktécnicoeajudanastraduçõessutisdoinglêsparaa
línguaaustraliana.Jef Cumps, suainterpretaçãoMP3 dacanção
"setHeader"foi impressionante(excetotalvezpor serumpoucoemo)
eseuscomentáriostécnicosforamrealmenteúteis.
DaveWood trabalhoucomafincoemtudoefoi carinhosoaoapontar
paraasprimeiraspáginasedizer:"Issonãoéo estiloUsea Cabeça".
TambémtivemosumfeedbackexcelentedosmoderadoresJavaRanch
Jason Menard, Dirk "cara depeixe"Shreckmann,Rob Ross,
Ernest Freidman-Hill eThomasPaul. E comosempre,agradeço
especialmenteaochefejavaranch.com,Paul Wheaton.
Agradecimentosespeciaisaosseguintesrevisorestécnicospela
segundaedição:Bear Bibeault,TheodoreCasser,UlfDittmer,
PreetishMadalia, SergioRamirez, Oliver RoeU,Neeraj Singhal e
Collins Tchoumba.
Perguntasdoexaminesimulado
Sevocêseencontrarbalançandoa cabeçaemumaquestãosimulada
JSP particularmentecapciosa,nãonosculpe- culpeMarc Peabody!
ObrigadoMarcporajudaramantertodososcandidatosSCWCD
emalerta.Marc passaumaquantidadeenormedeseutempolivre
moderandono JavaRanch,ondeéconhecidoporestimularos
usuáriosRancha construirmisturashorríveisdesuastecnologiasJava
EE inocentes.
introdução
você está ~ XXXI
mais reconhecimentos
Tem mais gente ainda*
Por Bryan Basham
Eu poderiacomeçaragradecendoà minhamãe,masissojá foi feito antes... Meu conhecimentoem
desenvolvimentowebcomJava temcomobasealgumasaplicaçõesdemédiaescalaqueescrevi,mas
estabasefoi melhoradaerefinadaporanosdedebateemJavacomoinstrutordaSun,usandoume-mail
comumnomefictício.Emparticular,gostariadeagradecera SteveStelting,VictorPeters,Lisa Morris,
Jean Tordella,Michael Judd, Evan Troyka e Keith Ratliff. Muitas pessoasajudarama lapidarmeu
conhecimento,masestesseisforamasfacasquemelhormeesculpiram.
Comoemtodososprojetosdelivro,osúltimostrêsmesesforammuitodificeis.Gostariadeagradeceràminha
noiva,KathyCollina,portersidopacientecomigo.Eu queroagradeceraKarmaeKiwi (nossosgatos)pelas
sessõesdelambidastardedanoiteeaspancadasnoteclado.
Por último,e maisimportante,tenhoqueagradecerà Kathy e ao Bertpor sugeriremquelevássemos
adianteo projeto.KathySierraémesmoúnicanomundo.Seuconhecimentoemmetacogniçãoedesign
educacionalsó se comparamà suaessênciacriativaquetransbordanos livros destasérie.Eu tenho
trabalhadocomeducaçãohá cincoanosepraticamentetudoo queaprendifoi coma Kathy...Oh, não
sepreocupecomminhamãe;elareceberáumagrandededicatóriaemmeupróximoUse a Cabeça!.Eu
teamo,mãe!
Por KathyeBert
Issofoitãosentimental,Bryan,ohhhh...(NãoqueaKathynãogostederasgarumaseda).Mas,concordamos
quandofalasobresuanoiva.Masnãoporelatersentindosaudadessuas,enquantojogavaUltimateoverãotodo
enóstrabalhávamosfeitocachorroemnossosPowerbooks1.Masvocêrealmentefezdissoumaexperiência
recompensadora,Bryan,ehojeé o melhor(NA)co-autorquejá tivemos!Chegaquasea assustaro quanto
vocêécalmoefelizotempotodo.
Todosnósadoramosa equipequetrabalhaduronosexamesdecertificaçãodaSun,emespeciala Gerente
deCertificaçãoemJava,EvelynCartagena.Queremosagradecertambématodososcolegasqueajudarama
desenvolverasespecificaçõesdosJSRs paraServleteJSP.
*ogrande número de agradecimentos éporque estamos testando uma teoria
de que todos os mencionados na seção de agradecimentos do livro comprarão
pelo menos uma cópia, talvez mais, contando os parentes e tudo. Se você
quiser estar na seção de agradecimentos do nosso próximo livro, e se tiver
uma família grande, escreva-nos.
1 Ponto de esclarecimento: O Bryan foi o único co-autor que nós tivemos,
mas isto não diminui em nada a nossa intenção.
XXXII
Por que usar Servlets & JSPs?
As aplicações web estão na moda. Claro, as aplicações GUI podem
usar aquelas coisas exóticas do Swing, mas quantas aplicações GUI você
conhece que são usadas por milhões de usuários em todo o mundo? Como
desenvolvedorde aplicações web, você não precisará se prenderaos
problemas de distribuiçãopresentes em toda aplicação standalone e irá
distribuirsua aplicação a qualquer pessoa que possua um browser. Porém,
para construiruma aplicação web poderosa mesmo, você precisa do Java.
Dos servlets. Dos JSPs. Pois as velhase estáticas páginas HTML são tão,
digamos, "1999".Hoje, os usuários esperam por sites dinâmicos, interativos
e customizáveis.Aqui, você aprenderá como mudardo site na web, para a
aplicação na web.
este éum novo ca~)ítuio
objetivos do exame oficial da Sun
Visão geral dos Servlets & JSP
1.1 ParacadaumdosMétodosHTTP (como
GET, POST, HEAD eassimpordiante):
DescreverosbeneficiosdoMétodo
HTTP
DescreverasfuncionalidadesdoMétodo
HTTP
Listarostriggersquepodemlevarum
Cliente(geralmenteumbrowser)ausar
o método
Tambémjaz partedo Objetivo1.1,masnãoserá
abordadonestecapítulo:
Identificaro métodoHttpServletque
correspondaaoMétodoHTTP
2 capitulo1
Notas sobre a Abrangência:
Os objetivosdestecapítulosãoabordados
completamenteemoutrocapítulo,então,
considereestecapítulocomoumabase,
emprimeiramão,para o quevirá adiante.
Em outraspalavras,nãosepreocupe
emterminarestecapítulosabendo(e
lembrando)de itensespecificosdestes
objetivos;apenasuseistocomoumabase.
Sevocêjá dominaestesassuntos,poderá
simplesmentedar umaolhadarápidae
passarpara ocapítulo2.
Vocênãoencontraránenhumaperguntano
testepráticosobreestesassuntosatéque
vocêchegueao capítulomaisespecifico,
ondeelesserãoabordados.
introduçãoearquitetura
rodos queretM UtMwebsite
Vocêtemumaidéiafantásticaparaumwebsite.Paraaniquilar
comosconcorrentes,vocêprecisadeumaarquiteturaflexívele
escalonável.Vocêprecisadeservletse JSPs.
Antesdecomeçarmosa construção,vamosdarumaolhadanarede
mundialdecomputadores,aumadistânciadeaproximadamente
40kpés.O quemaisnosimportanestecapítuloécomoosclientes
eservidoreswebsecomunicamentresi.
Provavelmente,asmuitasdaspáginasa seguirserãoumarevisão
paravocê,principalmentesevocêjá éumdesenvolvedor.
Contudo,teremosa chancededefiniralgumasdasterminologias
queusaremosno decorrerdo livro.
A- we!I c4"Sls-!--f:f!1t\ ;l!t.;;es declte".f-es
(,/sa"dlJ brlJWSfJ'SCtl""lJ lJ llA.o;llla {}V6
Sa.lard fi! serllt;/{}rff!S(;'6;/0.";/6 apUctlj;;es
C61t\tl6 A-ptlct.e); ClJ"ec.f-a;/lJStl+NJ.V;S ;/e
redes ClJlt\Iltl e wtreless. 1JI)SS6 "''de+tv6
; ClJ"s.f-I'Vll' Vlt\tltlpllca{ã6ave lJS clle,,-I-es
44 red41' ;/6 It\V,,;/lJp6SS8..."tlcessal'. í "ôS
+6N78.1''''''Ses.f-vpt;/lJ..."e,,-I-erlcf/'JS.
Cliente
aterra
você está aquí I; 3
servidor Web
o que o seu servidor web faz?
Um servidorwebrecebeumasolicitaçãoedevolvealgopara o cliente.
Um browserpermiteaousuáriosolicitarum recurso.O servidor
pegaa solicitação,encontrao recursoeretomacomalgoparao
usuário.AlgumasvezesesterecursoéumapáginaHTML. Outras,
umafigura.Ou umarquivodesom.Ou atémesmoumdocumento
PDF. Não importa- o clientesolicitaumacoisa(recurso)eo
servidora enviadevolta.
A menosqueo recursonãoestejalá.Oupelomenos,nãoestáonde
o servidoresperavaencontrá-Io.Certamente,vocêjá estábem
familiarizadocomo erro"404NotFound"- arespostaquevocêrecebe
quandoo servidornãopodeencontraro queeleachaquevocêsolicitou.
Quandodizemos"servidor",estamosquerendodizerouamáquina
física(hardware),oua aplicaçãodoservidorweb(software).Ao
longodo livro, sea diferençaentreo hardwareeo softwaredo
servidorimportar,nósdiremosexplicitamentea qualdosdois
(hardwareou software)nosreferimos.
/} sali'cl.fa{i6 JÍ6 clle~ C611#1VI()
l1ólVlee el1Jel"eS6 (li. (J}t.f-);JIJ.3l1t1fJ
alie fJ cltewh! es.f: fl"6ClIl"lJ.l1Ja.
~
C3"~
~
~
~~
\
/} l"espas.ffJ. Ja sel"lI,i/t'J1"C6#1#1VIa
J.oclIlVlel1.favel"JaJell'tJ !ve tJ dtewh
stJlicr.f6l1 (6V VIVIC:iiil51) de el"l"õ se I)
feJti/6 1146fvJel'sel" fl"l)cessad6).
bel"fi./lVlel1h; 6 sel'vti/tJl"
hlVl IVIlIt-.f6C6#1htdtJ
fbJe seI' 1Vlfi.I1JÍIí.Jbffi.NJ. tJ
/ 1__.1lISVfJ.l't'"b.tsh (;tJ#1-rrtllJfJ
f6Je ser f~''''fJ.S; JPíbs
e <':Jv.fl"<':Jsl'eCVI'SfJs.
4 1
introduçãoearquitetura
oqueUtM cliettteweb faz?
Um clientewebpermiteao usuário fazer solicitaçõesao
servidor,exibindopara eleo resultadodo pedido.
Quandofalamosemclientes,no entanto,geralmentequeremos
dizeraomesmotempoo usuárioeo browser(ouumdosdois) .
O browseréo software(comoo Netscapeouo Mozilla) quesabe
secomunicarcomo servidor.A outragrandetarefadobrowseré
interpretaro códigoHTML eexibirapáginaaousuário.
Então,apartirdeagora,quandousarmoso termocliente,
geralmentenãonospreocuparemosseestamosfalandodousuário
oudobrowser.Em outraspalavras,o clienteéo browserjazendo
aquiloqueo usuáriosolicitou.
ServidorBrowser
oservidor encontra
a páginasolicitada.
G1J------=7
o browser formato a
solicitação e a envia para
o servidor.
Usuário
o usuário clica em um
link no browser.
~
•.'P: ~
;\"1'"I I .I
obrowser consegue o
HTML e o traduz em
formato visual para o
usuário.
oservidor formato a
resposta e a envia para o
cliente (browser).
-~I~I
Servidor
você está aqui ~ 5
HTMLeHTTP
Os clietttese osservidoresconhecel\tHfML eHffF
HTML
Quandoumservidorrespondea
umasolicitação,elegeralmente
enviaalgumtipodeconteúdo
parao browser,paraqueeste
possaexibi-Io.Os servidores
geralmenteenviaminstruções
parao browserescritasem
HTML (HyperTextMarkup
Language).O HTML diz ao
browsercomoapresentaro
conteúdoaousuário.
Todososbrowserssabemo que
fazercomo HTML, embora
algumasvezesumbrowser
maisantigopossanãoentender
partesdeumapáginaquetenha
sidoescritausandoasversões
maisrecentesdoHTML.
HTTP
A maioriadasconversasque
ocorrenawebentreclientese
servidoresémantidaatravésdo
protocoloHTTP, quepossibilita
conversasderequesteresposta
simples.O clienteenviauma
solicitaçãoHTTP eo servidor
retomaumarespostaHTTP.
Conclusão:sevocêéum
servidorweb,vocêfala HTTR
Quandoumservidorenviauma
páginaHTML aocliente,o faz
usandoo HTTP. (Vocêverá
osdetalhesdecomotudoisto
funcionanaspróximaspáginas.)
(ParaSuaInformação:
HTTP significaProtocolode
TransferênciadeHipertexto.)
6 capitulo1
o B1ML Int9tmaa9
bt9"'v\TsetC9m9e)Úblt9
;d ; cc9nteU9 a9 Usuatl9.
o BTTP é 9 pt9t9c919'Lue95
clIentese 9Sset""Id9tesusam
patqse C9munkatem.
o set""ld9tUSq9 BTTP pata
en""'i!U'9 B1ML íW clIente.
introduçãoe arquitetura
G-uiarápido de HfML
Quandovocêdesenvolveumapágina,vocêusao HTML para
descreverqueaparênciaapáginadeveterecomodevesecomportar.
oHTML temdúziasdetagsecentenasdeatributosdetag.O
objetivodoHTML é,apartirdeumdocumentotexto,adicionar
tagsquedirãoaobrowsercomoformatá-Io.Abaixo estãoastags
queusaremosnosdiversoscapítulosa seguir.Sevocêprecisarde
umconhecimentocompletoemHTML, recomendamoso livro
HTML &XHTML TheDefinitiveGuide.
Tag Descrição
<!- ~> ondevocêpõeseuscomentários
<a> âncora- geralmenteparacolocarumhyperlink
<align> alinhaoscomentáriosà esquerda,à direita,
defineum tipodeentradaemumformulário
)
(1'éc/IliCQ.llle/ll+ej Q.S
<.ce/ll+el'") e <.aIi5/1l")Cf).II'f).1IIt
elll fÀesustJ ctJll'Ia
'i.0)lIItas eS+Q.lllttJs
uSQ./IlfÀtJ-as elllt
/IltJSStJS eXt!.l!'\fi(JS;
sel'elllt 1t'141"$ sil!'\fles fÀt.
• StJ4S
st.l'elt'l llilfJ.S
l'espec+tv4S/
a.fép61'ZUe
Il •es-raasvl
IfrM~,)
umnovoparágrafo
o cabeçalhodeprimeironível
defineos limitesdoheaderdodocumento
defineoslimitesdo documentoHTML
umcampoparaa entradadedados)
pularlinha
centralizadooujustificado
centralizao conteúdo
'"
defineum formulário (quegeralmenteoferece
defineos limitesdocorpodo documento
<html>
<input type>
<hl>
<p>
<head>
<form>
<center>
<br>
<body>
<title> o títulodo documentoHTML
você está 7
escrevendo HTML
oquevocêescreve...
(oHfMU
Imaginequevocêestácriandoumapáginadelogin.O HTML
simplespoderiaseparecercomisto:
<html>
<!- Um HTML exemplo - > 4::--{J1f\ Ce.lf!ifl1+:1'/4/frML
<head>
<hl align="center">Skyler's Login Page</hl>
<img src~"SKYLER2.jpg" width="130" height="150"/>
®
©
<title>A Login Page</title>
</head>
<body>
<p align="right">
tt+~<.I~>es+: fJ.11/"I1t.adfJ.del1+l't:.
de viria +~<.a.lijl1>de tfJ.I':51'fJ.1t:.;
4 11Ít\de cõ/e.C41'ti 1Ít\~elf!iIrItu'sõVIf!ifl14SlJl1de 3vel'flrlõ.s'. (Lelrlbl'e- se;
fJ.+~<'Q.1I511>CfJJv flrl JfSVS(J; lf!iitSt
JeciÇ/ihl.lJS vSQ-la tlJl' ser sl~/es Jer seI' !Ma)
Name: <input type~"text" name~"paraml"/><br/>
</p>
@
() sel"vld pal'a. ó 3Va./r el1i1I&lI'f!1rI6Sa. s()llct+fJ.f'li4.
<form action="date2">
A's +~S sel'velrl
~tfJ.f'fI. tV/lU' h"l1t.as.
</form>
<center>
</center>
<input type="SUBMIT"I>
Password: <input type="text· 'ame="param2" I><brI><brI><brI>
"-- ()ptJl"+Vl1alrlel1+eJ1a./aN;lrIlJs ""(/,1"$I
IÓI"IrIVIQI'14S;irias pal'a I'esvlrlir; ó 1JI'IJIf;Isel'
cgp+VI'fJ.1'éI l"I1pV+JIJ VSV:1"14e l"e+IJI"I1:-I", Qtl
sel'vtJIJI'.®
</body>
</html>
......•••.•.....•.••••.....••........•.•..............••.........••........•.•
: o :
: Vocêsóvaiprecisardosconhecimentosmaisbásicos :
: emHTML. :· .· .· .· .· .
: 0.HTML "pipoca" durantetodo o exame.Mas você não :
: estásendotestadoemHTML. No entanto,você vai sedepararcom o :
: HTML nocontextodeváriasperguntas.Portanto,vocêprecisaráaomenos :
: deumaidéiadoqueestáacontecendoquandovir umHTML simples. :· .· .
..............................................................................
8 capítulo1
oqueo browser cria...
obrowserlê todoo códigoHTML, criaapáginaeatransforma
emimagemparao usuário.
I
introduçãoearquitetura
®
@----.:'\Iame:
Password:
®
você está 9
oprotocolo HTTP
oqueéo protocoloHffP?
Principais eleme
solicitação: ntos do fluxo de
~ O métodoRTTP _
executada) (aaçaodeser
~ A página qu '
eseraacessada(
~ Osparâmetrosdo[o' , . umaURL)
argumentospara nn?lano (como
ummetodo)
oHTTP rodanotopodoTCP/IP. Sevocê
nãoestáfamiliarizadocomestesprotocolos
derede,temosaquiumcursorápido:O TCP
éresponsávelporgarantirqueumarquivo
enviadodeumnó daredeparaoutrochegue
íntegroaoseudestino,aindaqueo arquivo
estejadivididoemblocosnomomentodo
envio.O IP éo protocolodesustentação
quetransfere/roteiaosblocos(pacotes)de
umhostparao outrono seucaminhoatéo
destino.Ou seja,o HTTP éoutroprotocolo
deredequetemcaracterísticasespecíficas
paraweb,maseledependedoTCP/IP para
obtera solicitaçãoearespostacompletasde
umlugarparao outro.A estruturadeuma
conversaHTTP éumaseqüênciasimplesde
Solicitação/Resposta;umbrowsersolicitae
umservidorresponde.
solicitaçãoHTTP
~
resposta
HTTP Servidor
Principais elementos do fluxo de
resposta:
~ Um códigodestatus(~ocasodeuma
solicitaçãobemsuced1da)
i ~ Tipo deconteúdo(texto,imagem,HTML,
\ etc.)~ O conteúdo(oHTML real,a imagem,etc.)
Vocênãoprecisamemorizara especijicaçãodoHTTP.
Sevocêquermesmosaber(felizmente,o examenãoesperaque
vocêqueira),o protocoloHTTP segueo padrãoIETF, RFC 2616.
O ApacheéumexemplodeservidorWebqueprocessasolicitações
HTTP. O Mozilla éumexemplodebrowserquedáaousuárioo mecanismopara
realizarsolicitaçõesHTTP evisualizarosdocumentosretomadospeloservidor.
.......................................................................... ·······
······......................................................................................
10
introduçãoearquitetura
oHfML éparte da respostaHffF
UmarespostaHTTP podecontero HTML. O HTTP acrescentaa
informaçãodoheadernotopodequalquerquesejao conteúdoda
resposta(emoutraspalavras,aquiloqueretomadoservidor).Um
browserHTML usaaquelainformaçãodeheaderparaajudarno
processamentodapáginaHTML. Considereo conteúdodoHTML
comoumdadoquefoi coladodentrodeumarespostaHTTP.
solicitação HTTP
</head.>
<bOdy>
<img src==... >
</bOdy>
</htm.l>
respostaHTTP
1 Servidor
~val'Jdóó bl"ówsel"el'Jcól'J-!-I"Qvll'la
-!-~de Iw..~e...,elejel"a óV+l"a
sóllct-!-a{ióltrrp pal"14,,. bvscal"
6 l"ecvl"sóespecllteadlJ.AJes-h/
ca.SIJ;6bl"ówsel"!al"a.Vll'la.SejVl'Jda
sóllcl+a.{ióI/rrp pal"aób-h" a
1w..4jell'ldescl"i+. l'Jaf~ <1"""5>.
~Va.l7d46 bl"ówsel"el'Jumfl"a a +f4j
<"+11'I1>de abel"-!-v"4;ele el7+l"a.ell'llI'Iód6
depI"4CeSSall'le~4d6 I/rK.4.L e ex'-!!ea/ /
p~lP;a ." t/SVfJ.I"it>.
você está 11
Métodos HTTP
Se esta éa resposta, o que consta na solicita cão?
A primeiracoisaquevocêencontraráéo nomedométodoHTTP. Estesnãosão
métodosJava,masa idéiaé semelhante.O nomedométodoinformaaoservidor
o tipodesolicitaçãoqueestásendofeitaecomoo restodamensagemserá
formatada.O protocoloHTTP possuidiversosmétodos,masosquevocêusará
commaisfreqüênciasãoo GET eo POSTo
o usuáriodica em
umIinkparauma
novapágina.
~
J
Usuário Browser
obrowserenviaumHTiP GET ao
servidor,pedindoaoservidorque
CONSIGA a página.
POST
O browserenviaumHTiP POST ao
servidorpassandoparao servidoro
queo usuáriodigitounoformulário.
Browser
O usuáriodigitaemum
11I formulárioe dica no
·i!':1lt botãoenviar.
~
I
Usuário
12 capítulo1
introduçãoearquitetura
o&Ef éumasimplessolicita~o,o POSf podeenviardadosdo usuário
oGET éo métodomaissimplesdoHTTP eseuprincipal
trabalhonavidaépediraoservidorqueconsigaum
recursoeenviá-Iodevolta.Talrecursopodeseruma
páginaHTML, umJPEG, umPDF, etc.Não importa.O
objetivodoGET éconseguiralgumacoisadoservidor.
O POST éumasolicitaçãomaispoderosa.É comose
fosseumGET++.Como POST, vocêpodesolicitar
algoe,aomesmotempo,enviarosdadosdeum
formulárioparao servidor(maisadiantenestecapítulo,
veremoso queo servidorpodefazercomessesdados).
Nã9ex1stemretguntasidl9téls
r: E com relação aos outros métodos HTTP
além do GET e do POST?
1\: Estes são os dois métodos mais usados por
todo mundo. Mas, existem alguns raramenteusados
(e os Servlets podem tratá-Ios),tais como HEAD,
TRACE, PUT, DELETE, OPTIONS e CONNECT.
Você realmente não precisa saber muitosobre estes
outros para o exame, embora você possa encontrá-
los em alguma pergunta. O capítulo A Vida e a Morte
de um Servlet aborda o resto dos detalhes dos
métodos HTTP que você poderá precisar.
Espere um momento...
Eu poderia jurar que vi
solicitações GET que enviavam
alguns dados por parâmetros ao
servidor.
você está 13
HTTPGET
É verdade...vocêpodeenviaralgutlsdadosCOI11 o HffF G-Ef
Mas vocêpodenãoquerer.As razõesparausarmoso POST no lugardo GET incluem:
G) O totaldecaracteresno GET érealmentelimitado(dependendodo
servidor).Seousuáriodigitar,digamos,umtrechoextensoemuma
caixadeentradadotipo"Procurar",o GET podenãofuncionar.
@)Os dadosquevocêenviaatravésdoGET sãoanexadosàURL,
lá emcima,nabarradeendereçosdobrowser;portanto,seja
o quefor,ficaráexposto.Melhornãocolocarasenhaououtra
informaçãosensívelcomopartedeumGET!
®Devidoaoitem2 acima,o usuárionãopodeadicionaraosseus
favoritosapáginaqueenviaumformulário,sevocêusaro POST
emlugardoGET. Dependendodesuaaplicação,vocêpodequerer
ounãoqueosusuáriossejamcapazesdearmazenarapágina
resultantedoenviodeumformulário.
A- (J}t.l-(JI"ij'~Q,1f4",l-es dcs
pQ,('~dl"cs ex·f.ras.
U7"
A- . sepQ,('Q,c cQ,/fI!,I;.,I.ed{JS
pal"~e+('cs Ccs dadtls ex+rQ,s). ()
+tl+1).1de dadlJs ôlle vtlcêpede (;"'1/1"41"
a+l"Q,vésdlJ tf:ré IIÍf'\l+ad6 e explis+6
f4alll e/fl!,clÍf'\a11(J!Jr(Jwser; para +"dlJ
/fI!,v'Id(Jver, JfI'I+(JS; f(J('/fI!,o./fI!,(J, s+rl~j
da (JJel- ófle é el1vi'4daCtl/fl!,a st:.lici+a{i.ó.
14 capítulo1
introduçãoearquitetura
At1atotMia de utMa solicitação HffF G-Ef
ocaminhoatéorecursoequaisquerparâmetrosadicionadosàURL estãoincluídosna"linhadesolicitação".
Os l.eo.df!J"sdO.
S("tcl-h'yã",
() calVlií'l!."paJ"a " \ A- veJ"são do Pf'tJ-flJcõ/t, õNtcVJ"S/i '10sf!f'vldcJ". ~ bl"cwseJ" es-f: SfJ!iél..fa'ldlJ.
~~ \)..
GET / seiect! seiectbeer'l'aste. J sp·?co.tor=aarK!itaste=mal ty HTTP/ 1.1
Host: www.wickedlysmart.com
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US;
rv:l.4) Gecko/20030624 Netscape/7.1
Accept: text/xml,application/xml,application/xhtml+xml,text/
html;q~0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/
gif;q=0.2,*/*;q~0.1
Accept-Language: en-us,en;q~0.5
Accept-Encoding: gzip,defiate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive:

Outros materiais