Ciò può accadere se non hai caricato il driver prima di effettuare la prima connessione in assoluto.
Class.forName("com.mysql.jdbc.Driver");
Per essere sicuro, il driver deve andare in /WEB-INF/lib , non in /WEB-INF . A proposito, hai alcuni buchi di SQL injection. Guarda PreparedStatement . Il finally può anche essere migliorato, come lo hai ora, il con non verrà mai chiuso quando rs.close() genera un'eccezione.