Bom dia amigos,
Venho mais uma vez solicitar a ajuda dos amigos mais experientes em Java.
Estou estudando como trabalhar com sessão em Java utilizando o padrão MVC e estou com as seguintes dúvidas.
Tenho o método para validar o usuário onde a validação é feita pela comando SQL = ?SELECT * FROM usuario WHERE usu_login = ? AND usu_senha = ??;
Nesta validação eu consigo passar tanto o login quanto a senha como sessão. (Fiz isto como teste e funcionou)
Eu só não sei como passar o ID do usuário para a minha classe Controller (Servlet) e após para o View (JSP).
Me disseram para pegar o ID utilizando o getField mas não consegui fazer.
Por favor, preciso de uma luz.
Desde já agradeço ao amigos.
Seguem os códigos
Classe Bean - Pessoa
package br.com.assinatura.bean;
/**
*
* @author Fabiano
*/
public class Pessoa {
private String nome;
private String login;
private String senha;
private String telefone;
private String ramal;
private String cargo;
private String email;
private int idUsuario;
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;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getRamal() {
return ramal;
}
public void setRamal(String ramal) {
this.ramal = ramal;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(int idUsuario) {
this.idUsuario = idUsuario;
}
}
Classe como o método de validação - UsuarioDao
package br.com.assinatura.dao;
import br.com.assinatura.bean.Pessoa;
import br.com.assinatura.conexao.Conexao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
* @author Fabiano
*/
public class UsuarioDao {
public boolean verificaUsuario (Pessoa usuarioBean) throws SQLException
{
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = Conexao.getConexao();
String sql_usuario = "SELECT * FROM usuario WHERE usu_login = ? AND usu_senha = ?";
stmt = conn.prepareStatement(sql_usuario);
// DÚVIDA: COMO PEGAR O ID DO USUÁRIO AQUI PARA ENVIÁ-LO AO SERVLET?
stmt.setString(1, usuarioBean.getLogin());
stmt.setString(2, usuarioBean.getSenha());
rs = stmt.executeQuery();
if(rs.next())
{
return true;
}
else
{
return false;
}
} catch (Exception e) {
rs.close();
stmt.close();
conn.close();
return false;
}
finally
{
rs.close();
stmt.close();
conn.close();
}
}
}
Classe Servlet de controle - UsuarioController
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.assinatura.controller;
import br.com.assinatura.bean.Pessoa;
import br.com.assinatura.dao.UsuarioDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Fabiano
*/
public class UsuarioController extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
Pessoa usuario = new Pessoa();
RequestDispatcher rd;
//DÚVIDA: COMO PEGAR O ID DO USUARIO PARA COLOCA-LO NA SESSÃO?
String login = request.getParameter("login");
String senha = request.getParameter("senha");
usuario.setLogin(login);
usuario.setSenha(senha);
UsuarioDao usuDao = new UsuarioDao();
try {
if (usuDao.verificaUsuario(usuario)) {
HttpSession sessao = request.getSession();
sessao.setAttribute("USU", login);
sessao.setAttribute("SENHA", senha);
rd = request.getRequestDispatcher("/logado.jsp");
rd.forward(request, response);
} else {
request.setAttribute("msg", "USUARIO OU SENHA INVALIDO");
rd = request.getRequestDispatcher("/login.jsp");
rd.forward(request, response);
}
} catch (SQLException ex) {
out.println(ex);
}
}
}
Tela recebendo e imprimindo os dados passados pela sessão. (logado.jsp)
<%@page contentType="text/html" pageEncoding="UTF-8" session="true"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
LOGIN: <%= session.getAttribute("USU") %> <BR>
SENHA: <%= session.getAttribute("SENHA") %>
</body>
</html>