37
Servlets e JSP Phillipe Lopes [email protected]

Introdução à Servlets e JSP

Embed Size (px)

DESCRIPTION

Slides de introdução à Servlets e JSP .

Citation preview

Page 1: Introdução à Servlets e JSP

Servlets e JSPPhillipe [email protected]

Page 2: Introdução à Servlets e JSP

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

O que faz um servidor web?

Page 4: Introdução à Servlets e JSP

O que um cliente web faz?

Page 5: Introdução à Servlets e JSP

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

HTML é parte da resposta HTTP

Page 7: Introdução à Servlets e JSP

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

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

O que está na requisição?

Page 10: Introdução à Servlets e JSP

O que está na requisição?

Page 11: Introdução à Servlets e JSP

Estrutura de diretórios para um simples web site Apache

Page 12: Introdução à Servlets e JSP

Mão na massa!

Page 13: Introdução à Servlets e JSP

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

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

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

Mão na massa!

Page 17: Introdução à Servlets e JSP

Mão na massa!startup.bat

Page 18: Introdução à Servlets e JSP

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

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

O que é um Container?

Page 21: Introdução à Servlets e JSP

Como o Container manipula uma requisição?

Page 22: Introdução à Servlets e JSP

Como o Container manipula uma requisição?

Page 23: Introdução à Servlets e JSP

Como o Container manipula uma requisição?

Page 24: Introdução à Servlets e JSP
Page 25: Introdução à Servlets e JSP

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

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

Como o Container acha o Servlet?

Page 28: Introdução à Servlets e JSP

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
Page 30: Introdução à Servlets e JSP

Criando o ambiente de desenvolvimento

Page 31: Introdução à Servlets e JSP
Page 32: Introdução à Servlets e JSP

Criando o ambiente de implantação

Page 33: Introdução à Servlets e JSP
Page 34: Introdução à Servlets e JSP

Ciclo de vida de um servlet

Page 35: Introdução à Servlets e JSP

Os três grandes momentos da vida de um servlet

● init()

● service()

● doGet() | doPost()

Page 36: Introdução à Servlets e JSP

Cada requisição roda em uma thread separada

Page 37: Introdução à Servlets e JSP