Olá desenvolvedores, hoje iremos implementar uma consulta dinâmica de usuários, porque se você tem um cadastro de usuários precisa ter meios de poder pesquisar por um usuário específico e trazer este dado para a tela.

IMPLEMENTANDO A CONSULTA NO FRONT-END

E o primeiro passo será a criação dos componentes de consulta na página JSP de cadastro de usuários. Assim, entre o formulário e a lista de usuários implementaremos uma nova tabela que também estará envolvida pela tag form. Esta nova tabela conterá o campo de descrição da consulta do tipo text e um botão de submissão.

A ação que é para onde os dados serão enviados, será a servlet de pesquisa (servletPesquisa) que implementaremos. E o método de envio dos dados do formulário será o post. O post é um método de requisição que solicita ao servidor, por exemplo, que aceite os dados contidos no corpo da mensagem de requisição.

IMPLEMENTANDO A CLASSE DE CONEXÃO

Na classe de conexão DaoUsuario criaremos um método retornará uma lista de objetos de usuário. Este método receberá como parâmetro a String descricaoconsulta.

Então o método implementará uma QUERY SQL que irá selecionar na tabela usuário o login que for diferente de admin, e cujo nome contenha o valor da descricaoconsulta. E retornará a consulta realizada no método consultarUsuarios(), a partir do parâmetro sql.

Porém o método que estamos implementando terá o mesmo comportamento do método de consultarUsuários() que já temos implementado. Então iremos selecionar neste método de consulta todo o bloco de código que nos interessa e refatorá-lo. Assim, estamos, grosso modo, promovendo uma alteração em nosso código, mas sem modificar seu comportamento.

Após selecionar o trecho de código que nos interessa, clique com o botão direito sobre ele >> Refactor >> Extract Method… dê um nome para o método, o mesmo nome e clique em OK.

Então agora temos o método consultarUsuarios() refatorado, e que implementa e retornará uma lista de usuários receberá a String sql como parâmetro.

E o método listar() retornará o consultarUsuarios recebendo a sql como argumento.

IMPLEMENTANDO A SERVLET

Na tela seguinte deixe selecionado apenas o Inherited abstract superclasse e o doPost e clique em Finish. Com a classe criada instancie o objeto de conexão.E agora implementaremos a servlet de pesquisa, de forma sucinta a servlet cumpre a função de receber requisições do tipo HTTP, processá-las e responder ao cliente. Dessa forma o cliente, neste caso o formulário que criamos, faz uma requisição HTTP a servletPesquisa, que irá tratar a requisição e responder ao cliente, este por sua vez receberá os dados e os exibirá na tela.

Então, clique com o botão direito sobre o package de servlet >> New >> Servlet ou Other, defina um nome para a servlet e clique em Next. Na próxima tela, se necessário corrija o nome para a URL de mapeamento, que deverá começar com letra minúscula, e novamente clique em Next.

Private DaoUsuario daoUsuario = new DaoUsuario();

Agora implementaremos dentro do doPost uma string que receberá um dado vindo da requisição que receberá como argumento id do campo de pesquisa.

Seguindo com a implementação criaremos uma condição onde a consulta só será realmente realizada se a descriçãoconsulta for diferente de nulo e de vazio. O método trim()  remove os espaços vazios do inicio e/ou fim de um texto.

Se não, será carregada e exibida a lista com todos os usuários cadastrados no sistema.

Esta condição implementa dentro de um bloco try/catch a lista de pesquisa do objeto recebendo o dao que invoca o método listar que como argumento recebe a descricaoconsulta que vem da tela.

E assim o Dispatcher irá em tempo de execução retornar para a página cadastroUsuario.jsp a lista que foi consultada no banco de dados.

EM POUCAS PALAVRAS

E assim podemos agora carregar e listar um dado usuário a partir da pesquisa e consulta ao banco de dados. E aprendemos ainda conceitos importantes como o de refatoração. Espero que tenham gostado eu fico por aqui e nos vemos no próximo tutorial.