oi gente
estou tentando conferir se o usuario que está na sessao também está registrado no banco
estou usando o metodo abaixo:
METODO
[code]public boolean validarLogin(Client c) {
CadastroService cs = new CadastroService();
try {
c = new Client();
List<Client> lista = cs.mostrarRegistrosLogin();
if(lista.contains(c.getNome())){
return true;
}else{
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}[/code]
que está retornando o seguinte erro:
[code]org.postgresql.util.PSQLException: ERROR: relation "cliente" does not exist
Position: 15
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2077)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1810)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:498)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
at dao.CadastroDAO.MostrandoLogin(CadastroDAO.java:77)
at negocio.CadastroService.mostrarRegistrosLogin(CadastroService.java:29)
at Controller.LoginService.validarLogin(LoginService.java:15)
at Controller.TrataloginServ.doBruno(TrataloginServ.java:51)
at Controller.TrataloginServ.doPost(TrataloginServ.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
May 2, 2011 10:10:30 AM org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
May 2, 2011 10:10:30 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/Cesar] registered the JDBC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
[/code]
algume pode me ajudar a fazer esta verificação
grato
Kettle
Parece que o erro está ocorrendo ao buscar os registros no banco nessa linha…
List<Client> lista = cs.mostrarRegistrosLogin();
Como está implementado seu método cs.mostrarRegistrosLogin(); ???
[quote=Pentaho]oi gente
estou tentando conferir se o usuario que está na sessao também está registrado no banco
estou usando o metodo abaixo:
METODO
[code]public boolean validarLogin(Client c) {
CadastroService cs = new CadastroService();
try {
c = new Client();
List<Client> lista = cs.mostrarRegistrosLogin();
if(lista.contains(c.getNome())){
return true;
}else{
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}[/code]
que está retornando o seguinte erro:
[code]org.postgresql.util.PSQLException: ERROR: relation "cliente" does not exist
Position: 15
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2077)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1810)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:498)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
at dao.CadastroDAO.MostrandoLogin(CadastroDAO.java:77)
at negocio.CadastroService.mostrarRegistrosLogin(CadastroService.java:29)
at Controller.LoginService.validarLogin(LoginService.java:15)
at Controller.TrataloginServ.doBruno(TrataloginServ.java:51)
at Controller.TrataloginServ.doPost(TrataloginServ.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
May 2, 2011 10:10:30 AM org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
May 2, 2011 10:10:30 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/Cesar] registered the JDBC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
[/code]
algume pode me ajudar a fazer esta verificação
grato
Kettle
[/quote]
code]org.postgresql.util.PSQLException: ERROR: relation “cliente” does not exist
Position: 15
O erro esta aqui, esta dizendo que não existe essa relação cliente, coluna cliente no seu banco!!!
Seu Client está implementando equals para o atributo nome?
Esse erro está dizendo que a tabela/relação “cliente” não existe para sua conexão. Cheque seu banco, seu SQL.
org.postgresql.util.PSQLException: ERROR: relation "cliente" does not exist
De qualquer maneira seria melhor seu CadastroService oferecer um método validarLogin. E mesmo nessa abordagem talvez seria melhor utilizar como parametro o Client recebido para restringir o resultado.
olha aí meu DAO e meu Service
meu bean só tem dois atributos nome e senha
igual ao banco…
não entendo esse erro
[code] public List MostrandoLogin() throws Exception{
List<Client> cdc = new ArrayList<Client>();
Connection conn = new Conn().conectar();
String sql = "select * from cliente order by nome";
PreparedStatement stm = conn.prepareStatement(sql);
ResultSet rs = stm.executeQuery();
while (rs.next()) {
Client c = new Client();
c.setNome(rs.getString("nome"));
c.setSenha(rs.getString("senha"));
cdc.add(c);
}
return cdc;
}[/code]
public List<Client> mostrarRegistrosLogin() throws Exception {
CadastroDAO dao = new CadastroDAO();
return dao.MostrandoLogin();
}
[quote=Pentaho]olha aí meu DAO e meu Service
meu bean só tem dois atributos nome e senha
igual ao banco…
não entendo esse erro
[code] public List MostrandoLogin() throws Exception{
List<Client> cdc = new ArrayList<Client>();
Connection conn = new Conn().conectar();
String sql = "select * from cliente"; // Tente dessa forma apenas referenciando a tabela cliente sem coluna!!!!!
PreparedStatement stm = conn.prepareStatement(sql);
ResultSet rs = stm.executeQuery();
while (rs.next()) {
Client c = new Client();
c.setNome(rs.getString("nome"));
c.setSenha(rs.getString("senha"));
cdc.add(c);
}
return cdc;
}[/code]
public List<Client> mostrarRegistrosLogin() throws Exception {
CadastroDAO dao = new CadastroDAO();
return dao.MostrandoLogin();
}
[/quote]
opa valeu amigao
ele ja encontra a tabela
porem há algo que nao está funcionando
pois só pode entrar em sessao quem o login estiver no banco
o erro está provavelmente neste metodo do servlet TrataLogin
[code]private void doBruno(HttpServletRequest request,
HttpServletResponse response) {
try{
Client c = new Client();
c.setNome(request.getParameter("txtUser"));
c.setSenha(request.getParameter("txtPass"));
//encripta(c.getSenha());
if(c != null || service.validarLogin(c)){
HttpSession sessao = request.getSession(true);
sessao.setAttribute("sessao", c);
response.sendRedirect("/Cesar/index.jsp?menu=1");
}else{
response.sendRedirect("/Cesar/index.jsp?menu=3");
System.out.println("que tu ta querendo");
}
}
catch(Exception e){
e.printStackTrace();
}
}[/code]
Bom amigo nesse caso não consigo ajudar!!!
Dê uma pesquisada na implementação da Filter em sua classe…
Assim que esteja funcinando, vc deve mapear um filter no seu web.xml para que ele chame toda vez e verifique se existe o usuário na sessão.
Se não for essa sua dúvida, especifique o que realmente você precisa…
abs,