From 98d5867d49a58beb4075795b34d629d44962512c Mon Sep 17 00:00:00 2001 From: Maxime Gosselin~ <maxime.gosselin.etu@univ-lille.fr> Date: Mon, 3 Mar 2025 16:36:37 +0100 Subject: [PATCH] Envoie des messages fonctionnels --- WEB-INF/src/controleur/MessageController.java | 42 +++++++++++++++++++ WEB-INF/vue/chat.jsp | 6 +-- 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 WEB-INF/src/controleur/MessageController.java diff --git a/WEB-INF/src/controleur/MessageController.java b/WEB-INF/src/controleur/MessageController.java new file mode 100644 index 0000000..998bc4e --- /dev/null +++ b/WEB-INF/src/controleur/MessageController.java @@ -0,0 +1,42 @@ +package controleur; + +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import modele.dao.DaoMessage; +import modele.dto.Message; + +import java.io.IOException; +import java.time.LocalDateTime; + +@WebServlet("/message") +public class MessageController extends HttpServlet { + @Override + protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + String username; + // vérification de l'authentification + if((username = (String) req.getSession().getAttribute("username")) == null){ + resp.sendRedirect("index.html"); + return ; + } + String action = (String) req.getParameter("action"); + String vue; + + switch (action){ + case "send": + String contenue = req.getParameter("message"); + DaoMessage daoMessage = new DaoMessage(); + int idThread = Integer.parseInt(req.getParameter("thread")); + Message message = new Message(0, username, idThread, contenue, LocalDateTime.now()); + daoMessage.create(message); + vue = "thread?action=open&id=" + idThread; + break; + default: + vue = ""; + } + req.getRequestDispatcher(vue).forward(req, resp); + + } +} diff --git a/WEB-INF/vue/chat.jsp b/WEB-INF/vue/chat.jsp index 111d44b..49bbc77 100644 --- a/WEB-INF/vue/chat.jsp +++ b/WEB-INF/vue/chat.jsp @@ -106,12 +106,12 @@ <% } } %> <div id="input" class="fixed-bottom p-2 bg-white border-top border-2 border-dark"> - <form class="input-group mb-3 container-lg" method="post" action="#"> - <a class="input-group-text link-primary" href="chat.html"> + <form class="input-group mb-3 container-lg" method="post" action="message?action=send&thread=<%=id%>"> + <a class="input-group-text link-primary" href="thread?action=open&id=<%=id %>"> <i class="bi-arrow-clockwise"></i> </a> <textarea name="message" class="form-control" placeholder="Entrez votre message ici."></textarea> - <input type="submit" class="input-group-text"> + <input type="submit" class="input-group-text" value="Envoyer"> </form> </div> </div> -- GitLab