Erro no arquivo JSP problemas ao buscar e gravar dados no banco

6 respostas
T

Boa tarde!

Eu hospedei um site, ele funciona e tal, abre o index só que na hora que tento fazer login ou cadastrar acontece isso:

org.apache.jasper.JasperException: An exception occurred processing JSP page /verifica.jsp at line 20

17: 		String login = request.getParameter(login); 		

18: 		String senha = request.getParameter(senha);		

19:

20: 		boolean status = us.verificarUsuario(login, senha);
Stacktrace:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.awt.HeadlessException

java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:197)

java.awt.Window.(Window.java:534)

java.awt.Frame.(Frame.java:420)

java.awt.Frame.(Frame.java:385)

javax.swing.SwingUtilities$SharedOwnerFrame.(SwingUtilities.java:1756)

javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1831)

javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1699)

javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:864)

javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:668)

javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:639)

dao.DaoUsuario.imprimeErro(DaoUsuario.java:171)

dao.DaoUsuario.conectar(DaoUsuario.java:153)

dao.DaoUsuario.verificarUsuario(DaoUsuario.java:212)

org.apache.jsp.verifica_jsp._jspService(verifica_jsp.java:83)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

engraçado que no meu toomcat funciona normalmente, eu pesquiso e gravo no banco numa boa!

se puderem me ajudar fico muito grato…

6 Respostas

A

posta, entre as tags [code][/code] (sem o asterisco) o seu código do us.verificarUsuario(login, senha);, dessa forma fica muito dificil saber qual o erro, pelo que eu entendi do stacktrace, você está tentando invocar um JFrame com JOptionPane dentro de um jsp, e as bibliotecas do tomcat não suportam swing.

T

Bom dia e obrigado pela sua resposta andre.froes!

o código é esse aqui…

public boolean verificarUsuario(String login, String senha){
		
			conectar();		
			
			String sql = "select * from usuario where usu_login = '"+login+"' and usu_senha = '"+senha+"'";
			try{
				
				ResultSet rs = comando.executeQuery(sql);
				
				if(rs.next()){
					
					resultado = true;
					login = rs.getString("usu_login"); 				
	
				}
					
			}catch (Exception e){} 
			
			
			return resultado; 
		}
A

Posta o seu DaoUsuario, o erro possivelmente está nele:

dao.DaoUsuario.imprimeErro(DaoUsuario.java:171)
dao.DaoUsuario.conectar(DaoUsuario.java:153)
dao.DaoUsuario.verificarUsuario(DaoUsuario.java:212)
T
package dao;  
 
import java.sql.Connection;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
import java.util.ArrayList;
import java.util.Vector;  
import javax.swing.JOptionPane;  
import modelo.Usuario;  
import dao.banco.ConFactory;

  
public class DaoUsuario {  
	

	public String login="";
	Integer codigo_tipo = 0;

	public boolean resultado = false;
	
	public boolean resultado_verificacao = false; 
	public boolean resultado_recuperacao = false; 

	private final String URL = "jdbc:mysql://localhost/matematica",  NOME = "root", SENHA = "897654";  
  
   private Connection con;  
   private Statement comando;  
   
   //esta função está OK
   public void apagar(Integer codigo) {  
      conectar();  
      try {  
    	  //delete todos os usuarios des de que usu_codigo igual usu_codigo
         comando.executeUpdate("delete from usuario where usu_codigo = '" + codigo  + "';");  
      } catch (SQLException e) {  
         imprimeErro("Erro ao apagar usuario", e.getMessage());  
      } finally {  
         fechar();  
      }  
   }  
  
   public Vector<Usuario> buscarTodos() {  
      conectar();  
      Vector<Usuario> resultados = new Vector<Usuario>();  
      ResultSet rs;  
      try {  
         rs = comando.executeQuery("select * from usuario");  
        
         while (rs.next()){  
        	 Usuario temp = new Usuario();  

        	 	temp.setUsu_codigo(rs.getInt("usu_codigo"));  
	            temp.setUsu_login(rs.getString("usu_login"));  
	            temp.setUsu_email(rs.getString("usu_email"));  
	            temp.setUsu_senha(rs.getString("usu_senha"));  
	            temp.setUsu_chave(rs.getString("usu_chave"));  
	            resultados.add(temp);  
         }  
         return resultados; 
         
      }catch (SQLException e){ 
    	  
         imprimeErro("Erro ao buscar usuario", e.getMessage());  
         return null;  
      }  
   }  
  

   public void atualizar(Usuario usuario) {  
      conectar();  
      String com = "update usuario set usu_login = '" + usuario.getUsu_login()  
            + "', usu_email =" + usuario.getUsu_email() + ", usu_senha = '"  
            + usuario.getUsu_senha() + "', usu_chave ='" + usuario.getUsu_chave()  
            + "' where  usu_codigo = '" + usuario.getUsu_codigo() + "';";  
      
      System.out.println("Atualizado!");  
      
      try {  
         comando.executeUpdate(com);  
      } catch (SQLException e) {  
         e.printStackTrace();  
      } finally {  
         fechar();  
      }  
   }  
   
   public Vector<Usuario> buscar(String palavra) {  
      conectar();  
      Vector<Usuario> resultados = new Vector<Usuario>();  
      ResultSet rs;  
      try {  
        
    	  rs = comando.executeQuery("select * from usuario where usu_login like '"  + palavra + "%';");  
         
         while (rs.next()) {  
        	 
            Usuario temp = new Usuario();  
            

            temp.setUsu_codigo(rs.getInt("usu_codigo"));  
            temp.setUsu_login(rs.getString("usu_login"));  
            temp.setUsu_email(rs.getString("usu_email"));  
            temp.setUsu_senha(rs.getString("usu_senha"));  
            temp.setUsu_chave(rs.getString("usu_chave"));  
            
            resultados.add(temp);  
         }  
         return resultados;  
      } catch (SQLException e) {  
         imprimeErro("Erro ao buscar usuario", e.getMessage());  
         return null;  
      }  
  
   }  
  

   public String insere(Usuario usuario){
      conectar();  

      if(verificaCadastro(usuario.getUsu_login(), usuario.getUsu_email()) == false){ //se o usuário não existe no banco
	      
		      try {  

		    	  comando.executeUpdate("insert into usuario (usu_login, usu_email, usu_senha, usu_chave, usu_codtipo) values ('"+usuario.getUsu_login()+"','"+usuario.getUsu_email()+"','"+usuario.getUsu_senha()+"','"+usuario.getUsu_chave()+"',"+1+");");
		         	System.out.println("Inserida!"); 
		         	
		      } catch (SQLException e) {  
		         imprimeErro("Erro ao inserir usuario", e.getMessage());  
		      } finally {  
		         fechar();  
		      } 
		    
		      return "ok"; 
	      }else{
	    	  return "erro"; 
	      }
   }
  

   private void conectar() {  
      try {  
         con = ConFactory.conexao(URL, NOME, SENHA, ConFactory.MYSQL);  
         comando = con.createStatement(); 
         
         System.out.println("Conectado!");  
         
      } catch (ClassNotFoundException e) {  
         imprimeErro("Erro ao carregar o driver", e.getMessage());  
      } catch (SQLException e) {  
         imprimeErro("Erro ao conectar", e.getMessage());  
      }  
   }  
  

   private void fechar() {  
      try {  
         comando.close();  
         con.close();  
         System.out.println("Conexão Fechada");  
      } catch (SQLException e) {  
         imprimeErro("Erro ao fechar conexão", e.getMessage());  
      }  
   }  
  

   private void imprimeErro(String msg, String msgErro) {  
      JOptionPane.showMessageDialog(null, msg, "Erro crítico", 0);  
      System.err.println(msg);  
      System.out.println(msgErro);  
      System.exit(0);  
   }  
 

	public Vector<Usuario> buscarUsuario() {  
	    conectar();  
	    Vector<Usuario> resultados = new Vector<Usuario>();  
	    ResultSet rs;  
	    try {  
	       rs = comando.executeQuery("select * from usuario ");  
	      
	       while (rs.next()){   
	          
	      	 Usuario temp = new Usuario();  
	      	 

	      	 temp.setUsu_codigo(rs.getInt("usu_codigo"));  
	          temp.setUsu_login(rs.getString("usu_login"));  
	          temp.setUsu_email(rs.getString("usu_email"));  
	          temp.setUsu_senha(rs.getString("usu_senha"));  
	          temp.setUsu_chave(rs.getString("usu_chave"));  
	          resultados.add(temp);  
	       }  
	       return resultados; 
	       
	    }catch (SQLException e){ 
	  	  
	       imprimeErro("Erro ao buscar usuario", e.getMessage());  
	       return null;  
	    }   
	    
	 }



	
	
	
	public boolean verificarUsuario(String login, String senha){
		
			conectar();		
			
			String sql = "select * from usuario where usu_login = '"+login+"' and usu_senha = '"+senha+"'";
			try{
				
				ResultSet rs = comando.executeQuery(sql);
				
				if(rs.next()){
					
					resultado = true;
					login = rs.getString("usu_login"); 				
	
				}
					
			}catch (Exception e){} 
			
			
			return resultado; 
		}						





	public ArrayList<String> RecuperaTodosDados(String email, String chave) {  
	    conectar(); 
	    
	    ArrayList<String> lista = new ArrayList<String>();
	    
	    try {  
	      
	    	ResultSet rs = comando.executeQuery("select usu_login, usu_email, usu_senha, usu_chave from usuario where usu_email = '"+email+"' and usu_chave = '"+chave+"';");  
	      
	       if (rs.next()){  
	         
	      	  lista.add(rs.getString("usu_login"));  
	      	  lista.add(rs.getString("usu_senha"));  
	      	  lista.add(rs.getString("usu_email"));  
	      	  lista.add(rs.getString("usu_chave"));  
	       }  
	  
	      return lista; 
	
	    }catch (SQLException e){ 
	  	  
	       
	       return null;  
	    }   
	    
	 }



	
	
	
	public boolean verificaCadastro(String login, String email){
		conectar();
		
		String login_pego = "select usu_login from usuario where usu_login = '"+login+"';";
		String email_pego = "select usu_email from usuario where usu_email = '"+email+"';";
				
		try{
			
			ResultSet rs1 = comando.executeQuery(login_pego);
			
			if(rs1.next()){
				
				resultado_verificacao = true;

			}
			
		}catch (Exception e){}
		
		try{
		
			ResultSet rs2 = comando.executeQuery(email_pego);
			
			if(rs2.next()){
				
				resultado_verificacao = true;

			}
			
		}catch (Exception e){}
		
		return resultado_verificacao; 	
	}								
	


	public Integer CodigoTipoUsuario(String login){  
	    conectar(); 
	       
	    try {  
	      
	    	ResultSet rs = comando.executeQuery("select usu_codtipo from usuario where usu_login = '"+login+"';");  
	      
	       if (rs.next()){  
	
	    	   codigo_tipo  = rs.getInt("usu_codtipo");
	       }  
	  
	       return codigo_tipo; 
	       		
	       
	    }catch (SQLException e){ 
	  	  
	       imprimeErro("Erro ao buscar status do usuario", e.getMessage());  
	       return null;  
	    }   
	    
	 }

}
A

você não pode utilizar componentes swing dentro da tua página, no metodo imprimeErro você está chamando JOptionPanel que é um componente swing:

JOptionPane.showMessageDialog(null, msg, "Erro crítico", 0);
T

[quote=andre.froes]você não pode utilizar componentes swing dentro da tua página, no metodo imprimeErro você está chamando JOptionPanel que é um componente swing:

JOptionPane.showMessageDialog(null, msg, "Erro crítico", 0);

eu não sabia, vou altetar o código então !!

obrigado pela ajuda!!

Criado 17 de junho de 2012
Ultima resposta 18 de jun. de 2012
Respostas 6
Participantes 2