b) Servlet

package br.aiec;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name="ParametrosRequisicao", urlPatterns="/parametrosRequisicao")
public class ParametrosRequisicaoDemoServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        PrintWriter out = response.getWriter();
        
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<head>");
        out.println("<title> GET </title>");
        out.println("</head>");
        out.println("<body>");
        
        //QueryString passada como parametro
        out.println("<h3>Query String (nome/valor) passada como parâmetro</h3>");
        out.println(request.getQueryString());
        out.println("<hr>");        
        
        //Obtendo os parâmetros da requisição
        String firstName = request.getParameter("primeiroNome");
        String favoriteMusic[] = request.getParameterValues("musicasFavoritas");
        
        //O parametro de idade deve ser convertido para seu tipo adequado
        String strAge = request.getParameter("idade");
        
        //Verificando a string idade informada no formulário
        if(strAge != null && strAge.equals("")){
            strAge = "0";
        }
        
        for(int i = 0; i < strAge.length(); i++){
            if(!Character.isDigit(strAge.charAt(i))){
                strAge = "0";
                break;
            }
        }
        
        //Convertendo a string informada para número inteiro
        Integer age = Integer.parseInt(strAge); 
        
        //Montando a saida para esta requisição
        out.println("<h3>Valores Informados no formulário</h3>");
        out.println("<p> Primeiro Nome: " + firstName + "</p>");
        out.println("<p> Idade: " + age + "</p>");
        
        if(favoriteMusic != null){
            out.println("<p> Músicas escolhidas: ");
            for(int i = 0; i < favoriteMusic.length; i++){
                out.println("<br/>" + favoriteMusic[i]);
            }       
            out.println("</p>");
        }
        
        out.println("</body>");
        out.println("</html>");
    }
}

Observe que os valores passados como parâmetro para o método “getParameter” e “getParameterValues” da interface HttpServletRequest devem ser idênticos aos valores informados ao atributo “name” do código HTML.

É importante salientar que o método “getParameter” retorna um dado do tipo String e o método “getParameterValues” retornam um array (conjunto) de dados do tipo String. Isso significa que todo e qualquer dado que não seja do tipo String deve ser convertido para seu tipo adequado. Essa conversão para os tipos de dados adequados é fundamental para permitir que se possa falar em coerência, coesão, integridade, reusabilidade, segurança, acoplamento, dentre inúmeros outros objetivos, na representação dos dados computaciona

O servlet acima executa essa tarefa para o campo idade em dois passos: verificação e conversão. O primeiro passo é verificar se o valor informado pelo usuário é um possível número. Em caso negativo, o valor zero será considerado como padrão/default. Após a verificação, a conversão do valor númerico que se encontra em formato String é efetuada para representá-lo de maneira coerente como um tipo de dado inteiro.

Copyright © 2014 AIEC.