Как я могу напечатать messages2 в div class = chat ?
Сообщение состоит из:
- Id
- Текст
Я не могу прочитать файл JSON, который сервлет отправляет мне с моей функцией JQuery.
Я новичок в JQuery, и этот скрипт не мой, но я использовал его, потому что он работает для отправки сообщений сервелту.
Это моя форма, где я возьму текст с ввода.
home.jsp
<form method="post" id="messageForm" enctype="multipart/form-data">
<div class="chat">
//where i will print the array
</div>
<div class="send">
<div class="text-message-container">
<input type="text" name="testMessage" class="text-message" id="toSend">
<button type="submit" class="send-message" onclick="addMessage();" ><img src="img/send1.png" class="img-send"></button>
</div>
</div>
</form>
<script>
function addMessage(){
if(window.XMLHttpRequest) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange=function() {
if (xhttp.readyState === 4 && xhttp.status === 200) {
var myArr = JSON.parse(xhttp.responseText);
}
}
xhttp.open("POST","messageServlet",true);
var formData = new FormData(document.getElementById('messageForm'));
xhttp.send(formData);
}
else console.log('not working');
} </script>
Это мой сервлет:
@WebServlet(name = "messageServlet", urlPatterns = {"/messageServlet"})
@MultipartConfig
public class messageServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String msg = req.getParameter("testMessage");
SessionFactory factory = session.getSessionFactory();
Session s = factory.openSession();
Message m = new Message();
m.setMessage(msg);
s.beginTransaction();
s.save(m);
s.getTransaction().commit();
List<Message> messages2 = s.createQuery("From Message").list();
String json = new Gson().toJson(messages2);
resp.setContentType("application/json");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().write(json);
}