Olá…
Estou com dificuldades em passar um campo da tabela para no servlet… na tabela existe, campos user, pass e fullname. Quando o usuario logar-se no sistema e seus dados estiverem OK, mostrar, Olá “fullname do usuario”!..
Tentei fazer, já na classe de conexao com o banco(AcessoSistema) criando um atributo fullname e criando um metodo get. Mas retorna (Olá, null!)
Para isso,
Existe a classe que faz a conexao com o banco
import java.sql.*;
public class AcessoSistema
{
private Connection con; // faz a conexao com o Banco de Dados
private Statement st; // executa instruções SQL
private ResultSet rs; // armazena o resultado de uma consulta
private String fullname;
public boolean conectar()
{
try {
//carre o driver JDBC
Class.forName("org.firebirdsql.jdbc.FBDriver");
//obtem a conexao com o BD
con = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:C:/Arquivos de programas/Apache Software Foundation/Tomcat 5.5/webapps/login/banco/login.fdb","sysdba","masterkey");
return true;//retorna verdadeiro
//se nao ele cai no catch
}
catch(Exception e) {
e.printStackTrace();//informa o erro caso exista de uma melhor forma
return false;//
}
}
public boolean desconectar()
{
try {
con.close();
return true;
}
catch (Exception e){
e.printStackTrace();//informa o erro caso existe de uma melhor forma
return false;
}
}
public boolean validarUsuario(String username, String password)
{
try{
//obtem um objeto Statement
st = con.createStatement();
rs = st.executeQuery("select * from usuario where username = '" + username + "' AND pass = '"+ password + "'");
if ( rs.next() ) // esse if é para verificar se existe 1 registro no rs(variavel acima que recebe o st.executeQuery)
{
st.close();
return true; // encontrou usuario
}
else
{
st.close();
return false; // nao encontrou usuario
}
}
catch(Exception e){
e.printStackTrace();
return false;
}
}
public String getFullname(){
return fullname;
}
/*
public static void main (String args[])
{
AcessoSistema as = new AcessoSistema();
if ( as.conectar() ) {
System.out.println("Conexao OK");
if ( as.validarUsuario("toy", "poodle"));
System.out.println("Alo Toy!!");
as.desconectar();
}
}
*/
}
e temos o servlet
import javax.servlet.*; // pacote para utilizar com o servlet
import javax.servlet.http.*; // pacote para utilizar com o servlet
import java.io.*;
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
//diz que o tipo de resposta será o texto html
response.setContentType("text/html");
AcessoSistema as = new AcessoSistema();
String resposta;
String usuario = request.getParameter("user");
String senha = request.getParameter("pass");
if ( as.conectar() ) {
System.out.println("Conexao OK");
if ( as.validarUsuario(usuario, senha))
resposta = "Olá, " + as.getFullname() + " !!!";
else
resposta = "Nome de usuário/senha inválidos!";
as.desconectar();
}
else
resposta = "Não foi possível conectar no BD!";
//obtem um objeto para montar a resposta
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<title>Acesso ao Sistema</title>");
out.println("</head>");
out.println("<body>");
out.println("<h2>" + resposta + "</h2>");
out.println("</body>");
out.println("</html>");
}
}