1
CENTRO FEDERAL DE EDUCAÇÃO
    TECNOLOGICA DO RN

             AULA

             4
        Classe
   javax.servlet.http.
      HttpServlet

   Prof. Alessandro J. de Souza
2

API de Servlets


  javax.servlet         <<interface>>       <<interface>>        <<interface>>
                        ServletContext         Servlet            ServletConfig




                        <<interface>>                          <<interface>>
                        ServletRequest                        ServletResponse

                                            GenericServlet
  javax.servlet.http




                                             HttpServlet



                         <<interface>>                          <<interface>>
                       HttpServletRequest                    HttpServletResponse




                         HttpSession           Cookie
3

Classe HttpServlet

 Estende a classe GenericServlet
 Acrescenta uma série de métodos para ser
  usado, tipo:
   doGet
   doPost
   doDelete
   doOption
   doTrave
   doPut
4

Diagrama




           5: resposta da requisição
5

doGet e doPost

 doPost: usando quando Browser envia uma
  solicitação HTTP usando o método POST.
       <FORM ACTION= “/RegistroServlet” METODO= “post” >
             <INPUT TYPE= text NAME= “nome”>
             <INPUT TYPE= text NAME= “sobrenome”>
             <INPUT TYPE= submit >
       </FORM>

     Obs: também é possível usar o método GET através de um form



 doGet: usado quando o Browser envia uma
  solicitação HTTP usando o método GET.

http://maquina/myApp/RegistroServlet?nome=Antonio&sobrenome=carlos
6

Código do Servlet
import   ...
public class RegistroServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
      HttpServletResponse response)
      throws ServletException, IOException {
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
      out.println("<HTML>");
      out.println("<HEAD>");
      out.println("<TITLE>Testando o Método GET</TITLE>");
      out.println("</HEAD>");
      out.println("<BODY>");
      out.println(“O servlet recebeu uma requisição GET. " +
       “Agora, click no botão abaixo.");
      out.println("<BR>");
      out.println("<FORM METHOD=POST>");
      out.println("<INPUT TYPE=SUBMIT VALUE=Submit >");
      out.println("</FORM>");
      out.println("</BODY>");
      out.println("</HTML>");


  }                                                            Continuação ->
7

Código do Servlet
Continuação ...


 public void doPost(
        HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<HTML>");
        out.println("<HEAD>");
        out.println("<TITLE> Testando o Método POST </TITLE>");
        out.println("</HEAD>");
        out.println("<BODY>");
        out.println(“O servlet recebeu uma requisição POST.");
        out.println("</BODY>");
        out.println("</HTML>");
    }
}
8
Deployment Descriptor (web.xml)

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!DOCTYPE web-app
   PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
   "http://java.sun.com/dtd/web-app_2_3.dtd">


 <web-app>
   <servlet>
         <servlet-name> Registro </servlet-name>
         <servlet-class> RegistroServlet </servlet-class>
   </servlet>
   <servlet-mapping>
         <servlet-name> Registro </servlet-name>
         <url-pattern> /meuRegistro </url-pattern>
   </servlet-mapping>
 </web-app>
9

Revisão de HTML

 Formulários HTML
     O bloco <FORM> define a URL que receberá o formulário
      e o método a ser usado.

 <FORM ACTION="URL para onde serão enviado os dados"
 METHOD="método HTTP (pode ser GET ou POST)">
    .......... Elementos do Bloco ...........
 </FORM>



 Exemplo

        <FORM ACTION="/exemplo.html">
           <INPUT TYPE="submit“>
        </FORM>
10

Formulários HTML

 Os elementos <INPUT> possuem os
  seguintes atributo TYPE:
   Submit :Envio do formulário
   Reset    :Reinicialização do formulário
   Button :Evento programado por JavaScript (Button)


 Exemplos:
      Ok     < input type=“button” value=“Ok”>

    Enviar   < input type=“submit” value=“Enviar”>

    Limpar   < input type=“reset” value=“limpar”>
11

Formulários HTML

 Elementos <INPUT> com TYPE="text"
  podem ser usados para entrada de texto.
    þÿ           < input type=“text” name=“campo1”>

    þÿ           < input type=“text” name=“campo1” size=10>

    þÿtexto      < input type=“text” name=“campo1” value=“texto”>



 Elementos <INPUT> com
  TYPE="password" o texto digitado é
  ocultado na tela do browser.
   þÿtttt       < input type=“password” name=“senha” maxlength=4>




 Elementos <INPUT> com TYPE=“hidden"
  possiblita ocultar os campos do formulário na
        < input type=“hidden” name=“opcao” value=“salvar”>
  tela do browser.
12

Chaves booleanas

 Elementos <INPUT> com TYPE=“checkbox”
     permitem mais de uma seleção

    ASP <input type=“checkbox” name=“linguagens” value=“ASP”> ASP
    JAV
$       <input type=“checkbox” name=“linguagens” value=“JAVA” checked> JAVA
    A
    PH
$       <input type=“checkbox” name=“linguagens” value=“PHP” checked> PHP
    P



 Elementos <INPUT> com TYPE=“radio” com o
  mesmo nome, formam um grupo e apenas uma
  seleção é aceita
    AS
q       <input type=“radio” name=“linguagens” value=“PHP”> PHP
    P
    JAV
q       <input type=“radio” name=“linguagens” value=“JAVA” checked> JAVA
    A
    PH
q       <input type=“radio” name=“linguagens” value=“PHP” > PHP
    P
13

Área para entrada de texto

 Elemento <TEXTAREA> possibilita a entrada de texto
  de múltiplas linhas.

                     < textarea rows=3 cols=20>
  þÿTexto Inicial        Texto Inicial
                     </textarea>
14

Menus de seleção

 Consistem de um par de elementos tipo:
    <SELECT > define o nome da coleção
    <OPTION > define o valor que será enviado

                <select name="linguagem">
                    <option value="APS">ASP</option>
                    <option value="JAVA">JAVA</option>
                    <option value="PHP">PHP</option>
                </select>


              <select name="linguagem" size="3" multiple>
                  <option value="APS">ASP</option>
                  <option value="JAVA">JAVA</option>
                  <option value="PHP">PHP</option>
              </select>
15

Exércicio

Tarefa de Sala de aula
       Monte a aplicação exemplo da aula


Tarefa extra-classe
   1.   Faça um servlet que escreva uma pagina HTML com um
        formulário contendo cada tipo de elemento visto na aula
        de hoje.

Http Servlet

  • 1.
    1 CENTRO FEDERAL DEEDUCAÇÃO TECNOLOGICA DO RN AULA 4 Classe javax.servlet.http. HttpServlet Prof. Alessandro J. de Souza
  • 2.
    2 API de Servlets javax.servlet <<interface>> <<interface>> <<interface>> ServletContext Servlet ServletConfig <<interface>> <<interface>> ServletRequest ServletResponse GenericServlet javax.servlet.http HttpServlet <<interface>> <<interface>> HttpServletRequest HttpServletResponse HttpSession Cookie
  • 3.
    3 Classe HttpServlet  Estendea classe GenericServlet  Acrescenta uma série de métodos para ser usado, tipo:  doGet  doPost  doDelete  doOption  doTrave  doPut
  • 4.
    4 Diagrama 5: resposta da requisição
  • 5.
    5 doGet e doPost doPost: usando quando Browser envia uma solicitação HTTP usando o método POST. <FORM ACTION= “/RegistroServlet” METODO= “post” > <INPUT TYPE= text NAME= “nome”> <INPUT TYPE= text NAME= “sobrenome”> <INPUT TYPE= submit > </FORM>  Obs: também é possível usar o método GET através de um form  doGet: usado quando o Browser envia uma solicitação HTTP usando o método GET. http://maquina/myApp/RegistroServlet?nome=Antonio&sobrenome=carlos
  • 6.
    6 Código do Servlet import ... public class RegistroServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>Testando o Método GET</TITLE>"); out.println("</HEAD>"); out.println("<BODY>"); out.println(“O servlet recebeu uma requisição GET. " + “Agora, click no botão abaixo."); out.println("<BR>"); out.println("<FORM METHOD=POST>"); out.println("<INPUT TYPE=SUBMIT VALUE=Submit >"); out.println("</FORM>"); out.println("</BODY>"); out.println("</HTML>"); } Continuação ->
  • 7.
    7 Código do Servlet Continuação... public void doPost( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE> Testando o Método POST </TITLE>"); out.println("</HEAD>"); out.println("<BODY>"); out.println(“O servlet recebeu uma requisição POST."); out.println("</BODY>"); out.println("</HTML>"); } }
  • 8.
    8 Deployment Descriptor (web.xml) <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name> Registro </servlet-name> <servlet-class> RegistroServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> Registro </servlet-name> <url-pattern> /meuRegistro </url-pattern> </servlet-mapping> </web-app>
  • 9.
    9 Revisão de HTML Formulários HTML  O bloco <FORM> define a URL que receberá o formulário e o método a ser usado. <FORM ACTION="URL para onde serão enviado os dados" METHOD="método HTTP (pode ser GET ou POST)"> .......... Elementos do Bloco ........... </FORM>  Exemplo <FORM ACTION="/exemplo.html"> <INPUT TYPE="submit“> </FORM>
  • 10.
    10 Formulários HTML  Oselementos <INPUT> possuem os seguintes atributo TYPE:  Submit :Envio do formulário  Reset :Reinicialização do formulário  Button :Evento programado por JavaScript (Button)  Exemplos: Ok < input type=“button” value=“Ok”> Enviar < input type=“submit” value=“Enviar”> Limpar < input type=“reset” value=“limpar”>
  • 11.
    11 Formulários HTML  Elementos<INPUT> com TYPE="text" podem ser usados para entrada de texto. þÿ < input type=“text” name=“campo1”> þÿ < input type=“text” name=“campo1” size=10> þÿtexto < input type=“text” name=“campo1” value=“texto”>  Elementos <INPUT> com TYPE="password" o texto digitado é ocultado na tela do browser. þÿtttt < input type=“password” name=“senha” maxlength=4>  Elementos <INPUT> com TYPE=“hidden" possiblita ocultar os campos do formulário na < input type=“hidden” name=“opcao” value=“salvar”> tela do browser.
  • 12.
    12 Chaves booleanas  Elementos<INPUT> com TYPE=“checkbox” permitem mais de uma seleção ASP <input type=“checkbox” name=“linguagens” value=“ASP”> ASP JAV $ <input type=“checkbox” name=“linguagens” value=“JAVA” checked> JAVA A PH $ <input type=“checkbox” name=“linguagens” value=“PHP” checked> PHP P  Elementos <INPUT> com TYPE=“radio” com o mesmo nome, formam um grupo e apenas uma seleção é aceita AS q <input type=“radio” name=“linguagens” value=“PHP”> PHP P JAV q <input type=“radio” name=“linguagens” value=“JAVA” checked> JAVA A PH q <input type=“radio” name=“linguagens” value=“PHP” > PHP P
  • 13.
    13 Área para entradade texto  Elemento <TEXTAREA> possibilita a entrada de texto de múltiplas linhas. < textarea rows=3 cols=20> þÿTexto Inicial Texto Inicial </textarea>
  • 14.
    14 Menus de seleção Consistem de um par de elementos tipo:  <SELECT > define o nome da coleção  <OPTION > define o valor que será enviado <select name="linguagem"> <option value="APS">ASP</option> <option value="JAVA">JAVA</option> <option value="PHP">PHP</option> </select> <select name="linguagem" size="3" multiple> <option value="APS">ASP</option> <option value="JAVA">JAVA</option> <option value="PHP">PHP</option> </select>
  • 15.
    15 Exércicio Tarefa de Salade aula  Monte a aplicação exemplo da aula Tarefa extra-classe 1. Faça um servlet que escreva uma pagina HTML com um formulário contendo cada tipo de elemento visto na aula de hoje.