Introdução à Servlets e JSP
-
Upload
ledsifes -
Category
Technology
-
view
388 -
download
1
description
Transcript of Introdução à Servlets e JSP
![Page 1: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/1.jpg)
Servlets e JSPPhillipe [email protected]
![Page 2: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/2.jpg)
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 :)
![Page 3: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/3.jpg)
O que faz um servidor web?
![Page 4: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/4.jpg)
O que um cliente web faz?
![Page 5: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/5.jpg)
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;
![Page 6: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/6.jpg)
HTML é parte da resposta HTTP
![Page 7: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/7.jpg)
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;
![Page 8: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/8.jpg)
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;
![Page 9: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/9.jpg)
O que está na requisição?
![Page 10: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/10.jpg)
O que está na requisição?
![Page 11: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/11.jpg)
Estrutura de diretórios para um simples web site Apache
![Page 12: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/12.jpg)
Mão na massa!
![Page 13: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/13.jpg)
Mão na massa!<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>Chapter1 Servlet</servlet-name>
<servlet-class>Ch1Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Chapter1 Servlet</servlet-name>
<url-pattern>/Serv1</url-pattern>
</servlet-mapping>
</web-app>
![Page 14: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/14.jpg)
Mão na massa!import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Ch1Servlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter();
java.util.Date today = new java.util.Date();
out.println("<html> " +
"<body>" +
"<h1 align=center>HF\'s Chapter1 Servlet</h1>"
+ "<br>" + today + "</body>" + "</html>");
}
}
![Page 15: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/15.jpg)
Mão na massa!%javac -classpath /your path/tomcat/common/lib/
servlet-api.jar -d classes src/Ch1Servlet.java
![Page 16: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/16.jpg)
Mão na massa!
![Page 17: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/17.jpg)
Mão na massa!startup.bat
![Page 18: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/18.jpg)
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;
![Page 19: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/19.jpg)
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()).
![Page 20: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/20.jpg)
O que é um Container?
![Page 21: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/21.jpg)
Como o Container manipula uma requisição?
![Page 22: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/22.jpg)
Como o Container manipula uma requisição?
![Page 23: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/23.jpg)
Como o Container manipula uma requisição?
![Page 24: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/24.jpg)
![Page 25: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/25.jpg)
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?
![Page 26: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/26.jpg)
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.
![Page 27: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/27.jpg)
Como o Container acha o Servlet?
![Page 28: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/28.jpg)
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.
![Page 29: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/29.jpg)
![Page 30: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/30.jpg)
Criando o ambiente de desenvolvimento
![Page 31: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/31.jpg)
![Page 32: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/32.jpg)
Criando o ambiente de implantação
![Page 33: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/33.jpg)
![Page 34: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/34.jpg)
Ciclo de vida de um servlet
![Page 35: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/35.jpg)
Os três grandes momentos da vida de um servlet
● init()
● service()
● doGet() | doPost()
![Page 36: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/36.jpg)
Cada requisição roda em uma thread separada
![Page 37: Introdução à Servlets e JSP](https://reader033.fdocumentos.tips/reader033/viewer/2022052316/558bec3bd8b42ac9158b470a/html5/thumbnails/37.jpg)