Desenvolvimento - Java

NetBeans IDE: Visual Web Pack - parte 4 - Criando a query e verificando o usuário

Nesta etapa, criaremos a query que será utilizada para verificar se o login utilizado pertence a um usuário da área administrativa da aplicação, passando pela verificação da senha, liberando a entrada no sistema.

por Edson Gonçalves



Olá PessoALL,

Nesta etapa, criaremos a query que será utilizada para verificar se o login utilizado pertence a um usuário da área administrativa da aplicação, passando pela verificação da senha, liberando a entrada no sistema. Em seguida adicionaremos código ao botão Logar para que o usuário possa entrar na área administrativa.

Criando a query para verificar o usuário e senha

Para compreender o que iremos desenvolver, observem a Figura a seguir e siga os três passos:

1 - Com a página Page1.jsp aberta, arraste da janela Execução a tabela usuarios para o Design.

2 – Observem que na janela Esboço surgirá um componente chamado de usuariosDataProvider.

3 – Dentro de SessionBean1 aparecerá um componente chamado de usuariosRowSet, contendo uma query da tabela usuarios.

Figura 1

Agora que a classe SessionBean1 possui acesso ao banco de dados e a tabela usuarios, iremos alterá-la para que um usuário possa ser selecionado. Em usuariosRowSet, na janela Esboço, vamos dar um duplo clique.

Ao surgir a janela Query Editor, no segundo quadro, na estrutura da tabela usuarios, clique com o direito do mouse sobre a linha da coluna login e selecione no menu de contexto o item Adicionar critérios de consulta.

Figura 2

Na caixa de diálogo Adicionar critérios de consulta, mantenha em Comparação o item “=Iguais” e marque Parâmetro, mantendo da forma como está. Confirme.

Figura 3

Observe que um critério será adicionado, onde o parâmetro de entrada é representado pelo sinal de interrogação “?”. Deixaremos as explicações técnicas quanto ao que está ocorrendo para outra oportunidade. O importante é que agora temos a query como precisamos para verificar o login e a senha.

Figura 4

IMPORTANTE: Quando estivermos utilizando o Visual Web Pack com o Apache Tomcat embutido, adicione o driver JDBC do seu banco de dados, no caso do MySQL no seguinte local da instalação do NetBeans:

$LOCAL_INSTALADO/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib

Adicionando código ao botão Logar

Primeiramente vamos adicionar o código necessário para logar o sistema. Na Page1.jsp, na área de login, comecem com um duplo clique no botão Logar.

Observem que o Visual Web Pack já adiciona um método público de retorno String, contendo inclusive a string “logado” colocada na navegação.

Vamos adicionar o código mostrado a seguir para que ao clicar no botão, o usuário e a senha sejam verificados pelo banco de dados, retornando ou não o acesso a área administrativa.

public String button1_action() {

try {

//captura o login passado pelo campo usuario

getSessionBean1().getUsuariosRowSet().

setObject(1,usuario.getText());

//reinicia o Data Provider

//apagando dados cacheados anteriores

usuariosDataProvider.refresh();

//verifica se a senha está correta, evitando SQL Injection

if(senha.getText().equals((String) usuariosDataProvider.getValue("usuarios.password"))){

//captura a sessão do contexto criado

//pelo JavaServer Faces do VWP

FacesContext fc = FacesContext.getCurrentInstance();

HttpSession session = (HttpSession)fc.getExternalContext().getSession(false);

//cria uma sessão contendo o nome de usuario chamada logado

session.setAttribute("logado", usuario.getText() );

//redireciona para a área administrativa

return "logado";

}

} catch (Exception ex) {

//exibe a mensagem de login ou senha inválidos

error("Login ou senha inválidos");

}

return "";

}

Este código funciona perfeitamente, e em um teste você pode “logar” no sistema. O problema maior está nas áreas administrativas, que exigem uma segurança maior. Quando você está dentro da área administrativa, o navegador vai armazenando os endereços das páginas na barra de endereços. Qualquer pessoa depois, poderá acessar estas áreas sem a necessidade de logar, simplesmente acessando a área através do seu endereço direto.

Na quinta e última parte do artigo iremos criar um Filtro com a API Servlet, evitando tal situação.

Bons códigos e até lá.

Edson Gonçalves

Edson Gonçalves - Desenvolvedor analista, colaborador, pesquisador e escritor. Diretor Técnico da empresa Integrator Technology and Design, é responsável pela área de desenvolvimento de sistemas, tanto em ambiente Cliente/Servidor como em sistemas distribuídos. Profundo conhecedor de linguagens para o desenvolvimento Web como Java, C#, Ruby, Python e PHP 5, atualmente dedica boa parte de seu tempo livre para escrever livros e artigos. Colaborador do DFJUG (Brasilia Java Users Group) nas horas vagas, como escritor já lançou oito livros, entre eles Desenvolvendo aplicações Web com JSP, Servlets, JavaServer Faces, Hibernate, EJB3 Persistence e AJAX e Desenvolvendo Aplicações Web com NetBeans IDE 5.5, ambos encontrados aqui na Linha de Código.