Este documento discute Servlets e JSPs, incluindo por que usá-los, o que fazem clientes e servidores web, e como eles se comunicam usando HTML e HTTP. Também explica como containers mapeiam requisições para servlets usando um deployment descriptor.
2. Porquê usar Servlets e JSPs?
● Você não precisa se preocupar com a distribuição;
● Seus usuários precisam apenas de um browser;
● Te permite a criação de aplicações poderosas;
● Estão na moda :)
5. Clientes e servidores conhecem HTML e
HTTP
●
HTML
●
○ HyperText Markup Language;
○ Todos os browsers sabem o que fazer com HTML;
HTTP
○
○
○
HyperText Transfer Protocol;
A maioria das conversações que acontecem entre servidores e
clientes usam o protocolo HTTP;
Permite simples conversas de requisições e respostas;
7. O que está na requisição
●
Temos vários tipos de requisições: HEAD, TRACE, PUT, DELETE,
OPTIONS, CONNECT, GET e POST;
●
Mas dois são principais: GET e POST;
●
GET
○
○
●
É o método HTTP mais simples;
Seu papel principal é pedir ao servidor para pegar um recurso e
enviá-lo de volta para quem pediu;
POST
○
○
É como se fosse um GET++;
Você pode enviar dados de um formulário e ao mesmo tempo solicitar
algo do servidor;
8. O que está na requisição?
●
Você pode enviar dados por GET;
●
Esses dados são anexados à URL;
●
Não é bom que se envie dados sensíveis por GET; (senhas)
●
Quantidade de caracteres é limitada;
●
Se for usado POST ao invés de GET em determinada página, esta página
não poderá ser marcada como favorito, por exemplo;
18. Arquitetura de um App Web
●
Alguém tem que manipular as requisições, chamar os métodos doGet()
doPost() e instanciar seus argumentos: objetos HTTP response e HTTP
request;
●
Alguém tem que gerenciar a vida de um Servlet;
●
Os Containers fazem este papel;
19. O que é um Container?
●
Tomcat é um exemplo de Container. Quando seu servidor web (como o
Apache) recebe uma requisição para um servlet, o servidor envia a
requisição não para o servlet, mas para o Container no qual o servlet é
implantado (deployed). É o Container que dá ao servlet a requisição e
resposta HTTP, e é o Container que chama os métodos do servlet (como
o doPost() e o doGet()).
25. Como o Container acha o
Servlet?
●
Colocando o caminho exato da classe dentro do HTML?
●
Usando uma ferramenta do distribuidor do Container?
●
Usando algum tipo de tabela de propriedades para guardar os
mapeamentos?
26. Como o Container acha o
Servlet?
●
Um servlet pode ter até três nomes!
○
Nome de caminho de arquivo. Ex.: classes/registration/SignUpServlet.
class
○
Nome de implantação (deployment name). É um nome interno secreto
que não precisa ser o mesmo que o nome da classe e nem o nome
do arquivo.
○
Nome de URL pública. É o nome que o cliente conhece, em outras
palavras, é o nome codificado dentro do HTML que quando o cliente
clica é direcionado para este servlet.
28. Usando o Deployment
Descriptor
●
Quando você implanta seu servlet dentro de um web Container, você cria
um XML muito simples chamado Deployment Descriptor que diz ao
Container como rodar seus servlets e JSPs.
●
O Deployment Descriptor também é usado para mapear URLs para
servlets.