diff --git a/pom.xml b/pom.xml
index 8f7cf6b7d..a52973361 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,11 @@
4.0.1
provided
+
+ jstl
+ jstl
+ 1.2
+
diff --git a/src/main/java/mate/controller/car/AddDriverToCarController.java b/src/main/java/mate/controller/car/AddDriverToCarController.java
new file mode 100644
index 000000000..14d808cf9
--- /dev/null
+++ b/src/main/java/mate/controller/car/AddDriverToCarController.java
@@ -0,0 +1,40 @@
+package mate.controller.car;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Car;
+import mate.model.Driver;
+import mate.service.CarService;
+import mate.service.DriverService;
+
+public class AddDriverToCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final CarService carService = (CarService) injector.getInstance(CarService.class);
+ private final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List cars = carService.getAll();
+ List drivers = driverService.getAll();
+ req.setAttribute("cars", cars);
+ req.setAttribute("drivers", drivers);
+ req.getRequestDispatcher("/WEB-INF/views/cars/addDriver.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Car car = carService.get(Long.valueOf(req.getParameter("car")));
+ Driver driver = driverService.get(Long.valueOf(req.getParameter("driver")));
+ car.getDrivers().add(driver);
+ carService.update(car);
+ resp.sendRedirect(req.getContextPath() + "/cars/all");
+ }
+}
diff --git a/src/main/java/mate/controller/car/CreateCarController.java b/src/main/java/mate/controller/car/CreateCarController.java
new file mode 100644
index 000000000..7faa731ea
--- /dev/null
+++ b/src/main/java/mate/controller/car/CreateCarController.java
@@ -0,0 +1,42 @@
+package mate.controller.car;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Car;
+import mate.model.Manufacturer;
+import mate.service.CarService;
+import mate.service.ManufacturerService;
+
+public class CreateCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final CarService carService = (CarService) injector.getInstance(CarService.class);
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List manufacturers = manufacturerService.getAll();
+ req.setAttribute("manufacturers", manufacturers);
+ req.getRequestDispatcher("/WEB-INF/views/cars/create.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Car car = new Car();
+ car.setModel(req.getParameter("model"));
+ Manufacturer manufacturer = manufacturerService
+ .get(Long.valueOf(req.getParameter("Manufacturers")));
+ car.setManufacturer(manufacturer);
+ car.setDrivers(new ArrayList<>());
+ carService.create(car);
+ resp.sendRedirect(req.getContextPath() + "/cars/all");
+ }
+}
diff --git a/src/main/java/mate/controller/car/DeleteCarController.java b/src/main/java/mate/controller/car/DeleteCarController.java
new file mode 100644
index 000000000..f86060146
--- /dev/null
+++ b/src/main/java/mate/controller/car/DeleteCarController.java
@@ -0,0 +1,26 @@
+package mate.controller.car;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Car;
+import mate.service.CarService;
+
+public class DeleteCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final CarService carService = (CarService) injector.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Long id = Long.valueOf(req.getParameter("id"));
+ carService.delete(id);
+ List allCars = carService.getAll();
+ req.setAttribute("cars", allCars);
+ req.getRequestDispatcher("/WEB-INF/views/cars/getAll.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/car/GetAllCarsController.java b/src/main/java/mate/controller/car/GetAllCarsController.java
new file mode 100644
index 000000000..60d382633
--- /dev/null
+++ b/src/main/java/mate/controller/car/GetAllCarsController.java
@@ -0,0 +1,24 @@
+package mate.controller.car;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Car;
+import mate.service.CarService;
+
+public class GetAllCarsController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final CarService carService = (CarService) injector.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List cars = carService.getAll();
+ req.setAttribute("cars", cars);
+ req.getRequestDispatcher("/WEB-INF/views/cars/getAll.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/driver/CreateDriverController.java b/src/main/java/mate/controller/driver/CreateDriverController.java
new file mode 100644
index 000000000..a3267b99f
--- /dev/null
+++ b/src/main/java/mate/controller/driver/CreateDriverController.java
@@ -0,0 +1,32 @@
+package mate.controller.driver;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Driver;
+import mate.service.DriverService;
+
+public class CreateDriverController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/drivers/create.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Driver driver = new Driver();
+ driver.setName(req.getParameter("name"));
+ driver.setLicenseNumber(req.getParameter("licenseNumber"));
+ driverService.create(driver);
+ resp.sendRedirect(req.getContextPath() + "/drivers/all");
+ }
+}
diff --git a/src/main/java/mate/controller/driver/DeleteDriverController.java b/src/main/java/mate/controller/driver/DeleteDriverController.java
new file mode 100644
index 000000000..c91fcb096
--- /dev/null
+++ b/src/main/java/mate/controller/driver/DeleteDriverController.java
@@ -0,0 +1,27 @@
+package mate.controller.driver;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Driver;
+import mate.service.DriverService;
+
+public class DeleteDriverController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Long id = Long.valueOf(req.getParameter("id"));
+ driverService.delete(id);
+ List allDrivers = driverService.getAll();
+ req.setAttribute("drivers", allDrivers);
+ req.getRequestDispatcher("/WEB-INF/views/drivers/getAll.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/driver/GetAllDriversController.java b/src/main/java/mate/controller/driver/GetAllDriversController.java
new file mode 100644
index 000000000..38001bad2
--- /dev/null
+++ b/src/main/java/mate/controller/driver/GetAllDriversController.java
@@ -0,0 +1,25 @@
+package mate.controller.driver;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Driver;
+import mate.service.DriverService;
+
+public class GetAllDriversController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final DriverService driverService =
+ (DriverService) injector.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List drivers = driverService.getAll();
+ req.setAttribute("drivers", drivers);
+ req.getRequestDispatcher("/WEB-INF/views/drivers/getAll.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java
new file mode 100644
index 000000000..a0f0bd313
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.java
@@ -0,0 +1,32 @@
+package mate.controller.manufacturer;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Manufacturer;
+import mate.service.ManufacturerService;
+
+public class CreateManufacturerController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/manufacturers/create.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Manufacturer manufacturer = new Manufacturer();
+ manufacturer.setName(req.getParameter("name"));
+ manufacturer.setCountry(req.getParameter("country"));
+ manufacturerService.create(manufacturer);
+ resp.sendRedirect(req.getContextPath() + "/manufacturers/all");
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.java b/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.java
new file mode 100644
index 000000000..17459049e
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.java
@@ -0,0 +1,27 @@
+package mate.controller.manufacturer;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Manufacturer;
+import mate.service.ManufacturerService;
+
+public class DeleteManufacturerController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Long id = Long.valueOf(req.getParameter("id"));
+ manufacturerService.delete(id);
+ List allManufacturers = manufacturerService.getAll();
+ req.setAttribute("manufacturers", allManufacturers);
+ req.getRequestDispatcher("/WEB-INF/views/manufacturers/getAll.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java
new file mode 100644
index 000000000..385e9d42b
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java
@@ -0,0 +1,25 @@
+package mate.controller.manufacturer;
+
+import java.io.IOException;
+import java.util.List;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import mate.lib.Injector;
+import mate.model.Manufacturer;
+import mate.service.ManufacturerService;
+
+public class GetAllManufacturersController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) injector.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List manufacturers = manufacturerService.getAll();
+ req.setAttribute("manufacturers", manufacturers);
+ req.getRequestDispatcher("/WEB-INF/views/manufacturers/getALL.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java
index a9249b004..f6695f883 100644
--- a/src/main/java/mate/util/ConnectionUtil.java
+++ b/src/main/java/mate/util/ConnectionUtil.java
@@ -6,10 +6,10 @@
import java.util.Properties;
public class ConnectionUtil {
- private static final String URL = "YOUR DATABASE URL";
- private static final String USERNAME = "YOUR USERNAME";
- private static final String PASSWORD = "YOUR PASSWORD";
- private static final String JDBC_DRIVER = "YOUR DRIVER";
+ private static final String URL = "jdbc:mysql://localhost:3306/taxi_service";
+ private static final String USERNAME = "root";
+ private static final String PASSWORD = "26082014";
+ private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static {
try {
diff --git a/src/main/webapp/WEB-INF/views/cars/addDriver.jsp b/src/main/webapp/WEB-INF/views/cars/addDriver.jsp
new file mode 100644
index 000000000..d19fe74e9
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/addDriver.jsp
@@ -0,0 +1,27 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Add Driver to the Car
+
+
+Choose a car and a driver
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/cars/create.jsp b/src/main/webapp/WEB-INF/views/cars/create.jsp
new file mode 100644
index 000000000..59aa46c88
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/create.jsp
@@ -0,0 +1,28 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%--
+ Created by IntelliJ IDEA.
+ User: marinakusniruk
+ Date: 03.08.2023
+ Time: 11:02
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Create Car
+
+
+Choose parameters of a new car
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/cars/getAll.jsp b/src/main/webapp/WEB-INF/views/cars/getAll.jsp
new file mode 100644
index 000000000..b76f87985
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/getAll.jsp
@@ -0,0 +1,42 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%--
+ Created by IntelliJ IDEA.
+ User: marinakusniruk
+ Date: 02.08.2023
+ Time: 23:43
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Cars
+
+
+
+
+ | Id |
+ Model |
+ Manufacturer |
+ Country |
+ Drivers |
+ Delete |
+
+
+ |
+ |
+ |
+ |
+
+
+ |
+ Delete this car |
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/drivers/create.jsp b/src/main/webapp/WEB-INF/views/drivers/create.jsp
new file mode 100644
index 000000000..b2314ae9a
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/drivers/create.jsp
@@ -0,0 +1,19 @@
+
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Create Driver
+
+
+Enter data of a new driver
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/drivers/getAll.jsp b/src/main/webapp/WEB-INF/views/drivers/getAll.jsp
new file mode 100644
index 000000000..deced6c86
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/drivers/getAll.jsp
@@ -0,0 +1,25 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Drivers
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp
index 0fbc5292a..57f2c53ee 100644
--- a/src/main/webapp/WEB-INF/views/index.jsp
+++ b/src/main/webapp/WEB-INF/views/index.jsp
@@ -5,5 +5,12 @@
Hello, mates!
+Testing time
+Create Car
+Show all cars
+Add driver to the car
+Show all drivers
+Create Driver
+Create Manufacturer