Olá desenvolvedores, seguindo com a implementação de login com JDBC e JSP, hoje iremos começar estruturar a inserir o usuário a partir do sistema. Até aqui o fizemos direto na linha de código.
Assim, no tutorial “VALIDAÇÃO DE LOGIN COM JDBC E SERVLETS”, que você poderá ler aqui, criamos o código, de validação do login e senha. Bem como entendemos de forma mais detalhada o porquê de utilizarmos o DAO para tratar da conexão com o banco de dados.
Revisando o que temos até agora, uma página de login em JSP com JDBC que nos redireciona ou para a página de acesso liberado ou, em caso de falha na validação para a página que informa que não temos acesso ao sistema .
LINKANDO UMA PÁGINA A OUTRA
Então agora, na página “acessoliberado.jsp” crie um link para redirecionar o usuário para a página de cadastro “cadastroUsuario.jsp”. E se você gosta e já tem familiaridade com o front-end pode estilizar a sua página a sua maneira. É um ótimo exercício por sinal.
CRIANDO E IMPLEMENTANDO UM FORMULÁRIO
Obviamente teremos que criar a página cadastroUsuario.jsp, e como sempre, a página deverá ser criada na raiz da pasta WebContent. Agora a nossa página de cadastro de usuário precisa de um formulário básico, somente com o essencial e nós vamos cria-lo agora.
Em action, definiremos o caminho “salvarUsuario”, qual faz referência a servlet que vamos criar, tal como fizemos na tela de login. É no action que informamos o nome da URL ou o caminho para qual o conteúdo do formulário será submetido.
IMPLEMENTANDO A SERVLET
Então, no package servlet >> New >> Servlet ou new >> Others >> servlet, dê a servlet o nome de “Usuario” e Finish.
Depois de removermos os comentários, corrija o mapeamento colocando o nome que iremos buscar lá na action.
@WebServlet("/salvarUsuario")
Feito isso, precisaremos fazer com que os dados cheguem na servlet, com este protocolo enviaremos ao servidor, neste caso ao servlet, os dados endereçados ao caminho especificado na action.
<form action="salvarUsuario" method="post">
E no método doPost da servlet é onde receberemos o login que irá vir por request (requisição) e do mesmo modo procederemos com a senha. Este método cumpre a função de enviar os dados do formulário para serem processados para o recurso especificado.
E para mantermos as responsabilidades separadas iremos fazer um DAO – Data Access Object para o cadastro de usuário. E apenas recapitulando, o DAO é uma classe cuja responsabilidade única é o acesso aos dados. A ideia é manter o código organizado e de fácil manutenção, atribuindo a cada classe uma responsabilidade única. O acesso aos dados será feito a partir da instanciação de um objeto, o real responsável por acessar os dados.
IMPLEMENTANDO O DAO
No package DAO crie a classe DaoUsuario, onde o objeto Connection deverá ser instanciado e o método construtor implementado, onde iremos informar a atribuição da conexão com o banco de dados a variável connection.
Agora precisamos de um método para salvar, este método receberá como parâmetro o “BeanCursoJsp”, que por sua vez já recebe o login e senha. Desse modo não precisaremos mais do método validarLginSenha da classe “BeanCursoJsp”, visto que agora a validação será feita no banco de dados.
public void Salvar (BeanCursoJsp usuario){}
O escopo do método salvar receberá a query SQL, isto é, o insert que irá inserir o usuário no banco, cujos dados virão por parâmetro. E novamente o utilizaremos com o PreparedStatement que é uma instrução do banco de dados, um recurso usado para executar instruções SQL como, instruções de consulta, atualizações, inserts, repetidas vezes e com máxima eficiência.
Desse modo. a variável insert será a responsável por “setar” os dados nas devidas posições de usuário e senha. Assim daremos um insert.execute(), para executar a query no banco de dados. E na servlet instanciaremos o private DaoLogin daologin = new DaoLogin();
E para que todos os dados possam ser carregados para o banco, precisaremos na servlet de um objeto BeanCursoJsp para setar estes dados.
Voltando ao método Salvar() (BeanCursoJsp usuario), envolveremos o escopo em um bloco try, Aqui o bloco catch deverá implementar um novo bloco try/cacth. Em que um rollback deverá estar dentro do try, assim, se a conexão falhar, o estado do banco permanecerá inalterado.
TESTANDO A APLICAÇÃO
E claro, chegou a hora de testar nosso cadastro de usuários para vermos se realmente está salvando no banco. Criarei o usuário alunojava e senha igual ao login.
No banco de dados … dado inserido com sucesso
EM POUCAS PALAVRAS
A primeira parte do cadastro de usuário utilizando JDBC e JSP está pronta, e foi concluída com êxito. Porém ainda há muito o que fazer, então, por hora eu fico por aqui, nos vemos no próximo tutorial.