Use a cabeça!:

por BASHAM, Bryan; SIERRA, Kathy; BATES, Bert
[ Livros ]
Autores adicionais: SIERRA, Kathy ; Autora | BATES, Bert ; Autor
Motivo da edição:2. ed. Publicado por : Alta Books, (Rio de Janeiro:) Detalhes físicos: 879 p. ISBN:9788576082941. Ano: 2008 Tipo de Material: Livros
Tags desta biblioteca: Sem tags desta biblioteca para este título. Faça o login para adicionar tags.
Localização atual Classificação Exemplar Situação Previsão de devolução Código de barras Reservas do item
006.76 B297u (Percorrer estante) 1 Disponível 2019-0039
Total de reservas: 0

Por que usar servlets & JSPs?
1 As aplicações web estio 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 site na web, para a aplicação na web.

Objetivos do Exame
O que os servidores web e os clientes fazem e como conversam entre si
Guia rápido de HTML
O que é o protocolo HTTP?
A anatomia das solicitações HTTP GET e POST e das respostas HTTP
Localizando páginas web usando URLs
Servidores web, páginas estáticas e CGI
Desmistificando os Servlets: escreva, distribua e rode um servlet
JSP foi o que aconteceu quando alguém apresentou o Java ao HTML

Arquitetura da aplicação web
2 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.
Alguém tem que chamar ou o método doPost() ou o método doGet() 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.

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"
Como o J2EE cabe nisso tudo

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 serviet, um modelo (classe Java simples), um deploymcnt descriptor XML e urna 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 serviet e do iSP, 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.

Objetivos do Exame
Vamos construir uma aplicação MVC: primeiro o design
Criando os ambientes de desenvolvimento e distribuição
Criando e testando o HTML para o formulário inicial
Criando o Deployment Descriptor (DD)
Criando, compilando, distribuindo e testando o serviet de controle
Design, criação e teste do componente modelo
Otimizando o controlador para chamar o modelo
Criando e distribuindo o componente view; (isto é um JSP)
Otimizando o servlet de controle para chamar o JSP

Sendo um serviet
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á-los e utilizálos. E ele tem
que saber como enviar uma resposta. Ou não...

Objetivos do Exame
Os Servlets são controlados pelo Container
Cada solicitação roda em uma thread separada!
A verdadeira função do servlet no tratamento das solicitações
A história da solicitação não-idempotente
O que determina se você recebeu uma solicitação GET ou POST?
Enviando e usando parâmetro(s)
Então, essa foi a Solicitação.., vejamos agora a Resposta
Você pode configurar headers de resposta, você pode adicionar headers de resposta
Redirecionamento de servlets faz o browser trabalhar
Revisão: HttpServletResponse


Sendo uma aplicação web
5 Nenhum serviet 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
Os Parâmetros lnit dão uma força
Como um JSP consegue obter os parâmetros init do serviet?
Os parâmetros init do contexto dão uma força
Comparando o ServletConfig com o ServletContext
Ela quer um ServletContextListener
Tutorial: escreva um ServletContextListener simples
Compile, distribua e teste o seu listener
A história completa, uma análise do ServletContextListener
Listeners: eles não servem apenas para os eventos de contextos
O que é exatamente um atributo?
A API Atributo
O escopo de contexto não é thread-safe!
Como tornamos os atributos do contexto thread-safe?
Testando a Sincronização
Os atributos de Sessão são thread-safe?
Os males do SingleThreadModel
Apenas os atributos da Solicitação e as variáveis locais são thread-safe!
Atributos da Solicitação e request dispatching


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
Esperamos que seja uma conversa (como as sessões funcionam)
lDs 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

Sendo um JSP
7 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 faz 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
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 JSP
Já que estamos falando sobre isso... as três diretivas
Scriptlets considerados perigosos? Eis a EL
Mas, espere... ainda não vimos as ações

Páginas sem scripts
8 Fuja do scripting. Será que seus wehdesigners precisam mesmo saber Java? Será que eles pensam que quem programa Java para servidores tornar-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 é nais 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
Quando os atributos são beans
Ações-padrão: useBean, getProperty, setPropertv
Você sabe fazer referências polimórficas para beans?
O atributo param dá uma ajuda
Convertendo propriedades
A Expression Language (EL) salva o dia!
Usando o operador ponto (.) para acessar propriedades e mapear valores
O [e catch] da a você mais opções (Lists arrays )
Mais detalhes dos operadores ponto e [J
Os objetos implícitos da EL
Funções EL e tratando o nu1l"
Os pedaços reutilizáveis do template - dois tipos de "include"
A ação-padrão jsp:forward>
Ela não conhece as tags JSTL (uma visão rápida)
Revisando as ações-padrão e o iriclude

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 ioop 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 custo,ni:adas. 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
Fazendo loops sem scripts; <c:forEach>
Controle condicional com o <c:if e o <c:choose>
Usando as tags <c:set> e <c:rernove>
Com a <c:import>, há três maneiras de incluir conteúdo
Customizando o que você inclui
Fazendo o mesmo com <c:param>
A <c:url> para todas as suas necessidades de hyperlink
Crie suas próprias páginas de erro
A tag <c:catch>. Semelhante a try/catch... mais ou menos
E se você precisar de uma tag que NÃO esteja na JSTL?
Preste atenção ao <rtexprvalue>
O que pode existir no corpo de uma tag
O tag handier, o TLD e o JSP
A taglib <uri> é apenas um nome, não um local
Quando um JSP usa mais de urna biblioteca de tags

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 handier. Mas há três maneiras diferentes de se criar os seus próprios tag handiers, 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
Tag Files: iguais ao include, só que melhores
Onde o Container procura por Tag Files
Tag handlers simples
Uma tag Simples com um corpo
E se o corpo da tag usar uma expressão?
Você ainda precisa saber sobre os tag
handlers Clássicos
Um tag handler Clássico bem pequeno
O ciclo de vida Clássico depende dos valores retomados
A interationTag lhe permite repetir o corpo
Valores-padrão retomados pela TagSupport
A interface DynamicAttribute
Com BodyTag, você tem dois novos métodos
E se você tiver tags que funcionam conjuntamente?
Usando a API PageContext para tag handlers

Distribuindo sua aplicação web
11 Finalmente, sua aplicação está pronta para o horário nobre. As suas páginas 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
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

Mantenha em segredo, mantenha seguro
12 Sua aplicação web está em perigo. 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?

Objetivo do Exame
O Top 4 em segurança de servlets
Como Autenticar no Mundo HTTP
As Dez Melhores Razões para realizar a sua segurança declarativamente
Quem implementa a segurança em uma aplicação web?
Autorização: funções e restrições
Autenticação: quatro sabores
Os QUATRO tipos de autenticação
Protegendo a segurança dos dados em trânsito: HTTPS em ação
Como implementar confidencialidade e integridade de dados caso a caso e declarativamente

O poder dos filtros
13 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 3 nem percebe o que aconteceu. Ele nunca ficará sabendo que alguém intercedeu entre a solicitação do cliente e a invocação do método servisse 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 servlets. Adicionar tracking das solicitações do usuário a todos os servlets da sua aplicação? Sem problema. Manipular o output de cada serviel da sua aplicação? Sem problema. E você não precisa nem sequer tocar no código do servlet.

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
Os wrappers são demais
O código do verdadeiro filtro de compressão
Código do wrapper de compressão

Padrões de Design Enterprise
14 Alguém já fez isso antes. Se estiver começando agora a desenvover 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 Controiler 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
O poder do hardware e do software por trás dos padrões
Revisão dos princípios do design de software...
Padrões para dar suporte a componentes de modelos remotos
Visão geral da JNDI e da RMI
O Business Delegate é um "intermediário"
Simplifique os seus Business Delegates com o Service Locator
Hora de usar um Transfer Object?
Nosso primeiro padrão revisitado... MVC
Sim! É o Struts (e o Front Controller), em poucas palavras
Refatorando a aplicação Beer para o Struts
Revisão sobre padrões

Pausa Para o café
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
Respostas
Índice



Não há comentários para este material.

Acesse sua conta para postar um comentário.

Clique em uma imagem para visualizá-la no visualizador de imagem

    Biblioteca Agamenon Magalhães|(61) 3221-8416| biblioteca@cade.gov.br| Setor de Edifícios de Utilidade Pública Norte – SEPN, Entrequadra 515, Conjunto D, Lote 4, Edifício Carlos Taurisano, térreo