1 - Desenvolvendo um sistema de pesquisa de alunos por matrícula usando AJAX e JSP (Usando o método GET)
Em artigos anteriores fizemos um estudo bem detalhado de AJAX e do objeto XMLHttpRequest. Chegou a hora de construir algo mais útil. A aplicação que desenvolveremos permitirá pesquisar um aluno baseado em seu número de matrícula. Além disso, os dados serão obtidos a partir de uma chamada a uma página JSP e o método usado para a requisição HTTP será GET (Mais adiante veremos como usar POST).
Os nomes e matrículas dos alunos serão armazenados em um objeto da classe Hashtable da linguagem Java. Esta classe permite associar valores a chaves, ou seja, ideal para o projeto proposto. Em outros artigos você aprenderá a obter um arquivo XML a partir das informações em um banco de dados.
A listagem seguinte apresenta o código completa para o documento JSP que será usado no exemplo:
Código completo para pesquisar.jsp:
A análise linha a linha deste código está além do escopo do artigo. Os pontos importantes a serem considerados são:
A página JSP deverá ser chamada com o parâmetro matricula contendo o valor da matrícula a ser pesquisada. Por exemplo, desejando pesquisar a matrícula 547961-4, a chamada correta deverá ser:
Se o aluno for encontrado, a página devolverá um arquivo XML com o seguinte conteúdo:
Se o aluno não for encontrado o resultado será:
A página HTML que servirá para fazer a consulta dos alunos se parecerá com a figura seguinte:
O formulário a ser usado foi construído com o seguinte código HTML:
Este formulário possui um detalhe que o diferencia daqueles usados em aplicações web convencionais: o valor informado para a propriedade action:
Como a página não será atualizada, é preciso um mecanismo que permita simular o envio do formulário, mas sem realmente faze-lo na verdade. A forma mais usual é fornecer um URL JavaScript que não retorna nada:
e, como o espaço entre URLs deve ser informado como %20, o resultado é este valor estranho à primeira vista.
A conexão com o servidor é feita quando o formulário é submetido (o que é apenas uma simulação, já que a aplicação continua na mesma página) através de uma função delegada ao seu evento onsubmit:
O código completo para a página HTML está disponível nas linhas seguintes:
Código completo para alunos.htm
2 - Usando POST
Com o objetivo de demonstrar como o objeto XMLHttpRequest efetua de forma diferenciada as requisições GET e POST, decidiu-se implementar uma nova versão da aplicação prática demonstrada neste artigo, desta vez usando o método POST.
As diferenças entre as duas aplicações ocorrerão somente no trecho de código que efetua a requisição ao servidor. A versão com POST deve se basear no modelo a seguir:
As diferenças podem ser resumidas da seguinte forma:
1) Não há mais os parâmetros no endereço da página que sofrerá a requisição;
2) O método de envio é definido como POST:
3) O cabeçalho Content-Type da requisição agora é definido como sendo dados de um formulário:
4) Os parâmetros da requisição são enviados no método send():