Итак, вы создаете соединение с базой данных непосредственно в JSP, включая жесткое кодирование ваших учетных данных в представлении - вы никогда не должны этого делать!Тогда вы не заключили код в обработку каких-либо исключений, поэтому вы получили ServletException в качестве общего сообщения об ошибке, а реальная причина неизвестна - контейнер сервлетов упаковывает JSP в блок try ... catch, перехватывает любую ошибку и выбрасываетServletException.
Я также не вижу, где вы закрываете соединение, но вы закрываете, не так ли?
Во-первых, ставить учетные данные в представление очень плохо, во-вторых, вы никогда не знаете, сколько людей получит доступ к вашей странице, поэтому вы, вероятно, переполните соединения с базой данных.Поэтому прежде всего поместите информацию о подключении к вашей базе данных в JNDI, используйте пул соединений вместо того, чтобы создавать соединение самостоятельно (тем не менее, вам всегда нужно будет закрывать пул соединений, чтобы соединения возвращались в пул, за исключением случаев использования одного общего соединения, которое незакрытие соединений не так уж и неправильно) и взять под контроль ваши ошибки, чтобы вы могли видеть, что происходит, если что-то пойдет не так.их.Здесь вы найдете больше: Tomcat JNDI HowTo