Verificação no Banco

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!!!

:slight_smile:

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,