SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Fundamentos de
Servlets




  www.jetsoftware.com.br
Agenda
 A estrutura básica de servlets
 Um servlet simples que gera um texto
 de resposta
 Um servlet que gera HTML
 Servlets e pacotes
 Utilitários para criação de HTML
 Estratégias para debugar servlets
              www.jetsoftware.com.br
A finalidade de um Servlet
 Ler dados explícitos enviados pelo cliente ( formulário
 de dados )
 Ler dados implícitos enviados pelos clientes (headers
 de request)
 Gerar os resultados
 Enviar os dados explícitos de volta para o cliente
 Enviar os dados implícitos de volta para o cliente (
 códigos de status e headers de response )

                                         O Servlet mora aqui !



                            Request


                             Respo nse


               Browser
                         www.jetsoftware.com.br
Um Servlet que gera um texto
         simples
package br.com.jetsoftware.controller;

import   java.io.*;
import   javax.servlet.*;
import   javax.servlet.http.*;
public   class TextoPlano extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse
    response) throws ServletException, IOException {
       PrintWriter out = response.getWriter();
       out.println(quot;Hello Worldquot;);
     }

    public void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException,
    IOException {
     }
}
                               www.jetsoftware.com.br
Um Servlet que gera HTML
 Informe ao browser que enviaremos uma
 resposta em HTML
   response.setContentType(“text/html”);
 Modifique a declaração println para construir
 uma página HTML bem formada
   A declaração print deve ter como saída tags HTML
 Cheque o HTML gerado com um validador
 formal.
   http://validator.w3.org
   http://www.htmlhelp.com/tools/validator


                  www.jetsoftware.com.br
Um Servlet que gera HTML,
       código
package br.com.jetsoftware.controller;

public class TextoHtml extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse
    response) throws ServletException, IOException {
         response.setContentType(quot;text/htmlquot;);
         PrintWriter out = response.getWriter();
         String docType =
         quot;<!DOCTYPE HTML PUBLIC quot;-//W3C//DTD HTML 4.0 quot;+
         quot;Transitional//ENquot;>nquot;;
         out.println(docType +
         quot;<HTML>nquot; +
         quot;<HEAD><TITLE>Alou</TITLE></HEAD>nquot;+
         quot;<BODY BGCOLOR=quot;#FDF5E6quot;>nquot; +
         quot;<H1>Alou</H1>nquot; +
         quot;</BODY></HTML>quot;);
     }
}                              www.jetsoftware.com.br
Utilitário para geração de
HTML
public class ServletUtilities {

    public static final String DOCTYPE =
     quot;<!DOCTYPE HTML PUBLIC quot;-//W3C//DTD HTML 4.0 quot; + quot;Transitional//ENquot;>quot;;
    public static String headWithTitle(String title) {

     return(DOCTYPE + quot;nquot; + quot;<HTML>nquot; +
             quot;<HEAD><TITLE>quot; + title +
             quot;</TITLE></HEAD>nquot;);
     }
}

      Não vá nesse barco pois é furado !!!!
         Geração dinâmica de HTML é péssimo
         O framework JSP é uma solução muito melhor



                                  www.jetsoftware.com.br
Ciclo de vida do Servlet
 init
        Executado uma única vez quando o servlet é carregado.
 service
        Invocado em uma nova thread pelo servidor para cada requisição.
        Despacha para doGet, doPost, etc.
        NÃO faça override deste método !
 doGet, doPost, doXXX
        Trata GET, POST, etc. para requests
        Faça override destes métodos para ter o comportamento desejado.
 destroy
        Invocado quando o servidor deleta a instãncia do servlet
        Não é invocado depois de cada requisição.




                            www.jetsoftware.com.br
Por que não devemos fazer
override no método service
 O método service faz outras coisas além de
 invocar o doGet
   Podemos adicionar suporte a outros serviços mais
   tarde, adicionando doPut, doTrace, etc.
   Pode-se adicionar suporte para modificações de
   data adicionando o método getLastModified
   O método service nos dá suporte automático a :
      HEAD requests
      OPTIONS requests
      TRACE requests
   Alternativa
      doPost chamando doGet

                   www.jetsoftware.com.br
Debugando Servlets
 Podemos usar declarações println
 Apache Log4J
 O debugger integrado da IDE
   Use debug ao invés de start no servidor




                www.jetsoftware.com.br
Sumário
 O código principal do servlet vai para os métodos
 doGet e doPost:
   O objeto HttpServletRequest contém as informações de
   entrada.
   O objeto httpServletReponse permite-nos enviar
   informações de saída
      Invoque setContentType para especificar o MIME type.
      Invoque getWriter para obter um objeto Writer apontando para
      o cliente (browser)
   Código de setup vai para o init
      O Servlet é inicializado e carregado uma única vez
      O Servlet é invocado várias vezes
      Parâmetros de internacionalização vai no web.xml

                      www.jetsoftware.com.br
Perguntas ?




          www.jetsoftware.com.br

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (20)

VR Thank you letter - Harmelen Crossing
VR Thank you letter - Harmelen CrossingVR Thank you letter - Harmelen Crossing
VR Thank you letter - Harmelen Crossing
 
88 89
88 8988 89
88 89
 
Kars'ta bir yerel tv röportaji
Kars'ta bir yerel tv röportajiKars'ta bir yerel tv röportaji
Kars'ta bir yerel tv röportaji
 
Cristian camilo zapata (1)
Cristian camilo zapata (1)Cristian camilo zapata (1)
Cristian camilo zapata (1)
 
Obama
ObamaObama
Obama
 
Tugasan 1 kbk 3073
Tugasan 1 kbk 3073Tugasan 1 kbk 3073
Tugasan 1 kbk 3073
 
7507339 lowercase
7507339 lowercase7507339 lowercase
7507339 lowercase
 
Rss Gustavo Alfonso Galindo Peña
Rss Gustavo Alfonso Galindo PeñaRss Gustavo Alfonso Galindo Peña
Rss Gustavo Alfonso Galindo Peña
 
Internet Segura
Internet SeguraInternet Segura
Internet Segura
 
Herramientas digitales para la gestion del conocimientos
Herramientas  digitales para la gestion del conocimientosHerramientas  digitales para la gestion del conocimientos
Herramientas digitales para la gestion del conocimientos
 
Дороги города Томск
Дороги города ТомскДороги города Томск
Дороги города Томск
 
Hello
HelloHello
Hello
 
Kisaca dogu ve batı kültürü
Kisaca dogu ve batı kültürüKisaca dogu ve batı kültürü
Kisaca dogu ve batı kültürü
 
Presentación.
Presentación.Presentación.
Presentación.
 
Carlos ramirez embajadasdemexico
Carlos ramirez embajadasdemexicoCarlos ramirez embajadasdemexico
Carlos ramirez embajadasdemexico
 
TDW Reference Letter
TDW Reference LetterTDW Reference Letter
TDW Reference Letter
 
Poly0000
Poly0000Poly0000
Poly0000
 
RSS_BryanBolaños_UNAD_OCT_2015
RSS_BryanBolaños_UNAD_OCT_2015RSS_BryanBolaños_UNAD_OCT_2015
RSS_BryanBolaños_UNAD_OCT_2015
 
La computadora como sistema y su vinculación con el ser humano
La computadora como sistema y su vinculación con el ser humanoLa computadora como sistema y su vinculación con el ser humano
La computadora como sistema y su vinculación con el ser humano
 
T7 types of verbs
T7   types of verbsT7   types of verbs
T7 types of verbs
 

Ähnlich wie 02 - Fundamentos de Servlets

Ähnlich wie 02 - Fundamentos de Servlets (20)

Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
 
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
 
Te servelts
Te serveltsTe servelts
Te servelts
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
servlet-requisicoes
servlet-requisicoesservlet-requisicoes
servlet-requisicoes
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Curso de Servlets
Curso de ServletsCurso de Servlets
Curso de Servlets
 
servlet-respostas
servlet-respostasservlet-respostas
servlet-respostas
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
Servlets
ServletsServlets
Servlets
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
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
 
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - Resumo
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Trabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiTrabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial Ii
 
ASP.NET MVC Mini Curso
ASP.NET MVC Mini CursoASP.NET MVC Mini Curso
ASP.NET MVC Mini Curso
 
Daw slide 06
Daw slide 06Daw slide 06
Daw slide 06
 

02 - Fundamentos de Servlets

  • 1. Fundamentos de Servlets www.jetsoftware.com.br
  • 2. Agenda A estrutura básica de servlets Um servlet simples que gera um texto de resposta Um servlet que gera HTML Servlets e pacotes Utilitários para criação de HTML Estratégias para debugar servlets www.jetsoftware.com.br
  • 3. A finalidade de um Servlet Ler dados explícitos enviados pelo cliente ( formulário de dados ) Ler dados implícitos enviados pelos clientes (headers de request) Gerar os resultados Enviar os dados explícitos de volta para o cliente Enviar os dados implícitos de volta para o cliente ( códigos de status e headers de response ) O Servlet mora aqui ! Request Respo nse Browser www.jetsoftware.com.br
  • 4. Um Servlet que gera um texto simples package br.com.jetsoftware.controller; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class TextoPlano extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println(quot;Hello Worldquot;); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } www.jetsoftware.com.br
  • 5. Um Servlet que gera HTML Informe ao browser que enviaremos uma resposta em HTML response.setContentType(“text/html”); Modifique a declaração println para construir uma página HTML bem formada A declaração print deve ter como saída tags HTML Cheque o HTML gerado com um validador formal. http://validator.w3.org http://www.htmlhelp.com/tools/validator www.jetsoftware.com.br
  • 6. Um Servlet que gera HTML, código package br.com.jetsoftware.controller; public class TextoHtml extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(quot;text/htmlquot;); PrintWriter out = response.getWriter(); String docType = quot;<!DOCTYPE HTML PUBLIC quot;-//W3C//DTD HTML 4.0 quot;+ quot;Transitional//ENquot;>nquot;; out.println(docType + quot;<HTML>nquot; + quot;<HEAD><TITLE>Alou</TITLE></HEAD>nquot;+ quot;<BODY BGCOLOR=quot;#FDF5E6quot;>nquot; + quot;<H1>Alou</H1>nquot; + quot;</BODY></HTML>quot;); } } www.jetsoftware.com.br
  • 7. Utilitário para geração de HTML public class ServletUtilities { public static final String DOCTYPE = quot;<!DOCTYPE HTML PUBLIC quot;-//W3C//DTD HTML 4.0 quot; + quot;Transitional//ENquot;>quot;; public static String headWithTitle(String title) { return(DOCTYPE + quot;nquot; + quot;<HTML>nquot; + quot;<HEAD><TITLE>quot; + title + quot;</TITLE></HEAD>nquot;); } } Não vá nesse barco pois é furado !!!! Geração dinâmica de HTML é péssimo O framework JSP é uma solução muito melhor www.jetsoftware.com.br
  • 8. Ciclo de vida do Servlet init Executado uma única vez quando o servlet é carregado. service Invocado em uma nova thread pelo servidor para cada requisição. Despacha para doGet, doPost, etc. NÃO faça override deste método ! doGet, doPost, doXXX Trata GET, POST, etc. para requests Faça override destes métodos para ter o comportamento desejado. destroy Invocado quando o servidor deleta a instãncia do servlet Não é invocado depois de cada requisição. www.jetsoftware.com.br
  • 9. Por que não devemos fazer override no método service O método service faz outras coisas além de invocar o doGet Podemos adicionar suporte a outros serviços mais tarde, adicionando doPut, doTrace, etc. Pode-se adicionar suporte para modificações de data adicionando o método getLastModified O método service nos dá suporte automático a : HEAD requests OPTIONS requests TRACE requests Alternativa doPost chamando doGet www.jetsoftware.com.br
  • 10. Debugando Servlets Podemos usar declarações println Apache Log4J O debugger integrado da IDE Use debug ao invés de start no servidor www.jetsoftware.com.br
  • 11. Sumário O código principal do servlet vai para os métodos doGet e doPost: O objeto HttpServletRequest contém as informações de entrada. O objeto httpServletReponse permite-nos enviar informações de saída Invoque setContentType para especificar o MIME type. Invoque getWriter para obter um objeto Writer apontando para o cliente (browser) Código de setup vai para o init O Servlet é inicializado e carregado uma única vez O Servlet é invocado várias vezes Parâmetros de internacionalização vai no web.xml www.jetsoftware.com.br
  • 12. Perguntas ? www.jetsoftware.com.br