Вы не должны объединять значения в строку запроса. Это делает ваш код уязвимым для SQL внедрения или ошибок, таких как забывание кавычек вокруг значений. Проблема специфика c в вашем случае заключается в том, что у вас есть кавычка перед первым значением и кавычка после последнего значения, что делает его одним значением вместо трех отдельных значений.
Однако вместо исправления Непосредственная проблема, добавив эти пропущенные кавычки, вы должны перейти к использованию подготовленного выражения:
try (PreparedStatement pstmt = connection.prepareStatement(
"INSERT INTO messages(message_sender,message_reciever,message_body) VALUES(?, ?, ?)") {
pstmt.setString(1, sender_id);
pstmt.setString(2, reciever_id);
pstmt.setString(3, message);
pstmt.executeUpdate();
}
Кроме того, вы действительно не должны помещать доступ к данным в JSP. Он принадлежит к DAO или классу обслуживания.