03 - Formulários & Dados

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    03 - Formulários & Dados - Presentation Transcript

    1. Tratando as requisições dos clientes com formulários www.jetsoftware.com.br
    2. Agenda Formulários de dados Criando e submetendo formulários HTML Lendo parâmetros individuais de request. Lendo um conjunto completo de parâmetros de request. Tratando dados incompletos e errados Tratando submissão de formulários incompletos. Filtrando caracteres especiais dos parâmetros de request. www.jetsoftware.com.br
    3. Formulários básicos www.jetsoftware.com.br
    4. A finalidade de formulários de dados URL de exemplo http://host/path?user=Marcio+Marinho&orige m=RJ&dest=SP Parse dos dados ( query ) em CGI tradicional Ler os dados ( QUERY_STRING ) PARA requests de GET, outra forma ( standard input ) para requests POST. Cortar pares, separar os nomes dos parâmetros ( a esquerda do = ) dos valores dos parâmetros ( direita do = ). Decodificação da URL ( “%7E” vira “~”) Muito simples com servlets Use request.getParameter para todos os casos Recebemos o resultado da URL decodificada www.jetsoftware.com.br
    5. Criando formularios de dados (via GET) <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"> <title>Insert title here</title> </head> <body> <form name=\"meu_form\" action=“/testeWeb/MeuPrograma\"> Nome: <input type=\"text\" name=\"nome\" value=\"Marcio\"/> <br> Sobre Nome: <input type=\"text\" name=\"sobreNome\" value=\"Marinho\"/> <input type=\"submit\" value=\"enviar\"/> </form> </body> </html> www.jetsoftware.com.br
    6. Formulário de entrada (GET) www.jetsoftware.com.br
    7. Resultado www.jetsoftware.com.br
    8. Criando formularios de dados (via POST) <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\"> <title>Insert title here</title> </head> <body> <form name=\"meu_form\" action=\"/testeWeb/MeuPrograma\" method=\"POST\"> Nome: <input type=\"text\" name=\"nome\" value=\"Marcio\"/> <br> Sobre Nome: <input type=\"text\" name=\"sobreNome\" value=\"Marinho\"/> <input type=\"submit\" value=\"enviar\"/> </form> </body> </html> www.jetsoftware.com.br
    9. Formulário de entrada (POST) www.jetsoftware.com.br
    10. Resultado www.jetsoftware.com.br
    11. Lendo dados de formulários www.jetsoftware.com.br
    12. Lendo dados dos formulários dentro do servlet request.getParameter(“nome”); Retorna o valor da URL decodificada da primeira ocorrência do nome na query string. Funciona igualmente para requests GET e POST. Retorna null se o parâmetro não for encontrado request.getParameterValues(“nome”); Retorna um array de valores da URL decodificada de todas ocorrências do nome na query string. Retorna um array de um elemento se o parâmetro não estiver repetido. Retorna null se o parâmetro não existir na query string. request.getParameterNames() ou request.getParameterMap() Retorna uma Enumeration ou Map dos parâmetros do request. Geralmente usados para debug www.jetsoftware.com.br
    13. Formulário com parâmetros <form name=“form_3param\" action=\"/testeWeb/Servlet3Param\" method=\"POST\"> Parametro 1: <input type=\"text\" name=\"parametro1\"/> <br> Parametro 2: <input type=\"text\" name=\"parametro2\"/> <br> Parametro 3: <input type=\"text\" name=\"parametro3\"/> <br> <input type=\"submit\" value=\"enviar\"/> </form> www.jetsoftware.com.br
    14. Lendo os parâmetros response.setContentType(\"text/html\"); PrintWriter out = response.getWriter(); String docType = \"<!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4.0 “ + \"Transitional//EN\\\">\\n\"; String title = \"Lendo um formulário com 3 parâmetros\"; out.println(docType + \"<HTML>\\n\" + \"<HEAD><TITLE>“ + title + \"</TITLE></HEAD>\\n\" + \"<BODY BGCOLOR=\\\"#FDF5E6\\\">\\n\" + \"<H1 ALIGN=\\\"CENTER\\\">\" + title + \"</H1>\\n\" + \"<UL>\\n\" + \" <LI><B>parâmetro1</B>: “ + request.getParameter(\"parametro1\") + \"\\n\" + \" <LI><B>parâmetro2</B>: “ + request.getParameter(\"parametro2\") + \"\\n\" + \" <LI><B>parâmetro3</B>: “ + request.getParameter(\"parametro3\") + \"\\n\" + \"</UL>\\n\" + \"</BODY></HTML>\"); www.jetsoftware.com.br
    15. Resultado www.jetsoftware.com.br
    16. Lendo todos os parâmetros @SuppressWarnings(\"unchecked\") public void MostraTodosParametros(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\"text/html\"); PrintWriter out = response.getWriter(); String docType = \"<!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4.0 \" + \"Transitional//EN\\\">\\n\"; String title = \"Lendo todos parâmetros\"; out.println(docType + \"<HTML>\\n\" + \"<HEAD><TITLE>\"+title + \"</TITLE></HEAD>\\n\"+ \"<BODY BGCOLOR=\\\"#FDF5E6\\\">\\n\" + \"<H1 ALIGN=CENTER>\" + title + \"</H1>\\n\" + \"<TABLE BORDER=1 ALIGN=CENTER>\\n\" + \"<TR BGCOLOR=\\\"#FFAD00\\\">\\n\" + \"<TH>Parameter Name<TH>Parameter Value(s)\"); www.jetsoftware.com.br
    17. Lendo todos os parâmetros Enumeration paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String paramName = (String) paramNames.nextElement(); out.print(\"<TR><TD>\" + paramName + \"\\n<TD>\"); String[] paramValues = request.getParameterValues(paramName); if (paramValues.length == 1) { String paramValue = paramValues[0]; if (paramValue.length() == 0) out.println(\"<I>Sem Valor</I>\"); else out.println(paramValue); } else { out.println(\"<UL>\"); for (int i = 0; i < paramValues.length; i++) { out.println(\"<LI>\" + paramValues[i]); } out.println(\"</UL>\"); } } out.println(\"</TABLE>\\n</BODY></HTML>\"); } www.jetsoftware.com.br
    18. Lendo todos os parâmetros formulário www.jetsoftware.com.br
    19. Lendo todos os parâmetros resultado www.jetsoftware.com.br
    20. Tratando dados de formulário www.jetsoftware.com.br
    21. Verificando falta de dados ou dados errados Falta de dados Campo(s) faltando no formulário getParameter retornará null Campo em branco quando o formulário é submetido getParameter retornará uma string vazia (ou pode ser uma string com espaço em branco) Devemos checar por null antes de checarmos por string vazias. String param = request.getParameter(“nome”); if ( (param==null) || (param.trim().equals(“”))) { trateValoresFaltando(...); else facaOutraCoisa(param); } Dados malformados O valor é uma string não vazia, mas num formato errado. www.jetsoftware.com.br
    22. Verificando falta de dados ou dados errados Use valores “default” Trocar valores faltando por valores padrão específicos da aplicação. Veja no próximo exemplo. Exiba o formulário novamente Exiba o formulário de novo, com os valores faltando em destaque. Os valores digitados anteriormente devem ser preservados. Algumas opções para implementar : Ter o mesmo servlet para apresentar o formulário, processar os dados, e apresentar o resultado. Ter um servlet para apresentar o formulário, um segundo servlet para processar os dados e exibir o resultado Ter uma página JSP para apresentar o formulário, um servlet ou JSP para processar os dados e apresentar o resultado. Ter um JSP para apresentar o formulário, preencher automáticamente os valores obtidos em um objeto de dados. Ter um servlet ou página JSP para processar e exibir os resultados. www.jetsoftware.com.br
    23. Tratando dados que faltaram String nomeUsuario = request.getParameter(“nomeUsuario”); nomeUsuario = trocarSeFaltar(nomeUsuario,”guest”); private String trocarSeFaltar(String orig, String destino) { if ((orig == null) || (orig.trim().equals(\"\"))) { return(destino); } else { return(orig); } } www.jetsoftware.com.br
    24. Perguntas ? www.jetsoftware.com.br

    + Marcio MarinhoMarcio Marinho, 5 months ago

    custom

    407 views, 0 favs, 0 embeds more stats

    Tratamento de formulários com servlets

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 407
      • 407 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories