Cela peut arriver si vous n'avez pas chargé le pilote avant d'établir la toute première connexion.
Class.forName("com.mysql.jdbc.Driver");
Pour être sûr, le pilote doit aller dans /WEB-INF/lib , pas dans /WEB-INF . Vous avez là d'ailleurs quelques trous d'injection SQL. Regardez PreparedStatement . Le finally peut également être amélioré, comme vous l'avez maintenant, le con ne sera jamais fermé lorsque rs.close() lève une exception.