Może się tak zdarzyć, jeśli nie załadowałeś sterownika przed nawiązaniem pierwszego połączenia.
Class.forName("com.mysql.jdbc.Driver");
Aby mieć pewność, sterownik musi wejść do /WEB-INF/lib , a nie w /WEB-INF . Nawiasem mówiąc, masz tam kilka dziur wstrzykiwania SQL. Spójrz na PreparedStatement . finally można również ulepszyć, tak jak masz to teraz, con nigdy nie zostanie zamknięty, gdy rs.close() zgłasza wyjątek.