diff --git a/WEB-INF/classes/DAO/IngredientDAO.class b/WEB-INF/classes/DAO/IngredientDAO.class new file mode 100644 index 0000000000000000000000000000000000000000..2073d03de9bb37e6a7cd58ea65060e7608c51e58 Binary files /dev/null and b/WEB-INF/classes/DAO/IngredientDAO.class differ diff --git a/WEB-INF/classes/Exceptions/IngredientDAOException.class b/WEB-INF/classes/Exceptions/IngredientDAOException.class new file mode 100644 index 0000000000000000000000000000000000000000..f45a83e853efed4be986bb3fda1d2b83a3925157 Binary files /dev/null and b/WEB-INF/classes/Exceptions/IngredientDAOException.class differ diff --git a/WEB-INF/classes/Main.class b/WEB-INF/classes/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..22f4d6e89f26168448a00f6ad4ebb295c01db701 Binary files /dev/null and b/WEB-INF/classes/Main.class differ diff --git a/WEB-INF/classes/POJO/Ingredient.class b/WEB-INF/classes/POJO/Ingredient.class new file mode 100644 index 0000000000000000000000000000000000000000..09f6f67448ef8e680d26dcac8eca13176543d125 Binary files /dev/null and b/WEB-INF/classes/POJO/Ingredient.class differ diff --git a/WEB-INF/classes/POJO/Price.class b/WEB-INF/classes/POJO/Price.class new file mode 100644 index 0000000000000000000000000000000000000000..3bbde483f843d57f0c49e1a6244868a2369a32ef Binary files /dev/null and b/WEB-INF/classes/POJO/Price.class differ diff --git a/WEB-INF/classes/Servlets/DatabaseTestServlet.class b/WEB-INF/classes/Servlets/DatabaseTestServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..d21ff282c8d459621d98bb8e0239a79288baa4b6 Binary files /dev/null and b/WEB-INF/classes/Servlets/DatabaseTestServlet.class differ diff --git a/WEB-INF/classes/Servlets/IngredientServlet.class b/WEB-INF/classes/Servlets/IngredientServlet.class new file mode 100644 index 0000000000000000000000000000000000000000..15c58c31bd89dd4d79c85982d35f5d71798ea859 Binary files /dev/null and b/WEB-INF/classes/Servlets/IngredientServlet.class differ diff --git a/WEB-INF/jsp/result.jsp b/WEB-INF/jsp/result.jsp new file mode 100644 index 0000000000000000000000000000000000000000..0e72564a2012ef4aec978e5555c10ad5a0822e65 --- /dev/null +++ b/WEB-INF/jsp/result.jsp @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Result</title> +</head> +<body> +<h1>Result</h1> +<p id="result-message"></p> + +<script> + document.getElementById("result-message").innerText = "${message}"; +</script> +</body> +</html> diff --git a/WEB-INF/src/DAO/IngredientDAO.java b/WEB-INF/src/DAO/IngredientDAO.java index f15f2704d46437395bc956dbda545e10265a7f03..92addebdcec10898836cdebd38c99fd9c1320f82 100644 --- a/WEB-INF/src/DAO/IngredientDAO.java +++ b/WEB-INF/src/DAO/IngredientDAO.java @@ -19,11 +19,11 @@ public class IngredientDAO { private static ResultSet resultSet; // SQL queries - private static final String SELECT_ALL_QUERY = "SELECT * FROM ingredients"; - private static final String INSERT_QUERY = "INSERT INTO ingredients(nom, price) VALUES (?, ?)"; - private static final String SELECT_BY_ID_QUERY = "SELECT nom,price FROM ingredients WHERE id = ?"; - private static final String DELETE_QUERY = "DELETE FROM ingredients WHERE id = ?"; - private static final String UPDATE_QUERY = "UPDATE ingredients SET nom = ?, price = ? WHERE id = ?"; + private static final String SELECT_ALL_QUERY = "SELECT * FROM ingredient"; + private static final String INSERT_QUERY = "INSERT INTO ingredient(nom, prix) VALUES (?, ?)"; + private static final String SELECT_BY_ID_QUERY = "SELECT nom,prix FROM ingredient WHERE id = ?"; + private static final String DELETE_QUERY = "DELETE FROM ingredient WHERE id = ?"; + private static final String UPDATE_QUERY = "UPDATE ingredient SET nom = ?, prix = ? WHERE id = ?"; // Method to establish database connection static Connection connect() throws IngredientDAOException { @@ -63,8 +63,8 @@ public class IngredientDAO { while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("nom"); - double price = resultSet.getDouble("price"); - Ingredient ingredient = new Ingredient(id, name, price); + double prix = resultSet.getDouble("prix"); + Ingredient ingredient = new Ingredient(id, name, prix); ingredients.add(ingredient); } } catch (SQLException e) { @@ -102,8 +102,8 @@ public class IngredientDAO { if (resultSet.next()) { String name = resultSet.getString("nom"); - double price = resultSet.getDouble("price"); - ingredient = new Ingredient(id, name, price); + double prix = resultSet.getDouble("prix"); + ingredient = new Ingredient(id, name, prix); } } catch (SQLException e) { throw new IngredientDAOException("Error fetching ingredient", e); diff --git a/WEB-INF/src/Servlets/DatabaseTestServlet.java b/WEB-INF/src/Servlets/DatabaseTestServlet.java new file mode 100644 index 0000000000000000000000000000000000000000..4b532a6f19e3055ebd7fc117c2e2a962d173d146 --- /dev/null +++ b/WEB-INF/src/Servlets/DatabaseTestServlet.java @@ -0,0 +1,38 @@ +package Servlets; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +@WebServlet("/database-test") +public class DatabaseTestServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + try { + // Charge le pilote JDBC pour PostgreSQL + Class.forName("org.postgresql.Driver"); + + // Essaie de se connecter à la base de données + Connection connection = DriverManager.getConnection( + "jdbc:postgresql://localhost:5432/pizzeria", "gwendalmargelyetu", "moi"); + + // Si la connexion est établie, affiche un message de succès + req.setAttribute("message", "Database test successful."); + } catch (ClassNotFoundException e) { + // Si le pilote JDBC n'est pas trouvé, affiche un message d'erreur + req.setAttribute("message", "Database test failed: JDBC driver not found."); + } catch (SQLException e) { + // Si une exception SQL est levée, affiche un message d'erreur + req.setAttribute("message", "Database test failed: " + e.getMessage()); + } + + // Renvoie la réponse en utilisant la vue JSP + req.getRequestDispatcher("/WEB-INF/jsp/result.jsp").forward(req, resp); + } +} diff --git a/WEB-INF/src/Servlets/IngredientServlet.java b/WEB-INF/src/Servlets/IngredientServlet.java index 2898d3991aea18fb1f4cabd1ad95b9a1f82cdbe8..241fd8cb132d1a725a87a49e3e89db6e4b1d2f3d 100644 --- a/WEB-INF/src/Servlets/IngredientServlet.java +++ b/WEB-INF/src/Servlets/IngredientServlet.java @@ -28,7 +28,7 @@ public class IngredientServlet extends HttpServlet { } @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { String pathInfo = req.getPathInfo(); if (pathInfo == null || pathInfo.equals("/")) { // Get all ingredients @@ -87,6 +87,7 @@ public class IngredientServlet extends HttpServlet { } } + @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { // Parse the request body as a JSON object @@ -166,3 +167,7 @@ public class IngredientServlet extends HttpServlet { } } } + +/* + + */ \ No newline at end of file diff --git a/WEB-INF/test-classes/DAO/IngredientDAOTest.class b/WEB-INF/test-classes/DAO/IngredientDAOTest.class new file mode 100644 index 0000000000000000000000000000000000000000..188fc1765833d64bd5bad8596a46ab37a9d59c89 Binary files /dev/null and b/WEB-INF/test-classes/DAO/IngredientDAOTest.class differ diff --git a/WEB-INF/web.xml b/WEB-INF/web.xml new file mode 100644 index 0000000000000000000000000000000000000000..9f5308ec141aceaafcdca65653c28010322c98ae --- /dev/null +++ b/WEB-INF/web.xml @@ -0,0 +1,38 @@ +<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee + http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" + version="3.1"> + + <welcome-file-list> + <welcome-file>index.html</welcome-file> + </welcome-file-list> + + <jsp-config> + <jsp-property-group> + <url-pattern>*.jsp</url-pattern> + <page-encoding>UTF-8</page-encoding> + </jsp-property-group> + </jsp-config> + + <servlet> + <servlet-name>DatabaseTestServlet</servlet-name> + <servlet-class>Servlets.DatabaseTestServlet</servlet-class> + </servlet> + + <servlet-mapping> + <servlet-name>DatabaseTestServlet</servlet-name> + <url-pattern>/database-test</url-pattern> + </servlet-mapping> + + <servlet> + <servlet-name>IngredientServlet</servlet-name> + <servlet-class>Servlets.IngredientServlet</servlet-class> + </servlet> + + <servlet-mapping> + <servlet-name>IngredientServlet</servlet-name> + <url-pattern>/ingredients/*</url-pattern> + </servlet-mapping> + +</web-app> \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000000000000000000000000000000000000..6aea69bb665df9ecffcc32689ba42d23671fb3f7 --- /dev/null +++ b/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Test</title> +</head> +<body> +<h1>Test</h1> +<p>This is a test page.</p> +</body> +</html> diff --git a/pom.xml b/pom.xml index 05a48232bd277de4b746e7d8de3c9a7465571b2e..d76dccc16d54a4f6c7bd671d3e09c8b6796b353c 100644 --- a/pom.xml +++ b/pom.xml @@ -54,5 +54,7 @@ <build> <sourceDirectory>WEB-INF/src</sourceDirectory> <testSourceDirectory>WEB-INF/test</testSourceDirectory> + <outputDirectory>WEB-INF/classes</outputDirectory> + <testOutputDirectory>WEB-INF/test-classes</testOutputDirectory> </build> </project>