Use a cabeça jsp & servlets

30,078 views

Published on

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
30,078
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
1,648
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Use a cabeça jsp & servlets

  1. 1. "Sôciêdade de Ensino Sunerior da PamffJaElogios 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, BruxelasElogios 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 que você conseguiu do Scott? Veja se consegue fazer com que ele acrescente algo do tipo: "Se nós tivéssemos os livros da série Use 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 de Computadores, 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 e Científicas com Usuários, IBM Almaden Research Center (e professor 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.
  2. 2. 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 o livro 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 conta de 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 material do Use a Cabeça! EJB eu consegui uma ótima pontuação (91 %) e estabeleci um recorde mundial como 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 com características GUI! Com seu formato revolucionário e elaborado com perfeição, o livro oferece vantagens que outros títulos sobre Java simplesmente não conseguem ... Prepare-se para um passeio realmente extraordinário pelo universo Java." - Neil R. Bauman, Diretor Executivo e capitão da Geek Cruises (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 com um 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 bem dividido entre quebra-cabeças e histórias, questionários e exemplos, que você obtém uma abrangência quehenhum 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 OReilly: Existe um OReilly para issoz. 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 OReilly, eles conseguiram um formato científico, mas bem aceito. 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 - com os colegas ... Se você quer ENTENDER Java, compre logo o seu." - Andrew Pollack, www.thenorth.com
  3. 3. 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 MishraEu 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 permitiu-me 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
  4. 4. se a Cabeca Servlets ...:> & JSPTM Segunda Edição Não seria fantástico se existisse um livro sobre Servlets que fosse mais interessante do que apagar spam da sua caixa de mensagens? Talvez isso seja uma ilusão ... Bryan Basham Kathy Sierra Bert Bates Rio de Janeiro.2008
  5. 5. Use a Cabeça Servlets & JSpTM© Alta Books Editora - Starlin Alta Con Com Ltda 2008Do original Head First Servlets and JSPTM.Authorized translation of the English edition of Head First Servlets and JSPTM 2st Edition © 2008 OReil/y ,Media,lnc. ISBN: 978-0596102340 This translation is published and sold by permission ofOReil/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 desoftware, 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 Machado Revisão: Fernanda Rigamond Revisão Técnica: Helder Borges Diagramação: Equipe Alta BooksImpresso no Brasilo 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-1253 www.altabooks.com.br altabooks@altabooks.com.br
  6. 6. Esse livro é dedicado a todos aqueles que decidiram que EL implicit object
  7. 7. os autoresOs "procurados" da série Use a Cabeça! (e deste livro) Bryan BashamBeart BatesBert é um antigo desenvolvedor Kathy gosta de teoria da Bryan tem mais de vintee arquiteto de software, mas aprendizagem e assuntos anos de experiência emum período de 10 anos em relacionados à mente desde a desenvolvimento de software,inteligência artificial o fez época em que era designer de incluindo um período comse interessar por teoria da jogos (ela escreveu jogos para software de automaçãoaprendizagem e treinamento a Virgin, MGM e Amblin) e avançada usando técnicasvia computador. Ele passou a desenvolvedora em I.A2 Grande de I.A na NASA Eleprimeira década de sua carreira parte do formato da série Use também atuou em umacomo desenvolvedor viajando a Cabeça! foi desenvolvido consultoria, desenvolvendopelo mundo e ajudando clientes enquanto lecionava Interatividade aplicações comerciais em 00como a rádio Nova Zelândia, Usando Novas Midias, no personalizadas. Atualmente,o The Weather Channel e a programa de extensão de Bryan é Desenvolvedor derede de entretenimentos Arts Estudos em Entretenimento Cursos da Sun, com ênfaseand Entertainment Network da Universidade da Califómia nos princípios de design em(A&E) em suas transmissões. (DCLA). Recentemente, se Java e em 00. Ele já trabalhouAtualmente, ele é membro da tomou instrutora-chefe da em diversos cursos de Javaequipe da Sun responsável pelo Sun Microsystems e ensina os da Sun, incluindo JDBC,desenvolvimento de diversos instrutores de Java a divulgarem J2EE, Servlets e JSP, além deexames de certificação em Java, as mais novas tecnologias Desenvolvimento de Softwareincluindo o recente SCWCD. desta linguagem. Além disso, utilizando 00. Ele foi tambémBert é um antigo e incorrigível desenvolve diversos exames o primeiro designer dos examesaficionado pelo GOl e vem para certificações Sun, incluindo SCWCD, nas versões originaltrabalhando há bastante o SCWCD. Junto com Bert e atual.tempo em um programa. O Bates, ela tem aplicado Bryan pratica o Zen Budismo,Java há de se tomar uma extensivamente os conceitos da joga Ultimate Frisbee, adoralinguagem expressiva o série Use a Cabeça! no ensino som e pratica o ski telemark.suficiente para que ele finalize de milhares de desenvolvedores.seu projeto. Ele é um bom Ela fundou uma das maioresguitarrista e, atualmente, está comunidades em Java noexperimentando o banjo. mundo virtual, a javaranch.Sua mais recente aventura com, premiada em 2003 e 2004foi a compra de um cavalo com o Prêmio Produtividade emislandês, o que deverá trazer Desenvolvimento de Software.novos desafios aos seus Ela adora correr, esquiar, montarconhecimentos na área de a cavalo, andar de skate etreinamento ... ciências esotéricas.VIII
  8. 8. 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 865Introduçã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? XX Nós sabemos o que seu cérebro está pensando XXI Metacognição XXlll Domine seu cérebrp xxv O que você precisa para este livro XXVI Passando no exame de certificação XXVlll Os revisores técnicos XXX Agradecimentos XXXI IX
  9. 9. 1 Por 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 Objetivos do Exame 2 de solicitação: • O método HTTP (a ação de se~ executada) • A~<rinaqueseráacessada O que os servidores web e os clientes fazem e como conversam • (umaURL) Osp:mi:mctrosdofurmulãrio(curoo entre si 4 argtIIIlell!oSparamnrnéloOO) Guia rápido de HTML 7 solicitação HTTP 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 Cliente Servidor Servidores web, páginas estáticas e cm 24 Principais elementos do fluxo de resposta: Desmistificando os Servlets: escreva, distribua e rode um servlet 30 • Um código de .umIS (no caso de uma solicitação bem sucedida) TIpo de conteúdo (tc."to, i~oem, HIML, ctc_) JSP foi o que aconteceu quando alguém apresentou o Java ao HTML 34 • O conteúdo (o HTML real, a imagem, etc_) Arquitetura da aplicação web Os 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. 2 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. Serv!et Objetivos do Exame 38 O que é um Container e o que ele oferece? 39 (Controlador Como fica o código (o que toma um servlet um servlet) 44JSP iJSP 1 Nomeando os servlets e mapeando-os a URLs usando o DD História: Bob Constrói um Site de Encontros (introdução ao MVC) 46 50 JCVQ Visão geral e exemplo de MVC (Model- View-Controller) 54 antigo View Modelo 1, Um Deployment Descriptor (DD) "funcionando" 64 Ba",o de Dad,,, Como o J2EE cabe nisso tudo 65x
  10. 10. conteúdo Minitutorial do MVC 3 Criando e distribuindo uma aplicação MVC. Chegou a hora de colocar a mã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Ófio root" que o Torncat o •context também representa usa quando estó resolvendo URLs. Nós r::::a ~ ! Esta parte da estrutura de diretórios é exigido Objetivos do Exame 68 exploraremos detalhes conceno em maiores este no copít1Jloobre Distribuição. s l;;;J -; seu diretónoeablllxo estar ;~ I { pelo Tomcat diretamente j d~ve do home. Vamos construir uma aplicação MVC: primeiro o design 69 -~8)~_OOOmedaapricação. Criando os ambientes de desenvolvimento e distribuição 72 Criando e testando o HTML para o formulário inicialdos Servlets j- - l§l ,!J. Criando o Deployment Descriptor (DD) 77parteda •• pecifj~ção~l ! _ 1"""" ~" ~ Este arquivo web.xmJ h~TEMQ~Eestarem l __ _ _ z;; WEB-INF Criando, compilando, distribuindo e testando o servlet de controle 81EspecíficoAplicação da 8,- -: ~ •. A estrutura deste pacote é Design, criação e teste do componente modelo 82 - - . . A menos que você esteja Otimizando o controlador para chamar o modelo ~i _~ ~~(~:~~a~:e~t~i:O ~; __". :~:~~~~u:n=;~o 1 _~ .. ,- , _ -- _-- maIs tarde). você DEVE colocar o Criando e distribuindo o componente view; (isto é um JSP) 87 g 8 i [pacote de estrutura de diretórios irnediatamente abaixo de WEB- ~> _si"", INF/classes. Otimizando o servlet de controle para chamar o JSP 88 Sendo um servlet 4 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 ... 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 o servlet usa os dados NÃO Idempotente do POST para atualizar Então, essa foi a Solicitação ... vejamos agora a Resposta 126~~ <_ .... ~:":: LJ M wz .... -----8 .. ObanCOde ..... QdOS. d .•.. Você pode configurar headers de resposta, você pode adicionar~~Cliente ~ /servlet :::~ irO servJet WW. de volta uma resposta envia com uma página gerada em HTML D headers de resposta 133 Redirecionamento de servlets faz o browser trabalhar 136 Revisão: HttpServletResponse 140 XI
  11. 11. Sendo uma aplicação web 5 Nenhum 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. 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 1669rset Tutorial: escreva um ServletContextListener simples 168 ,,, Compile, distribua e teste o seu listener 176~set Acessível apennspamoquelescomoc:essoQ_HttpSessionespecifico A história completa, uma análise do ServletContextListener 178 Atributos de SOUctTAÇÃO 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 205XII
  12. 12. conteúdo (sumário) Estado de conversação 6 Os servidores web não têm memória curta. Assim que eles lhe enviam uma resposta, eles esquecem quem você é. Na próxima vez que você fizer uma solicitação, eles não o reconhecerão. Eles não se recordam do que você solicitou no passado e nem do que eles enviaram como resposta. Nada. Porém, algumas vezes você precisa manter o estado de conversação com o cliente durante várias solicitações. Um carrinho de compras não funcionaria se o usuário tivesse que escolher seus produtos e finalizar a compra de uma única vez. Objetivos do Exame 224 Esperamos que seja uma conversa (como as sessões funcionam) 226 IDs de sessão, cookies e outros fundamentos das sessões 231 06of.if-f,-",",,-!--r.~""~- Reescrita de URL: uma alternativa 237 "~= ~"úú ..•.•. Quando as sessões envelhecem; dando adeus às sessões ruins 241 Posso usar cookies para outras coisas além das sessões? 250 Os principais momentos de um HttpSession 254 Não se esqueça do HttpSessionBindingListener 256 A migração da sessão 257 Exemplos de listener 261 Sendo um JSP Um JSP torna-se um servlet. Um servlet que você não cria. O Container olha o seu JSP, o traduz em código-fonte Java e o compila em uma classe servlet de Java completa. Porém, você tem que saber o que acontece quando o código que você escreveu em JSP se transforma em código Java. Você pode escrever códigos Java em JSP, mas será que você deveria? E se não for um código Java, o que você pode escrever? Como ele jaz a tradução para o código Java? Veremos seis diferentes 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 282 Criando um JSP simples usando o "out" e uma diretiva de página 283 Expressões, variáveis e declarações em JSP 288 Hora de ver. um servlet gerado a partir do JSP 296~ ., ,. ._.~. A variável out não é o único objeto implícito 298 ">.,. MyISP-.J<pSc1vlet O Ciclo de vida e a inicialização de um JSP 306 Já que estamos falandosobre isso ... as três diretivas 314 Scriptlets considerados perigosos? Eis a EL 317 Mas, espere ... ainda não vimos as ações 323 XIII
  13. 13. Páginas sem scripts 8 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! 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 .""<0""" .•.••••.••• <1<:; 9"",~.,,<!~~",-,.~.". _~d~. 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 417XIV
  14. 14. conteúdo As tags customizadas são poderosas 9 Em 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 () .H-ritr.rlc.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 </c:forEach> V;jr- J<!l /"* exhl~c. MatrL,,{Ievoiutions!«:so,!h"f,,~iro s,J,n---7j KillBilI BoondockSaints Àmelie ReturnoflheKing MeanGirls xv
  15. 15. Quando nem a JSTL é o bastante ... 10 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 os seus próprios tag handlers. Dessa maneira, os seus desenvolvedores de páginas poderão usar a sua tag nas suas páginas, enquanto todo o trabalho duro é feito nos bastidores, na sua classe tag handler. Mas há três maneiras diferentes de se criar os seus próprios tag handlers, então, há muito o que aprender. Dessas três, duas foram introduzidas com o JSP 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 dos valores 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 web Finalmente, sua aplicação está pronta para o horário nobre. As suas páginas 11 estã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? O que é que o cliente realmente solicita, e como o Container sabe onde procurar? Objetivos do Exame 602Referênciaaumbeanlocal Principal tarefa da distribuição: onde entra o quê? 603 612 ~" Arquivos WAR 616 ~ Como o mapeamento de servlets REALMENTE funciona =~?::::::~;~:::. Configurando arquivos de boas-vindas no DD 622 Configurando páginas de erro no DD 626 ~ ~ Configurando a inicialização de servlets no DD 628 __ -êCriando um JSP compatível com XML: um Documento JSP 629XVI
  16. 16. conteúdo Mantenha em segredo, mantenha seguro 12 Sua aplicação web está emperigo. O perigo espreita em cada canto da rede. Você não quer os Caras Maus xeretando nas transações da sua loja virtual, roubando números de cartões de crédito. Também não quer os Caras Maus convencendo o seu servidor de 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 dos empregados. Será que o Jim, do departamento de marketing, precisa mesmo saber que a Lisa, do departamento de engenharia, ganha três vezes mais do que ele? As Dez Melhores Razões para realizar a Sua segurança declaratwamente Iil lJmpaucomais deprátirocomXML 11ÕrJfazmal a 11inguém. Objetivos do Exame 650 O :~:U~::te, as.~eclarações casamnaturalmente O Top 4 em segurança de servlets 653 deparrame;oSd~~ :mp~O) já existentesno Como Autenticar no Mundo HTTP 656 e Fica multo bem no seu curriculo. As Dez Melhores Razõespara realizara sua segurançadeclarativamente 659 o ~~:: ~;~~asmais ::j~~:ma flexíveis, G Está no exame. Quem implementa a segurança em uma aplicação web? 660 e Permite aos dcsenvoh-edores de aplicações IeUtJlizarem senlets, mesmo sem acesso ao código-fonte. Autorização: funções e restrições 662 O É legal, simplesmente. 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 caso a caso e declarativamente 684 o poder dos filtros Os filtros lhe permitem interceptar a solicitação. E se puder interceptar a solicitação, você poderá também controlar a resposta. E, melhor de tudo, o servlet nem percebe o que aconteceu. Ele nunca ficará sabendo que alguém intercedeu 13 entre a solicitação do cliente e a invocação do método serviceO do servlet pelo Container. 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 vez disso, escrevendo e configurando um filtro com a capacidade de afetar todos os seus setvlets. Adicionar tracking das solicitações do usuário a todos os servlets da sua aplicação? Sem problema. Manipular o output de cada servlet da sua aplicação? Sem problema. E você não precisa nem sequer tocar no código do servlet. •.•...--_ •a pilha ·181" •• a pilha 9 e a pilha e a pilha a pilha o 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 resposta 702 707 708 710 713 o Conta;tle<" ""P<Jn"otrlétodo ~;::o::-,. Os wrappers são demais 719 ~i<eOdo S••••leM I""" o ~~::~~~é êiªª::: O código do verdadeiro filtro de compressão 722 fircl,m-.e ""tilo,; Conta;ner-nMlÜQa ",t;rndodo.pilll<l. respost"- Código do wrapper de compressão 724 XVII
  17. 17. Padrões de Design Enterprise 14 Alguém já fez isso antes. Se estiver começando agora a desenvolver aplicações web em Java, você tem sorte. Poderá se beneficiar do saber coletivo das dezenas de milhares de desenvolvedores que já trilharam esse caminho e sobreviveram para contar. Usando tanto os padrões de design específicos do J2EE quanto outros padrões, é possível simplificar o seu código e a sua vida. E o padrão de design mais significativo para aplicações web, o MVC, possui até mesmo um framework absurdamente popular, o Struts, que ajudará você a criar um servlet Front Controller flexível e de fácil manutenção. Você deve a si mesmo tirar vantagem do trabalho dos outros para que possa despender mais tempo nas coisas 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 assuntos abordados e o nível de dificuldade são praticamente idênticos aos da prova oficial. Nós sabemos. Teste preparatório final 791 Respostas 828 o 1 índice 865XVIII
  18. 18. 1 Introdução Como usar este livro?
  19. 19. Use a Cabeça JSPA 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ê deseja aprender, compreender, lembrar dos servlets e dos JSPs e passar no exame SCWD for Java EE 1.5? ® Você prefere uma conversa descontraída em uma festa a palestras acadêmicas sem graç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ível avançado, mas, definitivamente, deve ter alguma experiência. Se não tiver, pegue um exemplar 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 e reais? @ Você tem medo de experimentar coisas diferentes? Você prefere fazer um canal no seu dente a misturar listras num tecido xadrez? Você acha que um livro técnico perde a credibilidade se os componentes Java tiverem aparência humana? este livro não é para você.xx
  20. 20. introduçãoNó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á ~ XXI
  21. 21. Use a Cabeça JSP Então, o que é necessário para se aprender algo? Primeiro, você precisa absorver e depois se 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 psicologia educacional, o ato de aprender envolve muito mais que textos em uma página. E nós sabemos o que 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áceis de serem memorizadas do que palavras soltas e tomam o aprendizado muito mais produtivo (aumenta em até 89% a memória e o aprendizado usando a técnica da transferência). E facilita a compreensão. Ponha as palavras dentro ou próximas às respectivas figuras, em vez de no rodapé ou em outra página e os leitores serão até duas vezes mais capazes de solucionar os problemas relacionados com aquele conteúdo. precisa chamar um método no servidor Use um estilo próprio e em forma de conversa. Em estudos recentes, o desempenho dos alunos nas provas realizadas após aprenderem a matéria, melhorava em 40% se o conteúdo falasse diretamente ao leitor usando a primeira pessoa, com um estilo ~ ( serviço remoto RMI que simulasse uma conversa em lugar do tom formal. Conte histórias em vez de dar palestras. Use a linguagem coloquial. Evite ser muito sério. Em que você prestaria mais atenção: em uma companhia interessante na festa ou em uma palestra? Faça o aluno refletir. Em outras palavras, nada acontece na sua cabeça a menos que você exercite muito os seus neurônios. O leitor precisa estar motivado, atraído, curioso e inspirado para resolver problemas, tecer conclusões e gerar um novo conhecimento. E para isso você precisa de desafios, exercícios e perguntas que estimulem o raciocínio, além de atividades 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 "eu realmente 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 coisas roam () ; que são extraordinárias, interessantes, estranhas, atraentes e inesperadas. f, / Aprender um assunto novo, difícil e técnico não precisa ser chato. Seu cérebro aprenderá muito mais rápido se o assunto for interessante. c.óM !)WI pMl.fb-rV!i!5Udi, Mexa com a emoção do leitor. Agora nós sabemos que sua capacidade de recordar algo depende enormemente do seu conteúdo emocional. Aquilo que você 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 ou perceber que sabe uma coisa que o "bam-bam-bam" da engenharia não sabe.XXII
  22. 22. introduçãoMetacogniçã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érebroconsidere 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
  23. 23. Use a Cabeça JSPEis O que NÓS fizemos: Ro<:hd~ttltfNó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. W<wd<;::ligners~ Quthere ..•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
  24. 24. introdução Eis O que VOCÊ pode fazer para dominar seu cérebro Então, fizemos a nossa parte. O resto é com você. As dicas a seguir são o ponto 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;«elftI. (). "i!I Pó/r",(1) Vá devagar. Quanto mais você entender, menos terá que memorizar. ® Fale. Em voz alta. Falando, você ativa uma parte diferente do Não leia apenas. Pare e pense. Quando o cérebro. Se você estiver tentando entender livro perguntar algo, não pule para a resposta. algo ou aumentar sua chance de recordar Imagine que alguém esteja realmente lhe mais tarde, leia em voz alta. Melhor ainda, fazendo a pergunta. Quanto mais você forçar o tente explicar isto para outra pessoa em voz seu cérebro a pensar, melhores serão as chaTIces alta. Você aprenderá mais rápido e talvez de aprender e recordar. observe idéias que você não havia percebido que estavam ali enquanto lia.® Faça os exerCÍcios. Faça anotações. suas próprias Q) Ouça seu cérebro. Nós os colocamos no livro, mas se nós Observe se o seu cérebro não está ficando resolvermos, vai parecer que alguém está sobrecarregado. Se você se pegar passando fazendo a ginástica para você. E não basta a mão na superficie do livro ou esquecendo olhar os exercícios. Use um lápis. Está o que acabara de ler, é hora de uma provado que a atividade fisica, enquanto se pausa. Uma vez que você ultrapasse um estuda, pode melhorar o aprendizado. determinado ponto, você não aprenderá mais rápido se tentar "enfiar" mais informação@) Leia a seção "Perguntar não ofende". na cabeça e poderá até comprometer o Ou seja, todas elas. Elas não são barras processo. laterais opcionais. Elas s ão parte do conteúdo principal! Não as pule. ® Sinta algo! Seu cérebro precisa saber que isto é@ Antes de ir dormir, faça desta a sua última importante. Envolva-se com as histórias. Crie suas próprias legendas para as fotos. leitura. Ou pelo menos a última que lhe exija racioCÍnio. Dar um sorriso amarelo quando uma piada não tem graça ainda é melhor do que não Parte do aprendizado (especialmente a esboçar reação. transferência para a memória de longa duração) acontece depois que você fecha o livro. Seu cérebro necessita do seu próprio tempo para maior processamento. Se você ® de acabar o livro. Faça o Teste Preparatório Final só DEPOIS puser uma informação nova durante este Se você fizer o teste muito cedo, você não tempo de processamento, o que você acabou terá uma idéia clara da sua preparação para de aprender será perdido. o exame. Espere até sentir que você está quase pronto e então faça o teste em, no@ Beba água. Muita água. máximo, 135 minutos - o tempo verdadeiro Seu cérebro funcionará melhor se receber doSCWCD. um belo banho. A desidratação (que pode . acontecer bem antes de você sentir sede) reduz a função cognitiva. A cerveja, ou algo mais forte, será bem-vinda quando você passar no exame. você está •• XXV
  25. 25. Use a Cabeça JSPo 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ê vai precisar (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 esquerdo da 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 siga as instruções do assistente de instalação. Para os outros sistemas, descompacte o arquivo de instalação no diretório onde você quer que o Tomcat resida. Para facilitar as instruções do livro, renomeie para "tomcat" o diretó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 e Java 2 Standard Edition 1.5 TOMCAT HOME, da mesma forma como você normalmente Tomcat 5 faz em sua máquina. O exame abrange as Você deve ter uma cópia das especificações, embora não seguintes especificações: precise delas para passar no exame. Até o lançamento deste livro, as especificações eram: • Servlets 2.4 Servlet 2.4 (JSR #154) http://jcp.org/eng/jsr/detail?id=154 JSP 2.0 (JSR #152) http://jcp.org/eng/jsr/detail?id=152 ·JSP 2.0 JSTL 1.1 (JSR #52) http://jcp.org/eng/jsr/detail?id=52 Vá até a página JSR e clique em Download Page para o • JSTL 1.1 lançamento mais recente. Teste o Tomcat rodando o script tomcat/bin/startup (startup. sh para os sistemas Linux/Unix/OSX). Digite na barra de endereços do seu browser: http://localhost:8080/ e você verá a página inicial do Tomcat.XXVI .~ ...
  26. 26. introduçãoCoisas 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. fJS{Ufl6S VI?, fJMI-.Nós usamos diagramas simples e parecidos com UML. f! m~Ji/tllt:M.,lt~ h!4,(~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 e DiretorUML ao mesmo tempo. getMoviesNós não cobrimos todos os detalhes minuciosos da especificação. getOscars ()O exame é muito detalhado, mas, nós também somos. Porém, se getKevinexiste um detalhe na especificação que não é cobrado no exame, só BaconDegrees()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 você está aqui ~ XXVII

×