Bem, neste post irei exemplificar um sistema de Login/Senha (beeem básico) com java web. Acredito que o mesmo será interessante para aqueles que querem iniciar com Java web. Para este tutorial, é necessário já estar familiarizado com Java, conhecer o básico de JSP/Servlets, Banco de dados e alguma IDE (Eclipse, NetBeans, etc).
Mesmo sendo um tutorial super simples, tentarei exemplificar de uma forma bem decente, em MVC, e utilizando algumas custom tags de JSTL(JavaServer Pages Standard Tag Library).
Passos:
#1 – Criação do Banco de dados
O primeiro passo é a criação do Banco de Dados. Para este exemplo, será apenas uma tabela de usuário, com os campos id, nome, login e senha, conforme abaixo:
create table usuario( id integer not null, nome varchar(30) not null, login varchar(20) not null, senha varchar(20) not null, constraint pk_usuario primary key (id) );
Obs: este tutorial supõe que o leitor já conheça como criar bases e tabelas no banco de dados. Outro ponto importante é que o mesmo pode ser utilizado em qualquer banco de dados além do postgres, apenas efetuando pequenas alterações nos códigos SQL, quando necessário.
#2 – Populando a tabela de usuários
Vamos criar um usuário, para podermos utilizar o mesmo para efetuar o login:
insert into usuario values (1, 'Hallan Medeiros', 'hallan', 'hallan2009' );
#3 – Criando o projeto
Abra sua IDE de preferência (Eclipse, NetBeans, etc) e crie um projeto web. Para quem conhece pouco, a estrutura básica de um projeto web java deve ser:
. -> arquivos, html, jsp, etc
WEB-INF
|
|-classes -> classes java compiladas
|-lib -> bibliotecas a serem utilizadas
`-web.xml -> arquivo de configuração da aplicação (deployment descriptor)
Não irei entrar em detalhes de como criar o projeto: novamente, o tutorial supõe que o leitor já conheça pelo menos o básico do Eclipse/NetBeans, etc.
4# – Adicionando as bibliotecas
Para este projeto, é necessário a biblioteca de conexão com o Banco de Dados (driver JDBC) e as bibliotecas do JSTL.
No caso do postgres:
postgresql.jdbc4.jar
Caso seja outro Banco de Dados (MySQL, Oracle, etc), deve-se utilizar o conector do respectivo banco.
As libs para se usar o JSTL são:
standard.jar
jstl.jar
Ambas podem ser baixadas no site do apache
No final deste tutorial (na parte 2) irei disponibilizar um projeto do Eclipse, com os arquivos, mais as libs utilizadas.
5# – Estrutura de pacotes do projeto
O projeto terá os seguintes pacotes (packages):
login -> onde irá ficar o servlet que fará a verificação do usuário
model.dao -> onde ficará o DAO do usuário
model.bean -> inde ficará a classe do usuário
6# – Criar a classe de Usuário
O próximo passo será criar a classe de Usuário. A mesma terá os mesmos dados da tabela de usuários do Banco, conforme abaixo:
package model.bean; /** * * @author hallan medeiros * */ public class Usuario { private int id; private String nome; private String login; private String senha; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } }
7# – Criar o DAO do usuário
Abaixo, o código da classe de DAO do usuário:
package model.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import model.bean.Usuario; /** * * @author hallan medeiros * */ public class DaoUsuario { public Connection getConnection(){ Connection connection = null; try { Class.forName("org.postgresql.Driver"); connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/nome_banco", "usuario_banco", "senha_banco"); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return connection; } public Usuario getUsuario( String login, String senha ){ Connection c = this.getConnection(); PreparedStatement ps = null; ResultSet rs = null; try{ ps = c.prepareStatement("select id, nome from usuario where login = ? and senha = ?"); ps.setString(1, login); ps.setString(2, senha); rs = ps.executeQuery(); if ( rs.next() ){ Usuario user = new Usuario(); user.setId( rs.getInt("id") ); user.setLogin(login); user.setSenha(senha); user.setNome( rs.getString("nome") ); return user; } } catch (SQLException e){ e.printStackTrace(); } finally{ if (rs != null ) { try { rs.close(); } catch (SQLException e) { ; } rs = null; } if (ps != null ) { try { ps.close(); } catch (SQLException e) { ; } ps = null; } if (c != null ) { try { c.close(); } catch (SQLException e) { ; } c = null; } } return null; } }
Bom, no próximo post veremos como criar a página de login, de logado e de erro, e o servlet de validação do usuário, em MVC.
Abraço!
Cara não sei como você consegue… o__O
primeiramente obrigad pelo ensinamento.
criei um projeto em eclipse para aprender como é feito mas na hora de rodar não encontro a validaLogin.do. Estou com tomcat 7.0.12 junto com o eclipse. vc pode me ajudar?
Valeu mesmo cara!.. -:)
cara o meu ta dando erro naqueles pontos e vírgulas :/
e da The requested resource is not available.
😮 😯 😕 😕