Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 03 - Manipulando requisições e respostas HTML com Servlets

Manipulando os parâmetros das requisições web

Na aula anterior, você percebeu que os Servlets são acessados através de suas URL (ex.: http://localhost:8080/ProgramacaoWeb/ServletExemplo). Esse acesso pode ser via método GET ou via método POST. Ou seja, se você apenas digitar uma URL em um navegador web ou clicar em um link usual numa página, estará usando o método GET. Já para se usar o método POST, precisamos definir e usar um formulário, ou seja, usar o marcador <form> na página HTML com atributo method configurado para POST. Daí, podemos acioná-lo, por exemplo, através do clique de um botão para envio dos dados. A escolha entre esses dois métodos é feita geralmente baseada na quantidade de informações (parâmetros da requisição) que você quer passar.

Por exemplo, para entrar na página da UFRN, você não precisa entrar com nenhuma informação além da URL do sítio (http://www.ufrn.br). Nesses casos, geralmente você faz uso do método GET, apesar de o método POST poder ser utilizado sem problemas.

Por outro lado, quando você faz uma consulta em um sítio de busca como o Google, precisa entrar com informações como as palavras que você quer buscar. Para isso, essa informação precisa ser transportada para o servidor web, o qual é responsável por encontrar as páginas que contenham aquelas palavras que você digitou na busca. Se fizermos uso do método GET, os parâmetros da requisição (palavras de busca etc.) serão transportados na própria URL de acesso ao Servlet. Por exemplo, a URL <http://localhost:8080/ProgramacaoWeb/ServletBusca?palavras=servlet%20java>representa o acesso ao ServletBusca passando o parâmetro de nome palavras, cujo valor é “servlet java”. Note que espaços em branco são substituídos automaticamente pelo código %20. Experimente fazer uma consulta em um sítio de busca e olhar a URL de resposta de uma consulta.

Já se você fizer uso do método POST, a URL de acesso ao Servlet será simplesmente <http://localhost:8080/ProgramacaoWeb/ServletBusca>, e seus parâmetros serão passados de forma oculta para o usuário do navegador web. Isso tem algumas consequências importantes. Primeiro, se você estiver transmitindo uma senha, não vai querer que ela fique trafegando na própria URL, pois URL são armazenadas em históricos de acesso dos navegadores e dos servidores web. Além disso, existe um limite não muito grande para o tamanho de uma URL, que pode variar de acordo com o navegador e servidor web utilizados. Dessa forma, o método GET só deve ser utilizado quando a quantidade de informações for pequena e não for secreta.

Ok, mas apesar de os parâmetros de uma requisição serem trafegados via métodos HTTP diferentes, GET ou POST, o acesso a estes é praticamente o mesmo no código Java. De fato, a principal diferença no código Java você já aprendeu na aula passada. Requisições GET são processadas pelo método doGet(), e requisições POST são processadas pelo método doPost(). Dentro desses métodos, o acesso aos parâmetros tende a ser o mesmo: através do uso da classe javax.servlet.http.HttpServletRequest.

Ambos os métodos doGet() e doPost() possuem dois parâmetros. O primeiro deles, do tipo HttpServletRequest, irá lhe dar acesso aos parâmetros e a outras informações da requisição. Lembre-se de que o método será chamado de acordo com o evento acionado pelo usuário (clique em um link, digitação da URL no navegador, clique em um botão associado a um formulário etc.).

Versão 5.3 - Todos os Direitos reservados