Ciclo de vida; Funcionamento; Requisições e .· public void doPost(HttpServletRequest request,

  • View
    212

  • Download
    0

Embed Size (px)

Text of Ciclo de vida; Funcionamento; Requisições e .· public void doPost(HttpServletRequest request,

  • Disciplina:

    MsC. Alexandro Vladno

    Edmilson Campos

    MsC. Fbio Procpio

    Esp. Felipe Dantas

    MsC. Joo Maria

    MsC. Liviane Melo

    Corpo docente:

    Ciclo de vida; Funcionamento; Requisies e Respostas.

    Programao Web

    AULA 05

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 2

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 3

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 4

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 5

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 6

  • 1.

    Edmilson Campos (edmilson.campos@ifrn.edu.br) 7

  • 2.

    Edmilson Campos (edmilson.campos@ifrn.edu.br) 8

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 9

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 10

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 11

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 12

    public class OiMundo extends HttpServlet {

    protected void service (HttpServletRequest request, HttpServletResponse response) throws

    ServletException, IOException {

    PrintWriter out = response.getWriter();

    // escreve o texto

    out.println("");

    out.println("");

    out.println("Primeira servlet");

    out.println("");

    out.println("");

    }

    }

    O objetivo da servlet acima exibir uma mensagem HTML simples

    para os usurios que a requisitarem

    Observe que toda classe

    Servlet extende HttpServlet

    E aqui tm-se os parmetros request e response usados para controlar as

    requisies e respostas, respectivamente

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 13

    Mapear o nome das Servlets aumenta a flexibilidade e

    a segurana da aplicao

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 14

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 15

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 16

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 17

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 18

    Nome:

    E-mail:

    Endereo:

    Data Nascimento:

    O atributo action do form indica qual endereo deve ser chamado ao submeter o formulrio, ao clicar no boto Gravar.

    Nesse caso, estamos apontando para um endereo que ser uma Servlet

    que j vamos criar, chamada adicionarContato

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 19

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 20

    public class AdicionaContatoServlet extends HttpServlet {

    protected void service(HttpServletRequest request, HttpServletResponse response)

    throws IOException, ServletException {

    //Recuperando os parmetros do request

    String nome = request.getParameter("nome");

    String endereco = request.getParameter("endereco");

    String email = request.getParameter("email");

    String dataEmTexto = request.getParameter("dataNascimento");

    //Realiza operao para inserir contato

    //[]

    // Imprime o nome do contato que foi adicionado

    PrintWriter out = response.getWriter();

    out.println("");

    out.println("");

    out.println("Contato " + nome + " adicionado com sucesso");

    out.println("");

    out.println("");

    }

    }

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 21

    AdicionaContato

    br.com.caelum.agenda.servlet.AdicionaContatoServlet

    AdicionaContato

    /adicionaContato

    Ateno para no errar o caminho correto do e nem esquecer a barra da url no

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 22

    A razo tambm de muitas pessoas s conhecerem os mtodos GET e

    POST se dar pelo fato deles serem os nicos suportados pelo HTML 4

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 23

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 24

    public class AdicionaContatoServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

    throws IOException, ServletException {

    //Executado quando a requisio enviada pelo mtodo GET

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

    throws IOException, ServletException {

    //Executado quando a requisio enviada pelo mtodo POST

    }

    }

  • plataforma do cliente informao do browser

    cookies

    sesso

    mtodo HTTP

    stream de dados

    String cliente = request.getHeader(User-Agent);

    Cookie[] cookies = request.getCookies();

    String metodo = request.getMethod();

    HttpSession sessao = request.getSession();

    Edmilson Campos (edmilson.campos@ifrn.edu.br) 25

    InputStream entrada = request.getInputStream();

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 26

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 27

  • import javax.servlet.*;

    import javax.servlet.http.*;

    import java.io.*;

    public class BeerSelect extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response)

    throws IOException, ServletException{

    response.setContentType("text/html");

    PrintWriter out = response.getWriter();

    out.println("Beer Selection Advice
    ");

    String c = request.getParameter("color");

    out.println("
    Got beer color " + c);

    }

    }

    Deve-se evitar a utilizao de stream. O correto utilizar pginas JSP (que ser estudo ainda) para retornar ao usurio a resposta

    Edmilson Campos (edmilson.campos@ifrn.edu.br) 28

  • import javax.servlet.*;

    import javax.servlet.http.*;

    import java.io.*;

    public class CodeReturn extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response)

    throws IOException, ServletException{

    response.setContentType(application/jar");

    ServletContext ctx = getServletContext();

    InputStream is = ctx.getResourceAsStream(/bookCode.jar);

    int read = 0;

    byte[] bytes = new byte[1024];

    OutPutStream os = response.getOutPutStream();

    while((read = is.read(bytes)) != -1)

    os.write(bytes, 0, read);

    os.flush();

    os.close();

    }

    }

    Edmilson Campos (edmilson.campos@ifrn.edu.br) 29

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 30

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 31

    ServletOutPutStream out = response.getOutPutStream();

    out.writer(umArrayDeBytes);

    PrintWriter writer = response.getWriter();

    writer.println(algum texto e html);

    O PrintWriter empacota o ServletOutPutStream, ele possui uma referncia para o ServletOutPutStream, adicionando mtodos de

    alto nvel para tratar caracteres

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 32

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 33

  • //...

    if (Se o trabalho for para o Servlet){

    // O Servlet trata a solicitao

    }

    else response.sendRedirect(http://www.ufla.br);

    //...

    Edmilson Campos (edmilson.campos@ifrn.edu.br) 34

  • public RequestDispatcher getRequestDispatcher(String path)

    public void forward(ServletRequest req, ServletResponse res)

    public void forward(ServletRequest req, ServletResponse res)

    Edmilson Campos (edmilson.campos@ifrn.edu.br) 35

  • Edmilson Campos (edmilson.campos@ifrn.edu.br) 36

  • http://www.corewebprogramming.com/

    http://www.w3schools.com/

    Edmilson Campos (edmilson.campos@ifrn.edu.br) 44

    http://www.corewebprogramming.com/http://www.w3schools.com/