Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    31

    errore "Array index out of range: 0"

    ciao,
    questa catena di metodi mi restituisce l'errore "Array index out of range: 0".

    Una servlet riceve da un form username e password e chiama il metodo esisteAccount per vedere se è memorizzato sul database; in questo caso effettua il login:

    codice:
                     String username=request.getParameter("username");
            String password=request.getParameter("password");
    
    
            HttpSession session=request.getSession();
                        
            AccountDAO account=new AccountDAO();
            
    Account a=new Account(username,password);
    Account b=account.esisteAccount(a);
    if(username.equals(b.getNome()) && password.equals(b.getPassword()))
    {            
        session.setAttribute("aut", true);
        Cookie cookie= new Cookie("nome",username);
        cookie.setMaxAge(10);    
        response.addCookie(cookie);
        
        response.sendRedirect("riservata.jsp");
        
    }else
    {
        session.invalidate();
    
    
    Cookie cookie= new Cookie("nome","");
    cookie.setMaxAge(0);
    response.addCookie(cookie);
        
        response.sendRedirect("errore.html");
    }

    Il metodo esisteAccount sta nella classe AccountDAO, ed effettua la query:

    codice:
    public Account esisteAccount(Account account)    {
            String query = "SELECT * FROM Account WHERE nome = "+ account.getNome();
            Vector<Object> v =db.executeSelect(query, "Account");
            account = (Account)v.get(0);
            return account;
            
        }

    Il metodo executeSelect sta nella classe DBManager:

    codice:
    public Vector<Object> executeSelect(String sql, String type)
        {
            startConnection();
            Vector<Object> v = new Vector<Object>();
            Statement st;
            try 
            {
                st = conn.createStatement();
            
                ResultSet rs = st.executeQuery(sql);        
                while( rs.next() )
                {
                    if ( type.equals("Account") )
                    {
                        Account u;
                        u = new Account();
                        u.setNome( rs.getString("Nome") );
                        u.setPassword( rs.getString("Password") );
                        v.add(u);
                    }
                }
            } 
            catch (SQLException e) 
            {
                e.printStackTrace();
            }
            
            closeConnection();
            return v;
        }

    So che l'errore sta nella servlet nelle righe

    codice:
    Account a=new Account(username,password);
    Account b=account.esisteAccount(a);

    ma non capisco il perchè: il risultato della query è di tipo Account e lo sto assegnando a un oggetto Account...
    Ultima modifica di LeleFT; 21-04-2015 a 08:43 Motivo: Aggiunti i tag CODE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.