[b]Boa tarde galera sou noob ainda no Java e gostaria de uma ajudinha.
Tenho uma classe (Conexao.java) que é uma Factory de conexão para qualquer banco, e tenho um servlet Logar.java que faz a validação do meu usuário e redireciona para a index.jsp (caso login não exista no banco) ou para logado.jsp (caso login exista no banco). Já procurei aqui no fórum mais não encontrei uma solução.
Verifiquei que meu ResultSet esta recebendo null, sendo que no metodo da classe Conexao esta sendo retornado um objeto do tipo ResultSet.
tai meus códigos-fonte.[/b]
Sendo que meu web.xml esta assim:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
<description>
Descritor do contexto de desenvolvimento.
</description>
<display-name>
Meu Primeiro Servlet
</display-name>
<!-- /////////////// -->
<servlet>
<servlet-name>MeuPrimeiroServlet</servlet-name>
<servlet-class>
meupacote.MeuPrimeiroServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MeuPrimeiroServlet</servlet-name>
<url-pattern>/MeuPrimeiroServlet</url-pattern>
</servlet-mapping>
<!-- /////////////// -->
<servlet>
<servlet-name>PdfAbrir</servlet-name>
<servlet-class>
meupacote.PdfAbrir
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PdfAbrir</servlet-name>
<url-pattern>/PdfAbrir</url-pattern>
</servlet-mapping>
<!-- ////////////// -->
<servlet>
<servlet-name>Logar</servlet-name>
<servlet-class>
meupacote.Logar
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Logar</servlet-name>
<url-pattern>/Logar</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>3</session-timeout>
</session-config>
</web-app>
<%--
Document : index
Created on : 23/09/2010, 23:36:10
Author : DW
--%>
<%@ page import="SQL.*" import="java.sql.ResultSet" %>
<%@page import="java.sql.SQLException" contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="cssLogin.css" type="text/css" />
<title>e-SIGA - Sistema de Gerenciamento Eletrônico de Processos Administrativo </title>
</head>
<body>
<div id="tudo">
<div id="logotipo"
></div> <!--Fim da div LOGOTIPO-->
<form name="login" method="post" id="login" action="Logar">
<div id="login_senha">
<label for="nome"> Login: </label>
<input type="text" name="usuario" id="usuario" maxlength="15" size="15" />
<label for="senha"> Senha:</label>
<input type="password" name="senha" id="senha" maxlength="15" size="15"/>
</div> <!--Fim da div LOGIN_SENHA-->
<div id="entrar">
<input type="submit" name="submit" value="Entrar"/>
</div> <!--Fim da div ENTRAR-->
</form>
</div> <!--Fim da div TUDO-->
<% String msg = (String) request.getAttribute("msg");
if (msg != null)
out.println(msg); //exibe a mensagem caso exista
%>
</body>
</html>
package SQL;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Conexao{
private String driver = "org.postgresql.Driver";
private String urlbanco = "jdbc:postgresql://localhost/esiga";
private String login = "postgres";
private String senha = "1234";
//private Connection conn;
private Connection objConexao;
private Statement objComando;
//public void main (String args []){
public Conexao(String banc){
if(banc.equals("postgres")){
driver = "org.postgresql.Driver";
urlbanco = "jdbc:postgresql://127.0.0.1/esiga";
login = "postgres";
senha = "1234";
}
if(banc.equals("mysql")){
driver = "oracle.jdbc.driver.OracleDriver";
urlbanco = "jdbc:postgresql://localhost/TISS";
login = "login";
senha = "senha";
}
if(banc.equals("oracle")){
driver = "oracle.jdbc.driver.OracleDriver";
urlbanco = "jdbc:oracle:thin:@localhost:1521:xe";
login = "login";
senha = "senha";
}
}
private Connection AbreConexaoBD(){
Connection objCon;
// Abrindo a conexão com o banco
try{
Class.forName(driver);
objCon = DriverManager.getConnection(urlbanco, login, senha);
//System.out.println ("Conexao com o banco de dados OK.");
return objCon;
}
catch(ClassNotFoundException cnf){
System.out.println ("Classe JDBC Driver nao encontrada.");
return null;
}
catch(SQLException sql){
System.out.println ("Erro ao se conectar com o banco de dados.");
return null;
}
catch(Exception e){
System.out.println (e.getMessage());
return null;
}
}
public ResultSet ExecutaSQL(String strSQL){
objConexao = AbreConexaoBD();
try{
objComando = objConexao.createStatement();
// Executando a query
ResultSet objRS = objComando.executeQuery(strSQL);
// Retornando o ResultSet
return objRS;
}
catch(Exception e){
System.out.println (e.getMessage());
return null;
}
}
public void FechaConexaoBD(){
try{
objComando.close();
objConexao.close();
}
catch(Exception e){
System.out.println ("Nao foi possivel fechar a conexao com o banco de dados." + e.getMessage());
}
}
}
package meupacote;
import SQL.Conexao;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Logar extends javax.servlet.http.HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String pagina = null;
response.setHeader("Cache-Control", "no-cache, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "Fri, 25 Dec 1980 00:00:00 GMT");
String usuario = request.getParameter("usuario");
String senha = request.getParameter("senha");
Conexao con = new Conexao("postgres");
ResultSet rs = con.ExecutaSQL("select count(*) from login where id_login = 'dw'");
//con.ExecutaSQL("select * from login where id_login = '"+
//request.getParameter("usuario")+"' and log_senha = '"+
//request.getParameter("senha")+"'");
try{
if(rs != null){
while (rs.next()){
if(usuario.equals(rs.getString("id_login")) && senha.equals(rs.getString("log_senha"))){
HttpSession sessao = request.getSession();
sessao.setAttribute("USER", usuario);
pagina = "logado.jsp";//request.getRequestDispatcher("/logado.jsp").forward(request, response);
}
//con.FechaConexaoBD();
}
rs.close();
}
// verifica se rs esta nulo
if(rs == null){pagina = "logado.jsp";}
else{
request.setAttribute("msg", "Usuário ou Senha inválidos");
pagina = "index.jsp";// request.getRequestDispatcher("/index.jsp").forward(request, response);
}
//response.sendRedirect(pagina);
con.FechaConexaoBD();
request.getRequestDispatcher("/"+pagina).forward(request, response);
}
catch(SQLException erroSQL){
System.out.println("Erro de conexao com o Banco de dados, erro = "+erroSQL);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {doGet(request, response);}
}