Lasciami dire che tutti gli errori che ti sono venuti fuori sono errori banali, quindi un cosiglio che ti do è di darti una ripassata alle basi del linguaggio.
Il primo errore è dato dal metodo
Ovviamente se l'username è sbagliato (e qui che dovresti cmq controllare anche la psw) il vettore che viene fuori dal executeSelect è vuoto, quindi quando cerchi di accedere alla prima posizione di tale vettore (v.get(0)) ti viene sollevata un ArrayIndexOfBound in quanto il vettore è vuoto.codice:public Operatore getOperatore(String username) { Operatore res = new Operatore(); String query = "SELECT * FROM operatore WHERE username = "+username; Vector<Object> v =db.executeSelect(query, "Operatore"); res = (Operatore)v.get(0); return res; }
Per il fatto che non ti funzioni il foward verso una data pagina in base al ruolo il problema sta qui:
Il primo if imponi che il ruolo dell'operatore che sta effettuando il login si uguale ad un "fantomatico" parametro del form "ruolo", ovviamente questa uguglianza non ci sarà mai in quanto il parametro non esiste nel form.codice:String categoria = request.getParameter("ruolo"); if (o.getRuolo().equals(request.getParameter("ruolo"))){ if ( categoria.equals("Amministratore") )
Stessa cosa vale per categoria.

Rispondi quotando