Quando tento compilar o sistema acusa esse erro:
org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 20
17:
18:
19:
20: if (v.verificarLogin(u) == true) { // True se login OK, False se login NOK
21: // usuario existe
22: session.setAttribute(“u”, u);
23: u.setLogado(true);
Alguém sabe me dizer o que está acontecendo.
essa parte do sistema está num método chamado verificarLogin que mostro a seguir:
public static boolean verificarLogin(UsuarioBean u) throws IOException
{
String strSQL = “”;
Statement stm;
UsuarioBean uBean;
String strLogin = u.getLogin();
String strSenha = u.getSenha();
uBean = new UsuarioBean();
try
{
Connection conn = Conexao.getConnection(); //obtendo conexão
stm = conn.createStatement();
strSQL = "SELECT login, senha from usuario WHERE login = '" + strLogin + "' AND senha = '"+ strSenha + "'" ;
System.out.println(strSQL);
ResultSet rs = stm.executeQuery(strSQL); //resultado de uma consulta (executeQuery) enviado para um objeto resultSet
if (rs.next())
{
uBean.setLogado(true);
}
rs.close();
stm.close();
}
catch (Exception e)
{
System.out.println("teste" + e.getMessage());
}
return u.getLogado();
}
E a conexão está feita em outro método desta maneira:
public static Connection getConnection()
{
String url = “xxxxxxxxx”;
String user = “yyyyyyy”;
String password = “zzzzzzzz”;
if (m_Conexao == null)
{
try
{
Class.forName(“org.gjt.mm.mysql.Driver”);
m_Conexao = DriverManager.getConnection(url,user,password);
}
catch (Exception e)
{
e.printStackTrace();
}
}
return m_Conexao;
}
}
O que acham que está acontecendo?
um problema é que vc não deve ter inicializado sua variável logado do UsuarioBean vazia e como vc está retornando u.getLogado() em vez de uBean.getLogado() deve estar dando erro por isso…
Não sei se é assim sua class usuario mas se for seu boolean está vasio:
[code]public class UsuarioBean {
String login;
String senha;
private static boolean logado;
//get em set
}[/code]
no seu metodo
public static boolean verificarLogin(UsuarioBean u) throws IOException
...
//vc faz
if (rs.next())
{
uBean.setLogado(true);
}
...
//e no seu result vc chama u que é o UsuarioBean que vc passou no metodo e ele pode estar vazio
return u.getLogado();
u != de uBean certo?
ve primeiro isso depois printa o erro completo com o CODE do editor…rs
org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 20
aguardo
e uma dica de logica:
//isso
if (v.verificarLogin(u) == true) { // True se login OK, False se login NOK
//pode ser feito assim tbm
if (v.verificarLogin(u)) // uma vez que ele só pode retornar true ou false
// e isso
if (rs.next())
{
uBean.setLogado(true);
}
//pode ser feito assim tbm
if (rs.next())
{
return true;
}
return false;
realmente o u não estava inicializado, inicializei e mudou o erro.
o erro é esse agora:
Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
root cause
java.lang.NullPointerException
persistencia.UsuarioBD.verificarLogin(UsuarioBD.java:349)
org.apache.jsp.login_jsp._jspService(login_jsp.java:72)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
a unica coisa que posso te dizer variavel nula…
pode ser seus login senha que são String, pode ser seu objeto…
vc tem que verificar se ele são nulo
o local do erro esta aki…
persistencia.UsuarioBD.verificarLogin(UsuarioBD.java:349)
boa sorte