Upload
diego-araujo
View
10
Download
0
Embed Size (px)
Citation preview
"Sôci'êdade de Ensino Sunerior da PamffJa
Elogios antecipados para o Use a Cabeça! Servlets & JSpTM
"Este livro, Use a Cabeça! Servlets & JSP, é tão bom quanto o Use a Cabeça! EJB, que me fez rir Eme garantiu 97% de aproveitamento na prova!"
- Jef Cumps, Consultor de J2EE, Cronos
"Para nossas aulas de Servlet/JSP, nós compramos mais de dez livros, sem encontrar nenhum, de fato,satisfatório para nossas necessidades de ensino ... Até que encontrarmos esta 'jóia' pedagógica quevocê tem agora nas mãos! Os livros da série Use a Cabeça! nos tornaram melhores professores."
- Philippe Maquet: Instrutor Sênior da Loop Factory, Bruxelas
Elogios para o Use a Cabeça! EJBTM e para o formato da série Use a Cabeça!
"A tecnologia Java está em todos os lugares - em telefones celulares, carros, câmeras, impressoras,jogos, PDAs, ATMs, smart cards, bombas de gasolina, estádios, equipamentos médicos, webcams,servidores, você escolhe. Se você desenvolve software e não conhece Java, definitivamente, está nahora de você mergulhar de cabeça - Use a Cabeça!."
- Scott McNealy, Chairman, Presidente e CEO, Sun Microsystems
(Nota do departamento de marketing: isto foi o melhor quevocê conseguiu do Scott? Veja se consegue fazer com que eleacrescente algo do tipo: "Se nós tivéssemos os livros da sérieUse a Cabeça! há dois anos, ainda podíamos ter aquela ilusão...'~).
"Um livro incrivelmente agradável. Dividido e interconectado como uma rede de conhecimentos.Como professor da Purdue University, com especialização em desenvolvimento avançado de softwareutilizando tecnologias baseadas em Java, estou em constante busca por materiais de apoio queofereçam motivação e uma linguagem compreensiva direcionada para o exame, mas que ao mesmotempo não desestimulem os alunos. O livro 'Use a Cabeça! EJB' preenche estes requisitos facilmente!Livros como estes são extremamente raros.
Incluí este livro como um dos textos essenciais para as futuras turmas do curso de graduação avançadaque eu dou de 'Desenvolvimento de Aplicações para Empresas'. Parabéns para os autores; continuemcom o excelente trabalho!"
- Professor Dan Gill, Departamento de Tecnologia deComputadores, Purdue University.
"Além do estilo envolvente que o levará do nível de leigo ao status de guerreiro aclamado no Java, olivro Use a Cabeça! Java traz um grande número de questões práticas, que outros títulos tratam comoo temível 'exercício para o leitor ... ' Ele é inteligente, irônico, descolado e prático - existem poucoslivros com estas características e que são capazes de ensinar sobre serialização de objetos e protocolosde execução em rede ao mesmo tempo."
- Dr. Dan Russel, Diretor de Pesquisas Experimentais eCientíficas com Usuários, IBM Almaden Research Center (eprofessor de Inteligência Artificial na Stanford University).
Que maneira maravilhosa de aprender!!! EU NÃO CONSIGO LARGAR ESTE LIVRO!!! Meufilho de 3 anos acordou à Ih40 da manhã, e eu o colÇ>queide volta na cama segurando o livro e umalanterna, e continuei lendo por mais uma hora.
- Ross Goldberg
"O Use a Cabeça! Java, escrito por Kathy e Bert, dá às suas páginas impressas uma aparência GUIcomo você jamais viu. De um jeito diferente e descolado, os autores transformam a aprendizagem emJava em uma empolgante experiência, do tipo 'qual será a próxima surpresa?'"
.- Warren Keuffel, Revista Software Development.
(
Parabéns pelo formato Use a Cabeça!
"É rápido, irreverente, divertido e envolvente. Cuidado - você pode realmente aprender alguma coisa!"- Ken Arnold, ex-Engenheiro Sênior da Sun Microsystems
e co-autor (com James Gosling, criador do Java) do livro"The J ava Programming Language"
"Eu passei no exame SCBCD com 94% de aproveitamento. Realmente, o 'P! EJB' é demais! Eu li olivro todo em 10 dias ..."
- Basavaraj Devershetty
" ... a única maneira de saber o valor de um tutorial é saber se ele realmente ensinará bem. Use a
Cabeça! Java é excelente para ensinar. Tudo bem, eu pensei que ele fosse bobinho ... mas, me dei contade que estava aprendendo os tópicos totalmente, à medida que avançava pelo livro.""O estilo do Use a Cabeça! Java tomou meu aprendizado, digamos, mais fácil."
- slashdot (análise do site honestpuck)
"Eu jamais poderia imaginar que alguém pudesse rir enquanto lesse um livro de TI! Usando o materialdo Use a Cabeça! EJB eu consegui uma ótima pontuação (91 %) e estabeleci um recorde mundialcomo o mais jovem SCBCD, com 14 anos de idade."
- Afsah Shafquat (o mais novo SCBCD do mundo)
"Esse livro é tão bacana que me deu vontade de CHORAR! Estou chocado."- Floyd Jones, Escritor Técnico Sênior/Garoto da piscina, BEA
"Se você quer aprender Java, não procure mais: bem-vindo ao primeiro livro técnico comcaracterísticas GUI! Com seu formato revolucionário e elaborado com perfeição, o livro oferecevantagens que outros títulos sobre Java simplesmente não conseguem ... Prepare-se para um passeiorealmente extraordinário pelo universo Java."
- Neil R. Bauman, Diretor Executivo e capitão da GeekCruises (www.GeekCruises.com)
"Se existe alguém no mundo familiarizado com o conceito do 'Use a Cabeça!', este sou eu. Este livroé tão bom que eu me casaria com ele na TV!"
- Rick Rockwell, comediante.
O noivo original do programa "Quem Quer Se Casar comum Milionário?" ("Who Wants to Marry a Millionaire"),da FOX Television
"O Use a Cabeça! Java é como o Monty Python meets the gang offourl ...o texto está tão bemdividido entre quebra-cabeças e histórias, questionários e exemplos, que você obtém uma abrangênciaquehenhum livro de informática conseguiu até agora."
- Douglas Rowe, Comunidade de Usuários de Java, Columbia.
"'Use a Cabeça! Java' ... dá um novo significado à frase de marketing da O'Reilly: 'Existe umO'Reilly para isso'z. Eu o escolhi, pois muitas outras pessoas que eu admiro o classificaram como'revolucionário' e eu descrevi uma técnica totalmente diferente para este livro. Eles estavam (estão)certos ... Sem fugir do típico formato da O'Reilly, eles conseguiram um formato científico, mas bemaceito. O resultado é divertido, irreverente, atuiü, interativo e brilhante ... A sensação de ler este livro éa de estar sentado bem próximo aos alto-falantes em uma sala de reunião, aprendendo - e rindo - comos colegas ... Se você quer ENTENDER Java, compre logo o seu."
- Andrew Pollack, www.thenorth.com
Sociedade de Ensino Superbr da Paat1ira
"Lembra quando você estava no jardim de infância? Não? Bem, e quando você aprendeu pela primeiravez o alfabeto? É dificillembrar? Bem, não faz mal. Lendo o Use a Cabeça! lava, você vai voltara se divertir enquanto aprende ... Para aqueles que se interessam por aprender novas linguagens deprogramação e não vieram da área de ciência da computação ou da programação, este livro é umapreciosidade ... Ele torna divertido o aprendizado de uma linguagem dificil de computação. Espero queexistam mais autores interessados em quebrar o velho e corriqueiro modelo 'tradicional' do estilo deescrever. Aprender linguagens de computação deveria ser prazeroso e não oneroso."
- Judith Taylor, Comunidade de Usuários da Maeromedia,Southeast Ohio.
"Há poucos dias, recebi minha cópia do Use a Cabeça! lava, de Kathy Sierra e Bert Bates. Eu aindaestou no começo do livro, mas o que me encantou foi que, mesmo estando com sono naquela primeiranoite, me peguei pensando: 'tudo bem, só mais uma página e vou dormir.'"
- JoeLitton
"FINALMENTE, um livro de lava escrito tal qual eu escreveria se tivesse sido eu.Falando sério, este livro simplesmente arrasa qualquer outro livro de software que eujá li... É muitodificil escrever um bom livro ... É preciso muito tempo para explicar os assuntos, em uma seqüêncianatural e cujo foco é o leitor. É muito trabalho. Muitos autores, notoriamente, não estão prontos para odesafio. Parabéns à equipe do Use a Cabeça! EJB por este trabalho primoroso!
P.S. Quando vai sair o projeto Use a Cabeça! l2EE? E o Use a Cabeça! Desenvolvedor deComponentes para a Web? E como eu faço para que meu videocassete grave umjogo de futebolenquanto estou trabalhando?"
- Wally Flint
"Se você é relativamente um iniciante em programação e está interessado em lava, eis o seu livro ...Abordando tudo - desde objetos para a criação de interfaces gráficas de usuário (GUl),tratamento deexceções (erros), redes (sockets) e multitarefas, até como agrupar suas pilhas de classes em um únicoarquivo de instalação -, este livro é completíssimo ... Se você gostar do estilo, estou certo de que irá adorar olivro assim como eu. Espero que a série Use a Cabeça! possa ser estendida a vários outros assuntos!"
- LinuxQuestions.org
"Quando eu li o 'Use a Cabeça! lava', do mesmo autor, eu pensei que é impossível escrever outrolivro (aquele sobre EJB também) de uma forma tão brilhante. Porém, agora eles nos surpreenderamcom este livro ainda mais legal. Os livros da série Use a Cabeca! tornaram-se algo necessário(QUASE UMA EXIGÊNCIA) em todos os assuntos. Eu queri~ ser uma criança para poder aprendertudo da maneira como ensina este livro."
- Anshu Mishra
Eu trabalhei com EJB há cerca de 4 anos e o achei uma bagunça às avessas. Depois de ler asespecificações 2.1 e 2.0, eu descobri que é apenas uma t*** 3 fumegante que ficou maior. Seu livrorespondeu à maioria das incontáveis perguntas que martelavam meu cérebro de amendoim e permitiume passar na prova com uma pontuação de 92% ...Vencendo facilmente aquele colega de 14 anos de idade por 1 ponto. :-) Muito obrigado.
- Jim Steiner
"Eu me VICIEI nos contos do livro, nos códigos com anotações, nas entrevistas preparatórias e nosexercícios para o cérebro."
- Miehael Yuan, autor, Enterprise J2ME
se a Cabeca Servlets & JSPTM...:>
Segunda Edição
Não seria fantástico se existisse
um livro sobre Servlets quefosse mais interessante do queapagar spam da sua caixa demensagens? Talvez isso seja
uma ilusão ...
Bryan BashamKathy Sierra
Bert Bates
Rio de Janeiro.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 First Servlets and JSPTM, 2st Edition © 2008 O'Reil/yMedia,lnc. ISBN: 978-0596102340 This translation is published and sold by permission ofO'Reil/yMedia, Inc., the owner of ali rights to publish and sell the some.
Todos os direitos reservados e protegidos pela Lei 5988 de 14/12/73. Nenhuma parte deste livro, semautorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem osmeios empregados: eletrônico, mecânico, fotográfico, gravação ou quaisquer outros. Todo o esforçofoi feito para fornecer a mais completa e adequada informação, contudo a editora e o(s) autor(es) nãoassumem responsabilidade pelos resultados e usos da informação fornecida. Recomendamos aosleitores testar a informação, bem como tomar todos os cuidados necessários (como o backup), antes daefetiva utilização. Este livro não contém CD-ROM, disquete ou qualquer outra midia.
Erratas e atualizações: Sempre nos esforçamos para entregar a você, leitor, um livro livre de errostécnicos ou de conteúdo; porém, nem sempre isso é conseguido, seja por motivo de alteração de
software, interpretação ou mesmo quando alguns deslizes constam na versão original de alguns livrosque traduzimos. Sendo assim, criamos em nosso site, www.altabooks.com.br. a seção Erratas, onderelataremos, com a devida correção, qualquer erro encontrado em nossos livros.
Avisos e Renúncia de Direitos: Este livro é vendido como está, sem garantia de qualquer tipo, sejaexpressa ou implícita.
Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercialsão de responsabilidade de seus proprietários. A Editora informa não estar associada a nenhum produto e/ou fornecedor apresentado no livro. No decorrer da obra, imagens, nomes de produtos e fabricantes podemter sido utilizados, e desde já a Editora informa que o uso é apenas ilustrativo e/ou educativo, não visando aolucro, favorecimento ou desmerecimento do produto/fabricante.
Produção Editorial: Editora Alta Books
Coordenação Editorial: Roberto Baptista Barroco
Tradução: Eveline Vieira MachadoRevisão: Fernanda Rigamond
Revisão Técnica: Helder Borges
Diagramação: Equipe Alta Books
Impresso no Brasil
o código de propriedade intelectual de 10 de Julho de 1992 proibe expressamente o uso coletivo semautorização dos detentores do direito autoral da obra, bem como a cópia ilegal do original. Esta práticageneralizada nos estabelecimentos de ensino, provoca uma brutal baixa nas vendas dos livros a pontode impossibilitar os autores de criarem novas obras.
Editora Alta Books
Rua Viúva Claudio, 291 - JacaréRio de Janeiro - RJ CEP 20551-010
Tel: 21 3278-8069 Fax: 21 3277-1253www.altabooks.com.br
Esse livro é dedicado a todos aqueles que decidiram que EL implicit object
os autores
Os "procurados" da série Use a Cabeça! (e deste livro)Beart Bates Bryan Basham
Bert é um antigo desenvolvedore arquiteto de software, masum período de 10 anos eminteligência artificial o fezse interessar por teoria daaprendizagem e treinamentovia computador. Ele passou aprimeira década de sua carreiracomo desenvolvedor viajandopelo mundo e ajudando clientescomo a rádio Nova Zelândia,o The Weather Channel e arede de entretenimentos Artsand Entertainment Network
(A&E) em suas transmissões.Atualmente, ele é membro daequipe da Sun responsável pelodesenvolvimento de diversos
exames de certificação em Java,incluindo o recente SCWCD.
Bert é um antigo e incorrigívelaficionado pelo GOl e vemtrabalhando há bastante
tempo em um programa. OJava há de se tomar uma
linguagem expressiva osuficiente para que ele finalizeseu projeto. Ele é um bomguitarrista e, atualmente, estáexperimentando o banjo.Sua mais recente aventura
foi a compra de um cavaloislandês, o que deverá trazernovos desafios aos seusconhecimentos na área detreinamento ...
VIII
Kathy gosta de teoria daaprendizagem e assuntosrelacionados à mente desde a
época em que era designer dejogos (ela escreveu jogos paraa Virgin, MGM e Amblin') edesenvolvedora em I.A2 Grande
parte do formato da série Usea Cabeça! foi desenvolvidoenquanto lecionava InteratividadeUsando Novas Midias, no
programa de extensão deEstudos em Entretenimentoda Universidade da Califómia
(DCLA). Recentemente, setomou instrutora-chefe da
Sun Microsystems e ensina osinstrutores de Java a divulgaremas mais novas tecnologiasdesta linguagem. Além disso,desenvolve diversos exames
para certificações Sun, incluindoo SCWCD. Junto com Bert
Bates, ela tem aplicadoextensivamente os conceitos da
série Use a Cabeça! no ensinode milhares de desenvolvedores.Ela fundou uma das maiorescomunidades em Java no
mundo virtual, a javaranch.com, premiada em 2003 e 2004com o Prêmio Produtividade emDesenvolvimento de Software.
Ela adora correr, esquiar, montara cavalo, andar de skate eciências esotéricas.
Bryan tem mais de vinteanos de experiência emdesenvolvimento de software,incluindo um período comsoftware de automaçãoavançada usando técnicasde I.A na NASA Eletambém atuou em uma
consultoria, desenvolvendoaplicações comerciais em 00personalizadas. Atualmente,Bryan é Desenvolvedor deCursos da Sun, com ênfasenos princípios de design emJava e em 00. Ele já trabalhouem diversos cursos de Java
da Sun, incluindo JDBC,J2EE, Servlets e JSP, além deDesenvolvimento de Softwareutilizando 00. Ele foi também
o primeiro designer dos examesSCWCD, nas versões originale atual.
Bryan pratica o Zen Budismo,joga Ultimate Frisbee, adorasom e pratica o ski telemark.
conteúdo
(Sumát19)
Introdução XIX
Por que usar Servlets & JSPs: uma introdução 1
Arquitetura da aplicação web: visão geral de alto nível 37
Minitutorial do MVC: praticando com o MVC 67
Sendo um servlet: request e resposta 93
Sendo uma aplicação web: atributos e listeners 147
Estado de conversação: sincronizando o bean/entidade 223
Sendo um JSP: escrevendo códigos em JSP 281
Páginas sem scripts: escrevendo JSPs sem scripts 343
As tags customizadas são poderosas: usando a JSTL 439
Quando nem a JSTL é o bastante: desenvolvendo tags customizadas 499
Distribuindo sua aplicação web: distribuição da aplicação web 601
Mantenha em segredo, mantenha seguro: segurança da aplicação web 649
O poder dos filtros: wrappers efiltros 701
Padrões de Design Enterprise: padrões e Struts 737
Apêndice A: TestePreparatório Final 791Índice 865
IntroduçãoSeu cérebro pensando em Servlets. Aqui está você tentando aprender algo, enquantoseu cérebro lhe presta o favor de certificar-se de que tal aprendizado não seráinterrompido. Ele pensa, "é melhor reservar espaço para coisas mais importantes, comoqual animal selvagem evitar e se esquiar sem roupa é ruim mesmo". Então, como vocêvai induzi-lo a pensar que sua vida depende do conhecimento em Servlets?
A quem se destina este livro?
Nós sabemos o que seu cérebro está pensando
Metacognição
Domine seu cérebrp
O que você precisa para este livro
Passando no exame de certificação
Os revisores técnicos
Agradecimentos
XX
XXI
XXlll
xxv
XXVI
XXVlll
XXX
XXXI
IX
1Por que usar servlets & JSPs?As aplicações web estão na moda. Quantas aplicações GUI você conhece que
são usadas por milhões de usuários em todo o mundo? Como desenvolvedor de
aplicações web, você não precisará se prender aos problemas de distribuição
presentes em toda aplicação standalone e irá distribuir sua aplicação a qualquer
pessoa que possua um browser. Mas você precisará dos servlets e dos JSPs, pois
as velhas e estáticas páginas HTML são tão, digamos, "1999". Saiba como mudar
do sUe na web, para a aplicação na web.
Principais elementos do 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 elementos do fluxode solicitação:• O método HTTP (a ação de
se~ executada)• A~<rinaqueseráacessada
(umaURL)• Osp:mi:mctrosdofurmulãrio(curoo
argtIIIlell!oSparamnrnéloOO)
solicitação HTTP
Servidor
Objetivos do Exame 2
O que os servidores web e os clientes fazem e como conversamentre si 4
Guia rápido de HTML 7
O que é o protocolo HTTP? 10
A anatomia das solicitações HTTP GET ePOST e das respostas HTTP 16
Localizando páginas web usando URLs 20
Servidores web, páginas estáticas e cm 24
Desmistificando os Servlets: escreva, distribua e rode um servlet 30
JSP foi o que aconteceu quando alguém apresentou o Java ao HTML 34
Arquitetura da aplicação web
2Os servlets precisam de ajuda. Quando uma solicitação chega, alguém tem
que instar o servlet ou, pelo menos, alocar uma thread para tratar a solicitação.
Alguém tem que chamar ou o método doPostO ou o método doGetO do servlet.
Alguém precisa levar a solicitação e a resposta para o servlet. Alguém precisa
gerenciar a vida, a morte e os recursos do servlet. Neste capítulo, vamos estudar o
Container e dar uma primeira olhada no padrão MVC.
(Controlador '\
iJSP 1
38
39
44
46
50
54
64
65
Objetivos do Exame
O que é um Container e o que ele oferece?
Como fica o código (o que toma um servlet um servlet)
Nomeando os servlets e mapeando-os a URLs usando o DD
História: Bob Constrói um Site de Encontros (introdução ao MVC)
Visão geral e exemplo de MVC (Model- View-Controller)
Um Deployment Descriptor (DD) "funcionando"
Ba",o de Como o J2EE cabe nisso tudoDad,,,
1,Modelo
JCVQ
antigo
Serv!et
View
JSP
x
conteúdo
3Minitutorial do MVC
Criando e distribuindo uma aplicação MVC. Chegou a hora de colocar amão na massa e escrever um formulário HTML, um controlador de servlet, um
modelo (classe Java simples), um deployrnent descriptor XML e uma view em
JSP. É hora de criar, distribuir e testar. Antes, porém, você deverá configurar
seu ambiente de desenvolvimento. Em seguida, você terá que configurar o seu
ambiente de distribuição, de acordo com as especificações do servlet e do JSP,
e as exigências do Tomcat. Concordo, esta é uma aplicação pequena ... Porém,
quase NÃO existe aplicação que seja tão pequena e use o MVC.Especffico para o Tomcat
Este nome de diretÓf'io
também representa o •context r::::aroot" que o Torncat usa quando ~ Esta parte da estruturaestó resolvendo URLs. Nós ! de diretórios é exigido
exploraremos este conceno ;~ '-; pelo Tomcat e d~ve estarem maiores detalhes no l;;;J j diretamente ablllxo docopít1Jlosobre Distribuição. I {' seu diretóno home.
-~8)~_OOOmedaapricação.
parteda •• pecifj~ção~l
dos Servlets j- '-'\ l§l ,!J.
! _ ~" Este arquivo web.xmJ1"""" ~ h~TEMQ~Eestareml ___ _ z;; WEB-INF
Específico da 8,- -•.: ~ A estrutura deste pacote éAplicação
~; _~_". :~:~~~~u:n=;~o- - .' .' A menos que você esteja
1 _~ _ i _~ ~~(~:~~a~:e~t~i:O.. ,' - , -- _ - - maIs tarde). você DEVE colocar o
i [pacote de estrutura de diretóriosg 8 irnediatamente abaixo de WEB-
~> _si"", INF/classes.
Objetivos do Exame 68
Vamos construir uma aplicação MVC: primeiro o design 69
Criando os ambientes de desenvolvimento e distribuição 72
Criando e testando o HTML para o formulário inicial
Criando o Deployment Descriptor (DD) 77
Criando, compilando, distribuindo e testando o servlet de controle 81
Design, criação e teste do componente modelo 82
Otimizando o controlador para chamar o modelo
Criando e distribuindo o componente view; (isto é um JSP) 87
Otimizando o servlet de controle para chamar o JSP 88
4Sendo um servlet
Servlets vivem para servir clientes. A função de um servlet é receber uma
solicitação do cliente e devolver uma resposta. A solicitação talvez seja simples:
"traga-me a página de Boas-vindas". Ou pode ser complexa: "Finalize o
processo do meu carrinho de compras."A solicitação carrega dados cruciais e
o código do seu servlet tem que saber como encontrá-Ios e utilizá-Ios. E ele tem
que saber como enviar uma resposta. Ou não ...
o servlet usa os dados
NÃO Idempotente do POST para atualizar
<_ .... ~:":: .... ObanCOde .....d.•..QdOS.~ LJ wz -----8..~~ WW'. D~ M /servletCliente ':::~ irO servJet envia de volta uma resposta
~ com uma página gerada em HTML
Objetivos do Exame 94
Os Servlets são controlados pelo Container 95
Cada solicitação roda em uma thread separada! 101
A verdadeira função do servlet no tratamento das solicitações 105
A história da solicitação não-idempotente 112
O que determina se você recebeu uma solicitação GET ou POST? 117
Enviando e usando parâmetro( s) 119
Então, essa foi a Solicitação ... vejamos agora a Resposta 126
Você pode configurar headers de resposta, você pode adicionar
headers de resposta 133Redirecionamento de servlets faz o browser trabalhar 136
Revisão: HttpServletResponse 140
XI
5Sendo uma aplicação webNenhum servlet vive sozinho. Nas aplicações web atuais, vários componentes
trabalham em conjunto por um objetivo. Temos os modelos, os controladores
e as views. Temos os parâmetros e os atributos. Temos as classes helper. Mas,
como juntar os pedaços? Como permitir que os componentes compartilhem
informações? Como você oculta informações? Como você torna uma informação
thread-safe? Seu trabalho pode depender destas respostas.
Atributos de SOUctTAÇÃO
9rset
Objetivos do Exame 148
Os Parâmetros Init dão uma força 150
Como um JSP consegue obter os parâmetros init do servlet? 155
Os parâmetros init do contexto dão uma força 157
Comparando o ServletConfig com o ServletContext 159
Ela quer um ServletContextListener 166
Tutorial: escreva um ServletContextListener simples 168
Compile, distribua e teste o seu listener 176
A história completa, uma análise do ServletContextListener 178
Listeners: eles não servem apenas para os eventos de contextos 180
O que é exatamente um atributo? 185
AAPI Atributo 189
O escopo de contexto não é thread-safe! 192
Como tomamos os atributos do contexto thread-safe? 194
Testando a Sincronização 195
Os atributos de Sessão são thread-safe? 198
Os males do SingleThreadModel 201
Apenas os atnbutos da Solicitaçãoe as variáveis locais são thread-safe! 204
Atributos da Solicitação e request dispatching 205
,,,
~set
Acessível apennspamoquelescomoc:essoQ_HttpSessionespecifico
XII
6
conteúdo (sumário)
Estado de conversaçãoOs servidores web não têm memória curta. Assim que eles lhe enviam umaresposta, eles esquecem quem você é. Na próxima vez que você fizer umasolicitação, eles não o reconhecerão. Eles não se recordam do que você solicitouno passado e nem do que eles enviaram como resposta. Nada. Porém, algumasvezes você precisa manter o estado de conversação com o cliente durante váriassolicitações. Um carrinho de compras não funcionaria se o usuário tivesse queescolher seus produtos e finalizar a compra de uma única vez.
06of.if-f,-",",,-!--r.~""~'~"ú'ú ..•.•."'~=
Objetivos do Exame
Esperamos que seja uma conversa (como as sessões
funcionam)
IDs de sessão, cookies e outros fundamentos das sessões
Reescrita de URL: uma alternativa
Quando as sessões envelhecem; dando adeus às sessões ruins
Posso usar cookies para outras coisas além das sessões?
Os principais momentos de um HttpSession
Não se esqueça do HttpSessionBindingListener
A migração da sessão
Exemplos de listener
224
226
231
237
241
250
254
256
257
261
Sendo um JSP
Um JSP torna-se um servlet. Um servlet que você não cria. O Container olhao seu JSP, o traduz em código-fonte Java e o compila em uma classe servlet deJava completa. Porém, você tem que saber o que acontece quando o código quevocê escreveu em JSP se transforma em código Java. Você pode escrever códigosJava em JSP, mas será que você deveria? E se não for um código Java, o quevocê pode escrever? Como ele jaz a tradução para o código Java? Veremos seisdiferentes tipos de elementos JSP ~ cada um com seu próprio propósito e, sim,sintaxe única. Você aprenderá como, por que e o que escrever no seu JSP. E vocêaprenderá o que não escrever.
~',. ., ._.~.
Objetivos do Exame
Criando um JSP simples usando o "out" e uma
diretiva de página
Expressões, variáveis e declarações em JSP
Hora de ver. um servlet gerado a partir do JSP
A variável out não é o único objeto implícito
">.,. O Ciclo de vida e a inicialização de um JSPMyISP-.J<pSc1vlet
Já que estamos falandosobre isso ... as três diretivas
Scriptlets considerados perigosos? Eis a EL
Mas, espere ... ainda não vimos as ações
282
283
288
296
298
306
314
317
323
XIII
8Páginas sem scripts
Fuja do scripting. Será que seus webdesigners precisam mesmo saber Java?
Será que eles pensam que quem programa Java para servidores tomar-se-á,
digamos, designer gráfico? E mesmo que a equipe seja só você, você quer
mesmo um monte de bits e pedaços de códigos Java nos seus JSPs? Você sabe
o que significa "um pesadelo na hora da manutenção"? Escrever páginas sem
scripts não só é possível, como também é mais fácil e mais flexível com a nova
especificação JSP 2.0, graças à nova Expression Language (EL). Padronizada
depois do JavaScript e do XPATH, os webdesigners sentir-se-ão em casa com a
EL. E você também vai gostar (assim que você se acostumar). Porém, existem
algumas armadilhas ... a EL se parece com o Java, mas não é. Às vezes, a EL se
comporta de forma diferente de como comportar-se-ia a mesma sintaxe no Java.
Portanto, fique atento!
XIV
.""'<0""" .•.••••.••• '''<1''''<:;
'9"",'~.,,<!~~",-,.~.". _~d~.
Objetivos do Exame 344
Quando os atributos são beans 345
Ações-padrão: useBean, getProperty, setProperty 349
Você sabe fazer referências polimórficas para beans? 354
atributo param dá uma ajuda 360
Convertendo propriedades 363
A Expression Language (EL) salva o dia! 368
Usando o operador ponto (.) para acessar propriedades
e mapear valores 370
O [c:catch] dá a você mais opções (Lists, arrays ...) 372
Mais detalhes dos operadores ponto e [ ] 376
Os objetos implícitos da EL 385
Funções EL e tratando o "null" 392
Os pedaços reutilizáveis do template - dois tipos de "include" 402
A ação-padrão <jsp:forward> 416
Ela não conhece as tags JSTL (uma visão rápida) 417
Revisando as ações-padrão e o include 417
9
conteúdo
As tags customizadas são poderosasEm alguns casos, você precisa de mais do que a EL ou ações-padrão. E se
você quisesse fazer um loop através dos dados de um array, exibindo em seguida
um item por linha em uma tabela HTML? Você sabe que poderia escrever isso em
dois segundos, usando um loop for em um scriptlet. Mas você está tentando evitar
os scripts. Sem problema. Quando a EL e as ações-padrão não forem suficientes,
você pode usar tags customizadas. Elas são tão fáceis de usar em um JSP quanto
as ações-padrão. Melhor ainda, alguém já escreveu boa parte das tags de que você
mais provavelmente precisará, e as juntou na JSTL (JSP Standard Tag Library,
ou Biblioteca de Tags JSP Padrão). Neste capítulo, aprenderemos a usar tags
customizadas, e no capítulo seguinte, aprenderemos a criar as nossas próprias tags.
Objetivos do Exame 440
Fazendo loops sem scripts; <c:forEach> 446
Controle condicional com o <c:i:f> e o <c:choose> 451
Usando as tags <c:set> e <c:remove> 455
Com a <c:import>, há três maneiras de incluir conteúdo 460
Customizando o que você inclui 462
Fazendo o mesmo com <c:param> 463
A <c:url> para todas as suas necessidades de hyperlink 465
Crie suas próprias páginas de erro 468
A tag <c:catch>. Semelhante a try/catch ... mais ou menos 472
E se você precisar de uma tag que NÃO esteja na JSTL? 475
Preste atenção ao <rtexprvalue> 480
O que pode existir no corpo de uma tag 482
O tag handler, o TLD e o JSP 483
A taglib <uri> é apenas um nome, não um local 484
Quando um JSP usa mais de uma biblioteca de tags 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.{(as fi.:N.js. 5i!"'!~5 5tte.j"nll1\ (I:!-""jV;,,!DS 'u fI,+"tJ,,,,+a
V;jr-J<!l /"* exhl'~c.
MatrL,,{Ievoiutions
!«:so,!h"''''f,,''~iro s,'''''J,n---'7'j KillBilIBoondockSaints
Àmelie
ReturnoflheKingMeanGirls
xv
10
11
Quando nem a JSTL é o bastante ...
Em alguns casos, a JSTL e as ações-padrão não são suficientes. Quando vocêprecisa de algo customizado, e não quer voltar aos velhos scripts, você pode escrever osseus próprios tag handlers. Dessa maneira, os seus desenvolvedores de páginas poderãousar a sua tag nas suas páginas, enquanto todo o trabalho duro é feito nos bastidores, nasua classe tag handler. Mas há três maneiras diferentes de se criar os seus próprios taghandlers, então, há muito o que aprender. Dessas três, duas foram introduzidas com oJSP 2.0 para tomar a sua vida mais fácil (Simple Tags e Tag Files).
Objetivos do Exame 500
Tag Files: iguais ao include, só que melhores 502
Onde o Container procura por Tag Files 509
Tag handlers simples 513
Uma tag Simples com um corpo 514
E se o corpo da tag usar uma expressão? 519
Você ainda precisa saber sobre os tag
handlers Clássicos 529
Um tag handler Clássico bem pequeno 531
O ciclo de vida Clássico depende dosvalores retomados 536
A interationTag lhe permite repetir o corpo 537
Valores-padrão retomados pela TagSupport 539
A interface DynamicAttribute 556
Com BodyTag, você tem dois novos métodos 563
E se você tiver tags que funcionam conjuntamente? 567
Usando a API PageContext para tag handlers 577
Distribuindo sua aplicação webFinalmente, sua aplicação está pronta para o horário nobre. As suas páginasestão finalizadas, seu código está testado e ajustado, e o prazo de entrega era háduas semanas atrás. Mas, para onde vai isso tudo? Tantos diretórios, tantas regras.Que nome você dá aos seus diretórios? Qual nome o cliente pensa que eles têm? Oque é que o cliente realmente solicita, e como o Container sabe onde procurar?
Referênciaaumbeanlocal
XVI
Objetivos do Exame
Principal tarefa da distribuição: onde entra o quê?
~" Arquivos WAR~ Como o mapeamento de servlets REALMENTE funciona
=~?::::::~;~:::.Configurando arquivos de boas-vindas no DD
Configurando páginas de erro no DD
~ ~ Configurando a inicialização de servlets no DD
__ -êCriando um JSP compatível com XML: um Documento JSP
602
603
612
616
622
626
628
629
conteúdo
Objetivos do Exame 650
O Top 4 em segurança de servlets 653Como Autenticar no Mundo HTTP 656
As Dez MelhoresRazõespara realizara sua segurançadeclarativamente 659
Quem implementa a segurança em uma aplicação web? 660
Autorização: funções e restrições 662
Autenticação: quatro sabores 677
OS QUATRO tipos de autenticação 677
Protegendo a segurança dos dados em trânsito: HTTPS em ação 682
Como implementar confidencialidade e integridade de dados casoa caso e declarativamente 684
Mantenha em segredo, mantenha seguro
12
o ~~::::j~~:ma~;~~asmais flexíveis,
G Está no exame.
Sua aplicação web está emperigo. O perigo espreita em cada canto da rede. Você nãoquer os Caras Maus xeretando nas transações da sua loja virtual, roubando númerosde cartões de crédito. Também não quer os Caras Maus convencendo o seu servidorde que eles na verdade são os Clientes Especiais Que Recebem Grandes Descontos.E você não quer ninguém (amigo OU inimigo) olhando dados confidenciais dosempregados. Será que o Jim, do departamento de marketing, precisa mesmo saberque a Lisa, do departamento de engenharia, ganha três vezes mais do que ele?
As Dez Melhores Razões para realizar a Suasegurança declaratwamente
'Iil lJmpaucomais deprátirocomXML 11ÕrJfazmal a 11inguém.
O :~:U~::te, as.~eclaraçõescasamnaturalmente
deparrame;oSd~~ ':mp~O) já existentesno
e Fica multo bem no seu curriculo.
e Permite aos dcsenvoh-edores de aplicações IeUtJlizaremsenlets, mesmo sem acesso ao código-fonte.
O É legal, simplesmente.
o poder dos filtros
13Os filtros lhe permitem interceptar a solicitação. E se puder interceptar asolicitação, você poderá também controlar a resposta. E, melhor de tudo, o servletnem percebe o que aconteceu. Ele nunca ficará sabendo que alguém intercedeuentre a solicitação do cliente e a invocação do método serviceO do servlet peloContainer. O que isso significa para você? Mais férias. Porque o tempo que vocêlevaria reescrevendo apenas um dos seus servlets pode ser despendido, em vezdisso, escrevendo e configurando um filtro com a capacidade de afetar todos os seussetvlets. Adicionar tracking das solicitações do usuário a todos os servlets da suaaplicação? Sem problema. Manipular o output de cada servlet da sua aplicação? Semproblema. E você não precisa nem sequer tocar no código do servlet.
•·181'" ••--_ .•...
a pilha• a pilha9 a pilhaeo Conta;tle<"
""'P<Jn"otrlétodo~i<eOdoS••••leM I""" o
~~::~~~éfircl,m-.e ""tilo,;
",t;rndodo.pilll<l.
a pilhae
Objetivos do Exame
Construindo um filtro para o monitoramento das solicitações
O ciclo de vida de um filtro
Declarando e ordenando filtros
Comprimindo o output com um filtro no lado da respostaa pilhao
~;::o::-,. Os wrappers são demais
êiªª::: O código do verdadeiro filtro de compressãoConta;ner-nMlÜQa
respost"- Código do wrapper de compressão
702
707
708
710
713
719
722
724
XVII
14Padrões de Design EnterpriseAlguém já fez isso antes. Se estiver começando agora a desenvolver aplicaçõesweb em Java, você tem sorte. Poderá se beneficiar do saber coletivo das dezenasde milhares de desenvolvedores que já trilharam esse caminho e sobreviverampara contar. Usando tanto os padrões de design específicos do J2EE quantooutros padrões, é possível simplificar o seu código e a sua vida. E o padrão dedesign mais significativo para aplicações web, o MVC, possui até mesmo umframework absurdamente popular, o Struts, que ajudará você a criar um servletFront Controller flexível e de fácil manutenção. Você deve a si mesmo tirarvantagem do trabalho dos outros para que possa despender mais tempo nascoisas mais importantes da vida ...
Objetivos do Exame 738
O poder do hardware e do software por trás dos padrões 739
Revisão dos princípios do design de software... 744
Padrões para dar suporte a componentes de modelos remotos 745
Visão geral da JNDI e da RMI 747
O Business Delegate é um "intermediário" 753
Simplifique os seus Business Delegates com o Service Locator 759
Hora de usar um Transfer Object? 761
Nosso primeiro padrão revisitado ... MVC 762
Sim! É o Struts (e o Front Controller), em poucas palavras 767
Refatorando a aplicação Beer para o Struts 770
Revisão sobre padrões 778
fausa pataº caté
o Teste Preparatório final. É isso, 69 perguntas. A aparência, os assuntosabordados e o nível de dificuldade são praticamente idênticos aos da provaoficial. Nós sabemos.
o1
XVIII
Teste preparatório final
Respostas
índice
791
828
865
1 Introdução
Como usar este livro?
Use a Cabeça JSP
A quem se destina este livro?Se você responder "sim" a todas estas perguntas:
(1) Você sabe Java? (não precisa ser um guru)
® Você gosta de consertar - você aprende fazendo, ao invés de apenas ler? Você desejaaprender, compreender, lembrar dos servlets e dos JSPs e passar no exame SCWDfor Java EE 1.5?
® Você prefere uma conversa descontraída em uma festa a palestras acadêmicas semgraça e tediosas este livro é para você.
este livro não é para você.
Quem provavelmente deveria manter-se longe deste livro?Se você responder "sim" a alguma destas perguntas:
(!) Você é totalmente inexperiente em Java? Você não precisa estar em um nívelavançado, mas, definitivamente, deve ter alguma experiência. Se não tiver, pegue umexemplar do Use a Cabeça! Java agora mesmo. Hoje! E só então retome a este livro.
® Você é um desenvolvedor Java "forçado" em busca de um livro de consulta?
® Você é um veterano em J2EE em busca de técnicas ultra-avançadas e "como-fazer"específicos para servidores, projetos para empresas e códigos complexos, robustos ereais?
@ Você tem medo de experimentar coisas diferentes? Você prefere fazer um canal noseu dente a misturar listras num tecido xadrez? Você acha que um livro técnico perde acredibilidade se os componentes Java tiverem aparência humana?
este livro não é para você.
xx
Nós sabemos o que você está pensando.
"Como este livro de programação pode ser sério?"
"Com tantas ilustrações?"
"Eu consigo realmente aprender desta forma?"
E nós sabemos o que seu cérebro está pensando.
Seu cérebro clama por novidades. Está sempre procurando, examinando eesperando por algo diferente. Ele foi criado assim e o ajuda a se manter vivo.
Atualmente, é pouco provável que você vire o lanchinho de um tigre,mas seu cérebro continuará em alerta. Nunca se sabe.
Então, como seu cérebro faz para lidar com todas as coisas rotineiras,comuns e normais com as quais você se depara? Tudo o que ele puderfazer para impedir que tais coisas interfiram no seu real trabalho:registrar o que interessa. Não faz mal guardar as coisas fúteis; elas nuncapassarão pelo filtro que retém o que "obviamente não importa".
Como seu cérebro reconhece o que é importante? Suponha que você tireum dia para fazer uma caminhada e um tigre pule na sua frente. O queacontece com a sua cabeça e o seu corpo?
Os neurônios disparam. As emoções são ativadas. As reaçõesquímicas explodem.
E é assim que seu cérebro reconhece ...
Isto pode ser importante! Não esqueça!Mas, imagine que você está em casa, ou em umabiblioteca. É um local seguro, acolhedor e semtigres. Você está estudando. Preparando-se paraum exame. Ou tentando aprender um assuntotécnico e difícil, que seu chefe acredita quelevará uma semana, dez dias no máximo.
Só um problema. Seu cérebro está tentandolhe fazer um grande favor. Ele está tentandoassegurar-se de que aquele conteúdo, obviamenteirre1evante, não vá confundir os poucos recursos.Recursos estes que seriam melhores se usados paraarmazenarem coisas realmente importantes. Comotigres. Como o perigo do fogo. Ou como vocênunca mais deveria praticar snowboard de short.
E não existe um jeito simples de dizer ao seucérebro, "Ei cérebro, muito obrigado, mas nàoimporta se o livro é tedioso, ou o quanto estouregistrando agora na escala Richter emocional,eu realmente quero que você guarde estascoisas por aqui."
você está
introdução
~ XXI
Use a Cabeça JSP
Então, o que é necessário para se aprender algo? Primeiro, você precisa absorver e depoisse certificar de que não irá esquecer. Não tem nada a ver com enfiar coisas na sua cabeça.Baseando-se nas últimas pesquisas em ciência cognitiva, neurobiologia e psicologiaeducacional, o ato de aprender envolve muito mais que textos em uma página. E nós sabemos oque faz o seu cérebro funcionar.
Alguns princípios de aprendizagem da série Use a Cabeça:Dê ênfase à parte visual. As imagens são muito mais fáceisde serem memorizadas do que palavras soltas e tomam oaprendizado muito mais produtivo (aumenta em até 89% amemória e o aprendizado usando a técnica da transferência). Efacilita a compreensão. Ponha as palavras dentro ou próximasàs respectivas figuras, em vez de no rodapé ou em outra páginae os leitores serão até duas vezes mais capazes de solucionar osproblemas relacionados com aquele conteúdo.
Use um estilo próprio e em forma de conversa. Em estudosrecentes, o desempenho dos alunos nas provas realizadas apósaprenderem a matéria, melhorava em 40% se o conteúdo falassediretamente ao leitor usando a primeira pessoa, com um estiloque simulasse uma conversa em lugar do tom formal. Contehistórias em vez de dar palestras. Use a linguagem coloquial. Eviteser muito sério. Em que você prestaria mais atenção: em umacompanhia interessante na festa ou em uma palestra?
precisa chamar ummétodo no servidor
(~
serviçoremoto RMI
Faça o aluno refletir.Em outras palavras, nada acontece na sua cabeçaa menos que você exercite muito os seus neurônios. O leitor precisa estarmotivado, atraído, curioso e inspirado para resolver problemas, tecerconclusões e gerar um novo conhecimento. E para isso você precisa dedesafios, exercícios e perguntas que estimulem o raciocínio, além deatividades que envolvam ambos os lados do cérebro e os múltiplos sentidos.
Prenda - e segure - a atenção do leitor. Todos nós já pensamos "eurealmente gostaria de aprender isto, mas eu não consigo me manter
abstrac acordado depois da primeira página". Seu cérebro presta atenção a coisasroam () ; que são extraordinárias, interessantes, estranhas, atraentes e inesperadas.
/ Aprender um assunto novo, difícil e técnico não precisa ser chato. Seuf, cérebro aprenderá muito mais rápido se o assunto for interessante.
c.óM !)WI pM'l.fb-rV!i!'5Udi,
Mexa com a emoção do leitor. Agora nós sabemos que sua capacidade derecordar algo depende enormemente do seu conteúdo emocional. Aquilo quevocê se preocupa, você se recorda. Você se recorda quando sente algo. Não,nós não estamos falando de histórias de sofrimento entre um menino e seu
cão. Estamos falando de emoções como a surpresa, a curiosidade, a diversão,o "caramba!. .." e aquela sensação de "Eu sou o cara!" que vem quando vocêconsegue matar uma charada, aprender algo que todos acham difícil ouperceber que sabe uma coisa que o "bam-bam-bam" da engenharia não sabe.
XXII
introdução
Metacognição: pensando sobre pensarSe você realmente quer aprender - e aprender maisrápida e definitivamente -, preste atenção em comovocê presta atenção. Pense em como você pensa.Aprenda como você aprende.A maioria de nós não fez cursos de metacognição outeoria do aprendizado enquanto crescia. Esperam queaprendamos, mas raramente nos ensinam a aprender.Supomos que se você está segurando este livro, vocêquer aprender servlets e, provavelmente, não querperder muito tempo. Considerando que você faráa prova, você terá que lembrar do que leu. Logo,precisa entender o que foi lido. Para obter o máximodeste livro - ou de qualquer outro livro ou forma deaprendizado -, dê responsabilidades ao seu cérebro.Faça-o ficar atento a este conteúdo.
O truque é fazer com que seu cérebro encare comoRealmente Importante o novo material que vocêestá aprendendo. Crucial para o seu bem-estar.Tão importante quanto um tigre. Caso contrário,você estará constantemente em conflito, com o seucérebro dando o melhor de si para não assimilar oassunto novo.
Então, como você FAZ para que seu cérebro
considere os servlefs um tigre faminto?
Existem as formas lenta e tediosa e a mais rápida e efetiva. A forma lenta é a pura repetição. É claroque você sabe que será capaz de aprender e relembrar até mesmo o assunto mais estúpido se o ficarrepetindo. Com uma repetição intensa seu cérebro diz, "isto não parece importante para ele, mas elefica olhando para a mesma coisa repetidamente, então eu imagino que deva ser".
A maneira mais rápida é fazer qualquer coisa que aumente sua atividade cerebral, principalmenteatividades de tipos diferentes. O que foi dito na página anterior é uma grande parte da solução efoi comprovado como forma de ajudar seu cérebro a trabalhar em seu favor. Por exemplo, estudosdemonstram que colocando as palavras dentro das figuras que elas representam (em vez de soltas napágina, como uma explicação ou dentro do texto) faz com que seu cérebro entenda como as figuras eas palavras se relacionam, ativando mais neurônios. Mais neurônios ativados significa mais chancesdo cérebro entender que determinado assunto merece atenção e, possivelmente, deve ser registrado.
O estilo interativo também ajuda, pois as pessoas tendem a prestar mais atenção quando percebem queestão em uma conversa, já que se espera que ela;s acompanhem até o final. O interessante é que seucérebro não se importa necessariamente que a "conversa" seja entre você e um livro! Por outro lado,se o estilo de escrever for seco e formal, seu cérebro entenderá isso do mesmo modo que você o fariase estivesse em uma palestra numa sala repleta de participantes indiferentes.
Porém, as figuras e o estilo que simula uma conversa são só 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 usamos figuras, pois seu cérebro está adaptado ao que é visual,não texto. Para ele, uma imagem vale 1.024 palavras. E quando figurase textos trabalham juntos, nós inserimos o texto na imagem, pois seucérebro funciona melhor quando o texto está dentro daquilo a que se refere, Idiferente de estar numa observação ou escondido em algum lugar no texto.
Nós usamos a repetição. Dizemos a mesma coisa de formas distintas eatravés de meios diferentes - e múltiplos sentidos -, para aumentar aschances de o assunto ser registrado em mais de uma área cerebral.
Nós usamos os conceitos e as figuras de maneira inesperada, pois seucérebro é ativado quando encontra uma novidade. E usamos figuras eidéias com pelo menos algum conteúdo emocional, pois seu cérebro estápredisposto a dar mais atenção à bioquímica das emoções. Aquilo quete faz sentir algo tende a ser mais facilmente lembrado, ainda que estasensação não passe de um pouco de humor, surpresa ou interesse.
Nós usamos um estilo próprio que simula uma conversa, porque seucérebro tende a prestar maior atenção quando acredita que você estáparticipando d~ uma conversa e não assistindo passivamente a umaapresentação. E assim que funciona mesmo quando você está lendo.
Nós incluímos mais de 40 atividades, pois seu cérebro está habituado aaprender e a relembrar mais quando você faz alguma coisa do que quandovocê lê a respeito. E colocamos exercícios dificeis, porém possíveis deserem feitos, pois é como a maioria das pessoas prefere.
Nós usamos métodos diferentes de aprendizado, pois você poderiapreferir os procedimentos passo a passo, enquanto outra pessoapoderia preferir entender primeiro as figuras grandes, enquanto outras,simplesmente ver os exemplos de códigos. Mas, independentemente dasua própria preferência de aprendizado, todos se beneficiam vendo omesmo conteúdo representado sob múltiplas formas.
Nós colocamos assuntos para serem usados por ambos os lados do seucérebro, pois quanto mais você usar do seu cérebro, mais chances terá deaprender e lembrar, além de mais tempo de concentração. Já que colocandopara funcionar um lado do cérebro significa geralmente a oportunidade dooutro lado descansar, você poderá produzir mais por mais tempo.
E nós incluímos estudos de caso e exercícios que apresentam maisde um ponto de vista, pois seu cérebro está adaptado a aprender maisintensamente, quando forçado a fazer avaliações e julgamentos.
Nós inserimos desafios com exercícios eperguntas que nem sempre têmrespostas diretas, pois seu cérebro está mais propenso a aprender e lembrarquando tem que se esforçar por algo. Pense nisso - você não consegue manterseu corpo em forma apenas observando as pessoas na academia. Porem, nósfizemos o melhor possível para garantir que, quando você estiver trabalhandoduro, será pelas coisas certas. E que você não estará desperdiçando nenhumdendrito a mais, tentando entender um exemplo complicado ou analisandoum texto dificil, repleto de jargões, ou então, extremamente resumido.
Nós usamos pessoas nas histórias, nos exemplos, nas figuras, etc. Afinal,você é uma pessoa e seu cérebro dá maior atenção a pessoas do que a coisas.
Nós usamos a técnica do 80/20. Entendemos que se você pretende ser umPhD em JSP, este não deve ser seu único livro. Logo, não falamos sobretudo. Apenas da matéria que você realmente precisará.
XXIV
introdução
Eis O que VOCÊ pode fazer paradominar seu cérebro
Então, fizemos a nossa parte. O resto é com você. As dicas a seguir são oponto de partida. Preste atenção no seu cérebro e descubra o que serve e o
Jef!cá/'h , que não serve para você. Experimente novidades.d ! " f: C<J!Y4{1P - ;
~" ,J1?1tJ;«elf'tI. (). "i!I Pó/'r",
(1) Vá devagar. Quanto mais você entender,menos terá que memorizar.Não leia apenas. Pare e pense. Quando olivro perguntar algo, não pule para a resposta.Imagine que alguém esteja realmente lhefazendo a pergunta. Quanto mais você forçar oseu cérebro a pensar, melhores serão as chaTIcesde aprender e recordar.
® Faça os exerCÍcios. Faça suas própriasanotações.Nós os colocamos no livro, mas se nósresolvermos, vai parecer que alguém estáfazendo a ginástica para você. E não bastaolhar os exercícios. Use um lápis. Estáprovado que a atividade fisica, enquanto seestuda, pode melhorar o aprendizado.
@) Leia a seção "Perguntar não ofende".Ou seja, todas elas. Elas não são barraslaterais opcionais. Elas s ão parte doconteúdo principal! Não as pule.
@Antes de ir dormir, faça desta a sua últimaleitura. Ou pelo menos a última que lheexija racioCÍnio.Parte do aprendizado (especialmente atransferência para a memória de longaduração) acontece depois que você fecha olivro. Seu cérebro necessita do seu própriotempo para maior processamento. Se vocêpuser uma informação nova durante estetempo de processamento, o que você acaboude aprender será perdido.
@ Beba água. Muita água.Seu cérebro funcionará melhor se receber
um belo banho. A desidratação (que pode .acontecer bem antes de você sentir sede)reduz a função cognitiva. A cerveja, ou algomais forte, será bem-vinda quando vocêpassar no exame.
® Fale. Em voz alta.Falando, você ativa uma parte diferente docérebro. Se você estiver tentando entender
algo ou aumentar sua chance de recordarmais tarde, leia em voz alta. Melhor ainda,tente explicar isto para outra pessoa em vozalta. Você aprenderá mais rápido e talvezobserve idéias que você não havia percebidoque estavam ali enquanto lia.
Q) Ouça seu cérebro.Observe se o seu cérebro não está ficando
sobrecarregado. Se você se pegar passandoa mão na superficie do livro ou esquecendoo que acabara de ler, é hora de umapausa. Uma vez que você ultrapasse umdeterminado ponto, você não aprenderá maisrápido se tentar "enfiar" mais informaçãona cabeça e poderá até comprometer oprocesso.
® Sinta algo!Seu cérebro precisa saber que isto éimportante. Envolva-se com as histórias.Crie suas próprias legendas para as fotos.Dar um sorriso amarelo quando uma piadanão tem graça ainda é melhor do que nãoesboçar reação.
® Faça o Teste Preparatório Final só DEPOISde acabar o livro.
Se você fizer o teste muito cedo, você nãoterá uma idéia clara da sua preparação parao exame. Espere até sentir que você estáquase pronto e então faça o teste em, nomáximo, 135 minutos - o tempo verdadeirodoSCWCD.
você está ••XXV
Use a Cabeça JSP
o que você precisa para este livro:Além do seu cérebro e um lápis, você precisa do Java, do Tomcat 5 e deum computador.Você não precisa de nenhuma outra ferramenta de desenvolvimento como oIntegrated Development Environment (IDE). Definitivamente, recomendamosque você não use nada além de um editor simples até terminar o livro. UmIDE que reconhece servlet e JSP poderá privá-l o de algum detalhe realmenteimportante (e que cairá na prova). Por isso, é melhor você evitar desenvolvertodo o bean manualmente. Uma vez que você realmente entenda o que estáacontecendo, poderá utilizar uma ferramenta que automatize alguns dospassos para a criação e distribuição do servlet/JSP. Se você já sabe como usaro Ant, poderá usá-lo após o capítulo 3 para ajudar na distribuição. Porém, nãorecomendamos usar o Ant até que você tenha memorizado completamente aestrutura de distribuição da aplicação web.
OBTENDO O TOMCAT --------,
Caso ainda não possua o Java SE v1.5 ou superior, você vaiprecisar (de preferência 1.4).
Se você não tem ainda o Tomcat 5, obtenha-o em:http://tomcat.apache.org/
Selecione "Tomcat v5.5" no menu Downloads no lado esquerdoda home page.
• Pagine até a seção "Binary Distributions" (Distribuições Binárias)e faça o download da versão escolhida. Se não souber, então,selecione a distribuição "Core" (Básico); é tudo que você precisa.
Salve o arquivo de instalação em uma pasta temporária.
Instale o Tomcat.Para Windows, dê um duplo-clique no arquivo install.exe e sigaas instruções do assistente de instalação.Para os outros sistemas, descompacte o arquivo de instalaçãono diretório onde você quer que o Tomcat resida.
Para facilitar as instruções do livro, renomeie para "tomcat" odiretório home do Tomcat (ou configure um cognome "tomcat"que aponte para o home verdadeiro do Tomcat).
Configure as variáveis de ambiente para JAVA_HOME eTOMCAT HOME, da mesma forma como você normalmentefaz em sua máquina.
Você deve ter uma cópia das especificações, embora nãoprecise delas para passar no exame. Até o lançamento destelivro, as especificações eram:Servlet 2.4 (JSR #154) http://jcp.org/eng/jsr/detail?id=154JSP 2.0 (JSR #152) http://jcp.org/eng/jsr/detail?id=152JSTL 1.1 (JSR #52) http://jcp.org/eng/jsr/detail?id=52Vá até a página JSR e clique em Download Page para olançamento mais recente.
Teste o Tomcat rodando o script tomcat/bin/startup (startup.sh para os sistemas Linux/Unix/OSX). Digite na barra deendereços do seu browser:http://localhost:8080/ e você verá a página inicial do Tomcat.
XXVI
.~ ...
Java 2 Standard Edition 1.5Tomcat 5
O exame abrange asseguintes especificações:
• Servlets 2.4
·JSP 2.0
• JSTL 1.1
Coisas de última hora que você precisa saber:Isto é uma experiência de aprendizado e não um livro dereferência. Nós retiramos deliberadamente tudo que pudesseatrapalhar o caminho do aprendizado, independentemente doque estejamos trabalhando no livro. E, desde o primeiro instante,comece do começo, pois o livro faz considerações quanto àquiloque já foi visto e aprendido.
Nós usamos diagramas simples e parecidos com UML.Embora exista uma grande chance de você já saber UML, isto nãoé cobrado no exame e não é um pré-requisito para o livro. Então,você não terá que se preocupar em aprender servlets, JSP, JSTL eUML ao mesmo tempo.
Nós não cobrimos todos os detalhes minuciosos da especificação.O exame é muito detalhado, mas, nós também somos. Porém, seexiste um detalhe na especificação que não é cobrado no exame, sóo citaremos se for importante para a maioria dos desenvolvedores decomponentes. O que você precisa saber para começar a desenvolvercomponentes web (servlets e JSPs), e o que precisa para passar noexame, cobre cerca de 85%. Nós incluímos algumas coisas que nãocaem na prova, mas sinalizamos para que você não se preocupe emmemorizá-Ias. Nós criamos o verdadeiro exame, portanto, sabemosonde você deverá concentrar sua energia! Se houver a possibilidadede um mínimo detalhe figurar em uma questão da prova, mas se oesforço para aprendê-Io realmente não valha a pena, provavelmenteou o omitiremos, ou o abordaremos sucintamente, ou o colocaremosem uma questão do teste preparatório.
As atividades NÃO são opcionais.Os exercícios e as atividades não são meros adicionais; eles sãoparte do conteúdo principal do livro. Alguns estão lá para ajudar namemorização, outros para ajudar na compreensão, enquanto outroso ajudarão a aplicar o que você aprendeu. Não pule nada.
A redundância é intencional e importante.Uma coisa que é claramente diferente em um livro da série Use aCabeça! é que nós queremos muito, muito, muíto que você entenda.E gostaríamos que você terminasse o livro lembrando o queaprendeu. A maioria das informações e dos livros de referências nãotem, necessariamente, a retenção e a lembrança como objetivos, masaqui você verá alguns conceitos aparecerem mais de uma vez.
Os códigos-exemplos são os mais resumidos possíveis.Nossos leitores têm relatado o quanto é frustrante lerminuciosamente 200 linhas de códigos procurando por aquelasduas linhas que eles precisam. A maioria dos exemplos deste livroé exibida dentro dos menores contextos possíveis, para que a parteque você precisa fique clara e simples. Não espere que o códigoseja robusto ou completo. Esta é sua tarefa para quando terminar olivro. Os exemplos aqui são escritos especialmente para aprender enem sempre são totalmente funcionais. Alguns exemplos de códigopara o livro estão disponíveis em www.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)
o exame SCWCD atualizado é chamado de "Sun Certified Web Component Developerfor Java Platform, Enterprise Edition 5" (CX-310-083), mas não fique confuso com otítulo. O exame atualizado ainda é designado para o Java EE vIA, para o servlet v2A eas especificações JSP v2.0.
Primeiro tenho que passar no SCJP?
Sim. O exame Web Component Developer, exame Business Component Developer,exame Mobile Application Developer, exame Web Services Developer e exame
Developer requerem que você seja um Sun Certified Java Programmer.
Quantas questões?
Você terá 69 questões quando fizer o exame. Ninguém têem as mesmas 69 questões; existemmuitas versões diferentes do exame. Mas todas têm o mesmo grau de dificuldade e o mesmoequilíbrio de tópicos. No exame real, espere ver pelo menos uma questão do objetivo de
cada exame e existem alguns objetivos nos quais você terá mais de uma questão.
Quanto tempo tenho para completar o exame?
Você tem três horas (180 minutos). A maioria das pessoas não acha que isso é um problema,pois essas questões não são longas, complicadas, complexas. A maioria das questões é
muito curta, tem múltipla escolha e você sabe a resposta ou não.
Como são as questões7
Elas são quase exatamente como as nossas perguntas simuladas do exame, com umagrande diferença - o exame real informa-o quantas respostas estão corretas, nós não.Contudo, você verá algumas perguntas do tipo arrastar e soltar que não podemos fazeraqui. Mas as questões com arrastar e soltar são apenas o modo interativo de coincidiruma coisa com outra.
Quantas tenho que responder corretamente?
Você deve ter 49 questões corretas (70%) para passar no exame. Quando terminarde responder a todas as questões, mantenha o cursor do mouse sobre o botão Done(Terminado) até que tenha coragem de clicá-Io. Em cerca de seis nanossegundos, você
saberá se passou (claro, você passará).
Por que os exames simulados no livro não informam quantas opções escolher para aresposta correta?
Queremos que nossos exames sejam apenas um pouco mais difíceis que o exame real,para lhe dar uma idéia mais verdadeira para saber se você está pronto para fazer oexame. As pessoas tendem a ter notas mais altas nos exames simulados do livro porquerefazem o mesmo teste mais de uma vez e não queremos que você tenha uma falsasensação de sua aptidão para o exame. Os leitores têm informado que a pontuaçãoconsegui da no exame real é muito próxima da pontuação que eles têm no examesimulado final neste livro.
XXVIII introdução
o que acontece depois de fazer o exame?
Antes de deixar o centro de teste, obtenha o relatório de seu exame. Ele mostra umresumo de sua pontuação em cada área maior e se passou ou falhou. Guarde-o! É suaprova inicial de que você foi certificado. Em poucas semanas depois do teste, vocêreceberá um pequeno pacote da Sun Educational Services que inclui seu certificadoimpresso real, uma carta de felicitação da Sun e um adorável alfinete de lapelainformando Sun Certified Web Component Developer em uma fonte tão pequena quevocê poderia declarar ser certificado em qualquer coisa que quisesse e ninguém poderialer para saber a diferença. Não inclui a bebida alcoólica que você estará querendo depois
de passar no exame.
Quanto custa e como me registro?
O exame custa US$200. E é por isso que você precisa deste livro ... para assegurarque passará na primeira vez. Você registra-se através do Sun Educational Services,fornecendo o número de seu cartão de crédito. Em troca, receberá um número de
voucher, que usará para agendar um encontro em um Prometric Testing Center maispróximo de você.Para obter detalhes on-line e comprar um voucher do exame, comece em:bttp://www.sun.com/training/certificationi. Se estiver nos Estados Unidos, estará marcado. Se não, poderá
selecionar um país na barra de menus à direita.
Como é o software do exame?
É bem simples de usar - você tem uma questão e responde-a. Se não quiser responder,poderá pulá-Ia e voltar para ela mais tarde. Se a responder, mas não estiver certo equiser voltar para ela se tiver mais tempo, poderá "marcar" uma questão. Assim quetiver terminado, verá uma tela que mostra todas as questões que você não respondeu oumarcou, para que possa voltar para elas.Bem no início do exame, você obterá um pequeno tutorial sobre como usar o software,onde conseguir um pequeno teste prático (não sobre Servlets). O tempo gasto no tutorialnão conta como o tempo gasto no exame SCWCD. O relógio não iniciará até que você
tenha terminado o tutorial do software de exame e estiver pronto para começar.
Onde posso encontrarum grupo de estudo e quanto tempo levará para me preparar?
O melhor grupo de análise on-line para este exame é aquele que os autorespresidem! (Deus, quais são as probabilidades?) Pare em j avaranch. com e vá para BigMoose Saloon (é onde estão todos os fóruns de discussão). Você não pode perder.Sempre haverá alguém para responder suas perguntas, inclusive nós. JavaRanch éa comunidade Java mais amistosa na Internet, portanto, você será bem-vindo nãoimportando o nível em que estiver no Java. Se você ainda precisar ter o SCJP, iremosajudá-Io com ele também.Quanto tempo leva para ficar pronto para o exame depende muito de quantos servletse experiência JSP você tem. Se você for novo. nos servlets e no JSP, poderá precisar de6 a 12 semanas, dependendo de quanto tempo pode dedicar a cada dia. Aqueles commuitos servlets recentes e experiência JPS geralmente poderão estar prontos em atétrês semanas.
você está ~ XXIX
a equipe de revisores
Beta testers & Revisores Té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 •.•u de
~a,beld$!JT'rt.b'Jc'(';s f>4!JJ'"
Céwsa desh Itvrcó,
-I
de: J""'5 ---.----/
A"drew 1Lf.""k/,{Jtlse
(~fl.ee,l-ish lA.adafta
J.tU' ct'~J.t.f<}
Outras pessoas a quem ~:
Na O'Reilly:
Nossos maiores agradecimentos a Mike Loukides na O'Reilly,por iniciar tudo e ajudar a dar forma ao conceito Use a Cabeça emuma série. Adoramos ter um editor que é um Verdadeiro Java. E umgrande agradecimento à força motriz por trás do Use a Cabeça, TimO'Reilly. Felizmente para nós, ele sempre está pensando no futuroe gosta de ser uma influência destruidora. Obrigado a Kyle Hard "amamãe da série" Use a Cabeça inteligente por descobrir como o Use
a Cabeça encaixa-se no resto dos livros de computador.
Nossos revisores intrépidos:
Tudo bem, então, o livro levou um pouco mais de tempo do quetínhamos planejado. Mas sem o gerente de revisão JavaRanchJohannes deJong, ele teria ficado assustadoramente atrasado. Vocêé nosso herói, Johannes. E nossos agradecimentos especiais a JoeKonior cujo feedback em cada capítulo foi quase do mesmo tamanhodo capítulo. Estamos profundamente agradecidos pelo esforçoinexorável e experiência (e alegria) de Philippe Macquet. Todosos três autores adoram-no tanto que queremos casar com ele ... masisso seria estranho. E estamos muito gratos a Andrew Monkhousepelo feedback técnico e ajuda nas traduções sutis do inglês para alíngua australiana. Jef Cumps, sua interpretação MP3 da canção"setHeader" foi impressionante (exceto talvez por ser um pouco emo)e seus comentários técnicos foram realmente úteis.
Dave Wood trabalhou com afinco em tudo e foi carinhoso ao apontarpara as primeiras páginas e dizer: "Isso não é o estilo Use a Cabeça".Também tivemos um feedback excelente dos moderadores JavaRanch
Jason Menard, Dirk "cara de peixe" Shreckmann, Rob Ross,Ernest Freidman-Hill e Thomas Paul. E como sempre, agradeço
especialmente ao chefe javaranch.com, Paul Wheaton.
Agradecimentos especiais aos seguintes revisores técnicos pelasegunda edição: Bear Bibeault, Theodore Casser, UlfDittmer,Preetish Madalia, Sergio Ramirez, Oliver RoeU, Neeraj Singhal eCollins Tchoumba.
Perguntas do examine simuladoSe você se encontrar balançando a cabeça em uma questão simuladaJSP particularmente capciosa, não nos culpe - culpe Marc Peabody!Obrigado Marc por ajudar a manter todos os candidatos SCWCDem alerta. Marc passa uma quantidade enorme de seu tempo livremoderando no JavaRanch, onde é conhecido por estimular osusuários Ranch a construir misturas horríveis de suas tecnologias JavaEE inocentes.
introdução
você está ~ XXXI
mais reconhecimentos
Tem mais gente ainda*
Por Bryan Basham
Eu poderia começar agradecendo à minha mãe, mas isso já foi feito antes ... Meu conhecimento emdesenvolvimento web com Java tem como base algumas aplicações de média escala que escrevi, masesta base foi melhorada e refinada por anos de debate em Java como instrutor da Sun, usando um e-mailcom um nome fictício. Em particular, gostaria de agradecer a Steve Stelting, Victor Peters, Lisa Morris,Jean Tordella, Michael Judd, Evan Troyka e Keith Ratliff. Muitas pessoas ajudaram a lapidar meuconhecimento, mas estes seis foram as facas que melhor me esculpiram.
Como em todos os projetos de livro, os últimos três meses foram muito dificeis. Gostaria de agradecer à minhanoiva, Kathy Collina, por ter sido paciente comigo. Eu quero agradecer a Karma e Kiwi (nossos gatos) pelassessões de lambidas tarde da noite e as pancadas no teclado.
Por último, e mais importante, tenho que agradecer à Kathy e ao Bert por sugerirem que levássemosadiante o projeto. Kathy Sierra é mesmo única no mundo. Seu conhecimento em metacognição e designeducacional só se comparam à sua essência criativa que transborda nos livros desta série. Eu tenhotrabalhado com educação há cinco anos e praticamente tudo o que aprendi foi com a Kathy ... Oh, nãose preocupe com minha mãe; ela receberá uma grande dedicatória em meu próximo Use a Cabeça!. Eute amo, mãe!
Por Kathy e Bert
Isso foi tão sentimental, Bryan, ohhhh ... (Não que a Kathy não goste de rasgar uma seda). Mas, concordamosquando fala sobre sua noiva. Mas não por ela ter sentindo saudades suas, enquanto jogava Ultimate o verão todoe nós trabalhávamos feito cachorro em nossos Powerbooks 1. Mas você realmente fez disso uma experiênciarecompensadora, Bryan, e hoje é o melhor(NA) co-autor que já tivemos! Chega quase a assustar o quantovocê é calmo e feliz o tempo todo.
Todos nós adoramos a equipe que trabalha duro nos exames de certificação da Sun, em especial a Gerentede Certificação em Java, Evelyn Cartagena. Queremos agradecer também a todos os colegas que ajudaram adesenvolver as especificações dos JSRs para Servlet e JSP.
* o grande número de agradecimentos é porque estamos testando uma teoriade que todos os mencionados na seção de agradecimentos do livro comprarãopelo 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 tiveruma 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