From 3cfece25e3c98c1ef204a94102a1e43b8fee604d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=A0s?= Date: Wed, 20 Mar 2024 17:20:27 +0100 Subject: [PATCH] draft(DevWeb): Rooting by servlet --- .../uppa/project/servlet/IndexServlet.java | 37 +++++++++++++++++++ .../uppa/project/servlet/LoginServlet.java | 17 +++++++-- .../uppa/project/servlet/MainMenuServlet.java | 37 +++++++++++++++++++ .../webapp/{ => WEB-INF}/css/dashboard.css | 0 .../main/webapp/{ => WEB-INF}/css/login.css | 0 .../src/main/webapp/{ => WEB-INF}/css/nav.css | 0 .../main/webapp/WEB-INF/forgottenPassword.jsp | 16 ++++++++ .../src/main/webapp/{ => WEB-INF}/js/login.js | 0 .../src/main/webapp/{ => WEB-INF}/login.jsp | 6 ++- .../{dashboard.jsp => WEB-INF/mainMenu.jsp} | 0 .../src/main/webapp/{ => WEB-INF}/navBar.jsp | 0 .../src/main/webapp/{ => WEB-INF}/newGame.jsp | 2 +- .../main/webapp/{ => WEB-INF}/register.jsp | 0 S2/DevWeb/Projet/src/main/webapp/index.jsp | 25 ------------- 14 files changed, 110 insertions(+), 30 deletions(-) create mode 100644 S2/DevWeb/Projet/src/main/java/uppa/project/servlet/IndexServlet.java create mode 100644 S2/DevWeb/Projet/src/main/java/uppa/project/servlet/MainMenuServlet.java rename S2/DevWeb/Projet/src/main/webapp/{ => WEB-INF}/css/dashboard.css (100%) rename S2/DevWeb/Projet/src/main/webapp/{ => WEB-INF}/css/login.css (100%) rename S2/DevWeb/Projet/src/main/webapp/{ => WEB-INF}/css/nav.css (100%) create mode 100644 S2/DevWeb/Projet/src/main/webapp/WEB-INF/forgottenPassword.jsp rename S2/DevWeb/Projet/src/main/webapp/{ => WEB-INF}/js/login.js (100%) rename S2/DevWeb/Projet/src/main/webapp/{ => WEB-INF}/login.jsp (78%) rename S2/DevWeb/Projet/src/main/webapp/{dashboard.jsp => WEB-INF/mainMenu.jsp} (100%) rename S2/DevWeb/Projet/src/main/webapp/{ => WEB-INF}/navBar.jsp (100%) rename S2/DevWeb/Projet/src/main/webapp/{ => WEB-INF}/newGame.jsp (92%) rename S2/DevWeb/Projet/src/main/webapp/{ => WEB-INF}/register.jsp (100%) delete mode 100644 S2/DevWeb/Projet/src/main/webapp/index.jsp diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/IndexServlet.java b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/IndexServlet.java new file mode 100644 index 0000000..ff5be4b --- /dev/null +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/IndexServlet.java @@ -0,0 +1,37 @@ +/* + * LoginServlet.java, 20/03/2024 + * UPPA M1 TI 2023-2024 + * Pas de copyright, aucun droits + */ + +package uppa.project.servlet; + +import com.google.gson.Gson; +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 java.io.IOException; + +@WebServlet(name = "indexServlet", value = "/") +public class IndexServlet extends HttpServlet { + + private final Gson gson = new Gson(); + + public void init() { + } + + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + + if (request.getSession().getAttribute("user") != null) { + response.sendRedirect(request.getContextPath() + "/dashboard"); + return; + } + + response.sendRedirect(request.getContextPath() + "/login"); + } + + public void destroy() { + } +} \ No newline at end of file diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/LoginServlet.java b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/LoginServlet.java index c983fbd..009fcdf 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/LoginServlet.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/LoginServlet.java @@ -1,9 +1,16 @@ +/* + * LoginServlet.java, 20/03/2024 + * UPPA M1 TI 2023-2024 + * Pas de copyright, aucun droits + */ + package uppa.project.servlet; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; @@ -15,9 +22,9 @@ import uppa.project.dao.DAOException; import uppa.project.dao.jpa.Game_JPA_DAO_Factory; import uppa.project.servlet.json.ErrorApi; import uppa.project.pojo.User; -import uppa.project.servlet.utils.RequestUtils; +import uppa.project.servlet.utils.HttpRequestUtils; -@WebServlet(name = "loginApiServlet", value = "/api/login") +@WebServlet(name = "loginServlet", value = "/login") public class LoginServlet extends HttpServlet { private final Gson gson = new Gson(); @@ -25,6 +32,10 @@ public class LoginServlet extends HttpServlet { public void init() { } + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response); + } + public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); @@ -33,7 +44,7 @@ public class LoginServlet extends HttpServlet { // Convert the string to a JSON object JsonObject jsonBody; try { - String requestBody = RequestUtils.getRequestBody(request); + String requestBody = HttpRequestUtils.getRequestBody(request); jsonBody = JsonParser.parseString(requestBody).getAsJsonObject(); } catch (Exception e) { int STATUS = 400; diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/MainMenuServlet.java b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/MainMenuServlet.java new file mode 100644 index 0000000..af8e62a --- /dev/null +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/MainMenuServlet.java @@ -0,0 +1,37 @@ +/* + * LoginServlet.java, 20/03/2024 + * UPPA M1 TI 2023-2024 + * Pas de copyright, aucun droits + */ + +package uppa.project.servlet; + +import com.google.gson.Gson; +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 java.io.IOException; + +@WebServlet(name = "indexServlet", value = "/") +public class MainMenuServlet extends HttpServlet { + + private final Gson gson = new Gson(); + + public void init() { + } + + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + + if (request.getSession().getAttribute("user") != null) { + request.getRequestDispatcher("/WEB-INF/mainMenu.jsp").forward(request, response); + return; + } + + response.sendRedirect(request.getContextPath() + "/login"); + } + + public void destroy() { + } +} \ No newline at end of file diff --git a/S2/DevWeb/Projet/src/main/webapp/css/dashboard.css b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/css/dashboard.css similarity index 100% rename from S2/DevWeb/Projet/src/main/webapp/css/dashboard.css rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/css/dashboard.css diff --git a/S2/DevWeb/Projet/src/main/webapp/css/login.css b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/css/login.css similarity index 100% rename from S2/DevWeb/Projet/src/main/webapp/css/login.css rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/css/login.css diff --git a/S2/DevWeb/Projet/src/main/webapp/css/nav.css b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/css/nav.css similarity index 100% rename from S2/DevWeb/Projet/src/main/webapp/css/nav.css rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/css/nav.css diff --git a/S2/DevWeb/Projet/src/main/webapp/WEB-INF/forgottenPassword.jsp b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/forgottenPassword.jsp new file mode 100644 index 0000000..2de168d --- /dev/null +++ b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/forgottenPassword.jsp @@ -0,0 +1,16 @@ +<%-- + Created by IntelliJ IDEA. + User: lucas + Date: 20/03/2024 + Time: 16:47 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + + + + diff --git a/S2/DevWeb/Projet/src/main/webapp/js/login.js b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/js/login.js similarity index 100% rename from S2/DevWeb/Projet/src/main/webapp/js/login.js rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/js/login.js diff --git a/S2/DevWeb/Projet/src/main/webapp/login.jsp b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/login.jsp similarity index 78% rename from S2/DevWeb/Projet/src/main/webapp/login.jsp rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/login.jsp index 9048134..3eab3c6 100644 --- a/S2/DevWeb/Projet/src/main/webapp/login.jsp +++ b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/login.jsp @@ -15,7 +15,10 @@

Login

-
+ @@ -28,6 +31,7 @@
+

Forgotten password?


Don't have an account? Register

diff --git a/S2/DevWeb/Projet/src/main/webapp/dashboard.jsp b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/mainMenu.jsp similarity index 100% rename from S2/DevWeb/Projet/src/main/webapp/dashboard.jsp rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/mainMenu.jsp diff --git a/S2/DevWeb/Projet/src/main/webapp/navBar.jsp b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/navBar.jsp similarity index 100% rename from S2/DevWeb/Projet/src/main/webapp/navBar.jsp rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/navBar.jsp diff --git a/S2/DevWeb/Projet/src/main/webapp/newGame.jsp b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/newGame.jsp similarity index 92% rename from S2/DevWeb/Projet/src/main/webapp/newGame.jsp rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/newGame.jsp index d440ca6..b5b86ee 100644 --- a/S2/DevWeb/Projet/src/main/webapp/newGame.jsp +++ b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/newGame.jsp @@ -34,7 +34,7 @@ Game won Invite - <%-- Récuperer les joueurs connecter et les lister sous forme de tableau--%> + <%-- Récuperer les joueurs connecter et les lister sous forme de tableau--%>
diff --git a/S2/DevWeb/Projet/src/main/webapp/register.jsp b/S2/DevWeb/Projet/src/main/webapp/WEB-INF/register.jsp similarity index 100% rename from S2/DevWeb/Projet/src/main/webapp/register.jsp rename to S2/DevWeb/Projet/src/main/webapp/WEB-INF/register.jsp diff --git a/S2/DevWeb/Projet/src/main/webapp/index.jsp b/S2/DevWeb/Projet/src/main/webapp/index.jsp deleted file mode 100644 index 23e6df5..0000000 --- a/S2/DevWeb/Projet/src/main/webapp/index.jsp +++ /dev/null @@ -1,25 +0,0 @@ -<%@ page import="static jdk.internal.net.http.common.Utils.dump" %> -<%@ page import="uppa.project.pojo.User" %> -<%@ page import="uppa.project.dao.jpa.Game_JPA_DAO_Factory" %> -<%@ page import="uppa.project.dao.DAO" %> -<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> - -<% - User user = (User) (request.getAttribute("session")); -%> - - - - JSP - Hello World - - - <% if (user == null) { %> - <%-- Pas de user connecté -> On envoi sur la page de connection --%> - - <% } else { - session.setAttribute("sessionUser", session); - %> - - <% } %> - -