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
 Servl...
A finalidade de um Servlet
 Ler dados explícitos enviados pelo cliente ( formulário
 de dados )
 Ler dados implícitos envi...
Um Servlet que gera um texto
         simples
package br.com.jetsoftware.controller;

import   java.io.*;
import   javax.s...
Um Servlet que gera HTML
 Informe ao browser que enviaremos uma
 resposta em HTML
   response.setContentType(“text/html”);...
Um Servlet que gera HTML,
       código
package br.com.jetsoftware.controller;

public class TextoHtml extends HttpServlet...
Utilitário para geração de
HTML
public class ServletUtilities {

    public static final String DOCTYPE =
     quot;<!DOCT...
Ciclo de vida do Servlet
 init
        Executado uma única vez quando o servlet é carregado.
 service
        Invocado em ...
Por que não devemos fazer
override no método service
 O método service faz outras coisas além de
 invocar o doGet
   Podem...
Debugando Servlets
 Podemos usar declarações println
 Apache Log4J
 O debugger integrado da IDE
   Use debug ao invés de s...
Sumário
 O código principal do servlet vai para os métodos
 doGet e doPost:
   O objeto HttpServletRequest contém as infor...
Perguntas ?




          www.jetsoftware.com.br
Próximos SlideShares
Carregando em…5
×

02 - Fundamentos de Servlets

1.987 visualizações

Publicada em

Apostila sobre os fundamentos do desenvolvimento Web com Java e Servlets.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.987
No SlideShare
0
A partir de incorporações
0
Número de incorporações
19
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

02 - Fundamentos de Servlets

  1. 1. Fundamentos de Servlets www.jetsoftware.com.br
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12. Perguntas ? www.jetsoftware.com.br

×