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.
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.