Durante il fine settimana ho continuato a lavorarci su.
Ho deciso di cambiare il metodo getOperatore della classe OperatoreDAO:
Quindi mi da true se trova una corrispondenza tra username, password e ruoli inseriti nel form. Può essere una soluzione alternativa?codice:public boolean getOperatore(String username, String password, String ruolo) { int res; String query = "SELECT * FROM operatore WHERE username = '"+username+"'AND password = '"+password+"' AND ruolo = '"+ruolo+"'"; Vector<Object> v =db.executeSelect(query, "Count"); res = (Integer)v.get(0); if(res>0) return true; else return false; }
Ho modificato anche la servlet Login.java. Ho incluso anche gli attributi della sessione.
A questo punto riavviando tomcat, e provando a fare il login, sia con le credenziali corrette che con quelle errate, non mi da errore su un browser, ma mi rimanda ad una pagina bianca. Sulla console mi da ancora un ArrayIndexOutOfBoundsException.codice:package myServlets; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import myBeans.*; /** * Servlet implementation class Login */ @WebServlet("/Login") public class Login extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Login() { super(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { performTask(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { performTask(request, response); } public void performTask (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String ruolo = request.getParameter("ruolo"); String username = request.getParameter("username"); String password = request.getParameter("password"); String jspPage=""; OperatoreDAO o = new OperatoreDAO(); HttpSession session = request.getSession(true); session.setAttribute("Ruolo", ruolo); session.setAttribute("Username", username); try{ if (o.getOperatore(username, password, ruolo)){ if ( ruolo.equals("Amministratore") ) { jspPage = "jsp/adminhome.jsp"; } else if ( ruolo.equals("Impiegato") ) { jspPage = "jsp/emphome.jsp"; } } else { jspPage = "jsp/errore.jsp"; } request.getRequestDispatcher( jspPage ).forward(request,response); } catch(Throwable theException) { theException.printStackTrace(); } } }

Rispondi quotando
