SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Servlets e JSP
Phillipe Lopes
phillipe.alcantara.fonseca@gmail.com
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 :)
O que faz um servidor web?
O que um cliente web faz?
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;
HTML é parte da resposta HTTP
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;
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;
O que está na requisição?
O que está na requisição?
Estrutura de diretórios para um simples
web site Apache
Mão na massa!
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>
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>");
}
}
Mão na massa!
%javac -classpath /your path/tomcat/common/lib/
servlet-api.jar -d classes src/Ch1Servlet.java
Mão na massa!
Mão na massa!
startup.bat
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;
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()).
O que é um Container?
Como o Container manipula
uma requisição?
Como o Container manipula
uma requisição?
Como o Container manipula
uma requisição?
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?
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.
Como o Container acha o
Servlet?
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.
Criando o ambiente de
desenvolvimento
Criando o ambiente de
implantação
Ciclo de vida de um servlet
Os três grandes momentos
da vida de um servlet
● init()
● service()
● doGet() | doPost()
Cada requisição roda em
uma thread separada
Introdução à Servlets e JSP

Mais conteúdo relacionado

Mais procurados

Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
Eduardo Mendes
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuração
Eduardo Mendes
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
Eduardo Mendes
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
GuilhermePetrosky
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
Eduardo Mendes
 
Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2
Eduardo Mendes
 

Mais procurados (20)

Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Aula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageAula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server Page
 
jsp-intro
jsp-introjsp-intro
jsp-intro
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuração
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
 
WebService Restful em Java
WebService Restful em JavaWebService Restful em Java
WebService Restful em Java
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
REST Web Services com Java
REST Web Services com JavaREST Web Services com Java
REST Web Services com Java
 
Apres s3
Apres s3 Apres s3
Apres s3
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2
 

Semelhante a Introdução à Servlets e JSP

Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
Alexandre Antunes
 

Semelhante a Introdução à Servlets e JSP (20)

Aplicações web parte 2
Aplicações web parte 2Aplicações web parte 2
Aplicações web parte 2
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Web service
Web serviceWeb service
Web service
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Construindo um sistema distribuido usando rest
Construindo um sistema distribuido usando restConstruindo um sistema distribuido usando rest
Construindo um sistema distribuido usando rest
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Palestra
PalestraPalestra
Palestra
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
 
Webservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPWebservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHP
 
A Linguagem Php
A Linguagem PhpA Linguagem Php
A Linguagem Php
 
Boas práticas com Web Services
Boas práticas com Web ServicesBoas práticas com Web Services
Boas práticas com Web Services
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
 
Aplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPAAplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPA
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 

Mais de ledsifes

Mais de ledsifes (8)

Sincap um exemplo prático de colaboração entre Academia e Sociedade
Sincap um exemplo prático de colaboração entre Academia e SociedadeSincap um exemplo prático de colaboração entre Academia e Sociedade
Sincap um exemplo prático de colaboração entre Academia e Sociedade
 
Spring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutosSpring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutos
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSS
 
Leds zeppellin infraestrutura de apoio ao desenvolvimento
Leds zeppellin   infraestrutura de apoio ao desenvolvimentoLeds zeppellin   infraestrutura de apoio ao desenvolvimento
Leds zeppellin infraestrutura de apoio ao desenvolvimento
 
Introdução à SQL Injection
Introdução à SQL InjectionIntrodução à SQL Injection
Introdução à SQL Injection
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Introdução a Python e Django
Introdução a Python e DjangoIntrodução a Python e Django
Introdução a Python e Django
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Último (6)

Apresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdfApresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdf
 
Certificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdfCertificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdf
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdfConcurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 

Introdução à Servlets e JSP

  • 1. Servlets e JSP Phillipe Lopes phillipe.alcantara.fonseca@gmail.com
  • 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 :)
  • 3. O que faz um servidor web?
  • 4. O que um cliente web faz?
  • 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;
  • 6. HTML é parte da resposta HTTP
  • 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;
  • 9. O que está na requisição?
  • 10. O que está na requisição?
  • 11. Estrutura de diretórios para um simples web site Apache
  • 13. 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>
  • 14. 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>"); } }
  • 15. Mão na massa! %javac -classpath /your path/tomcat/common/lib/ servlet-api.jar -d classes src/Ch1Servlet.java
  • 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()).
  • 20. O que é um Container?
  • 21. Como o Container manipula uma requisição?
  • 22. Como o Container manipula uma requisição?
  • 23. Como o Container manipula uma requisição?
  • 24.
  • 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.
  • 27. Como o Container acha o 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.
  • 29.
  • 30. Criando o ambiente de desenvolvimento
  • 31.
  • 32. Criando o ambiente de implantação
  • 33.
  • 34. Ciclo de vida de um servlet
  • 35. Os três grandes momentos da vida de um servlet ● init() ● service() ● doGet() | doPost()
  • 36. Cada requisição roda em uma thread separada