diff --git a/pom.xml b/pom.xml
index 8f7cf6b7d..8a92f9485 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,6 +25,11 @@
mysql-connector-java
8.0.22
+
+ jstl
+ jstl
+ 1.2
+
javax.servlet
javax.servlet-api
diff --git a/src/main/java/mate/controller/car/AddCarController.java b/src/main/java/mate/controller/car/AddCarController.java
new file mode 100644
index 000000000..785a94a51
--- /dev/null
+++ b/src/main/java/mate/controller/car/AddCarController.java
@@ -0,0 +1,44 @@
+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 AddCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static final ManufacturerService manufacturerService = (ManufacturerService)
+ injector.getInstance(ManufacturerService.class);
+ private static final CarService carService = (CarService)
+ injector.getInstance(CarService.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/add.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String model = req.getParameter("model");
+ Manufacturer manufacturer = manufacturerService
+ .get(Long.valueOf(req.getParameter("manufacturer")));
+ Car car = new Car();
+ car.setModel(model);
+ 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/AddDriverToCarController.java b/src/main/java/mate/controller/car/AddDriverToCarController.java
new file mode 100644
index 000000000..87e01e68b
--- /dev/null
+++ b/src/main/java/mate/controller/car/AddDriverToCarController.java
@@ -0,0 +1,42 @@
+package mate.controller.car;
+
+import java.io.IOException;
+import java.util.List;
+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 mate.lib.Injector;
+import mate.model.Car;
+import mate.model.Driver;
+import mate.service.CarService;
+import mate.service.DriverService;
+
+@WebServlet(urlPatterns = "/cars/driver/add")
+public class AddDriverToCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static final CarService carService = (CarService)
+ injector.getInstance(CarService.class);
+ private static 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/driver/add.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")));
+ carService.addDriverToCar(driver,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..f6e5d061b
--- /dev/null
+++ b/src/main/java/mate/controller/car/DeleteCarController.java
@@ -0,0 +1,25 @@
+package mate.controller.car;
+
+import java.io.IOException;
+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 mate.lib.Injector;
+import mate.service.CarService;
+
+@WebServlet(urlPatterns = "/cars/delete")
+public class DeleteCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static 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);
+ resp.sendRedirect(req.getContextPath() + "/cars/all");
+ }
+}
diff --git a/src/main/java/mate/controller/car/GetAllCarController.java b/src/main/java/mate/controller/car/GetAllCarController.java
new file mode 100644
index 000000000..4b7a02ff2
--- /dev/null
+++ b/src/main/java/mate/controller/car/GetAllCarController.java
@@ -0,0 +1,27 @@
+package mate.controller.car;
+
+import java.io.IOException;
+import java.util.List;
+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 mate.lib.Injector;
+import mate.model.Car;
+import mate.service.CarService;
+
+@WebServlet(urlPatterns = "/cars/all")
+public class GetAllCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private static final CarService
+ carService = (CarService) injector.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List carList = carService.getAll();
+ req.setAttribute("cars", carList);
+ req.getRequestDispatcher("/WEB-INF/views/cars/all.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/driver/AddDriverController.java b/src/main/java/mate/controller/driver/AddDriverController.java
new file mode 100644
index 000000000..c6461c9cf
--- /dev/null
+++ b/src/main/java/mate/controller/driver/AddDriverController.java
@@ -0,0 +1,36 @@
+package mate.controller.driver;
+
+import java.io.IOException;
+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 mate.lib.Injector;
+import mate.model.Driver;
+import mate.service.DriverService;
+
+@WebServlet(urlPatterns = "/drivers/add")
+public class AddDriverController 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/add.jsp").forward(req,resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String name = req.getParameter("name");
+ String licenseNumber = req.getParameter("licenseNumber");
+ Driver driver = new Driver();
+ driver.setName(name);
+ driver.setLicenseNumber(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..c9bc450e8
--- /dev/null
+++ b/src/main/java/mate/controller/driver/DeleteDriverController.java
@@ -0,0 +1,25 @@
+package mate.controller.driver;
+
+import java.io.IOException;
+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 mate.lib.Injector;
+import mate.service.DriverService;
+
+@WebServlet(urlPatterns = "/drivers/delete")
+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);
+ resp.sendRedirect(req.getContextPath() + "/drivers/all");
+ }
+}
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..cfa5a0416
--- /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 driverAll = driverService.getAll();
+ req.setAttribute("drivers", driverAll);
+ req.getRequestDispatcher("/WEB-INF/views/drivers/all.jsp").forward(req,resp);
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/AddManufacturerController.java b/src/main/java/mate/controller/manufacturer/AddManufacturerController.java
new file mode 100644
index 000000000..acae51c0f
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/AddManufacturerController.java
@@ -0,0 +1,36 @@
+package mate.controller.manufacturer;
+
+import java.io.IOException;
+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 mate.lib.Injector;
+import mate.model.Manufacturer;
+import mate.service.ManufacturerService;
+
+@WebServlet(urlPatterns = "/manufacturers/add")
+public class AddManufacturerController 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/add.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String name = req.getParameter("name");
+ String country = req.getParameter("country");
+ Manufacturer manufacturer = new Manufacturer();
+ manufacturer.setName(name);
+ manufacturer.setCountry(country);
+ manufacturerService.create(manufacturer);
+ resp.sendRedirect(req.getContextPath() + "/manufacturers/all");
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/DeleteManufacturersController.java b/src/main/java/mate/controller/manufacturer/DeleteManufacturersController.java
new file mode 100644
index 000000000..4d92c9b62
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/DeleteManufacturersController.java
@@ -0,0 +1,25 @@
+package mate.controller.manufacturer;
+
+import java.io.IOException;
+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 mate.lib.Injector;
+import mate.service.ManufacturerService;
+
+@WebServlet(urlPatterns = "/manufacturers/delete")
+public class DeleteManufacturersController 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);
+ resp.sendRedirect(req.getContextPath() + "/manufacturers/all");
+ }
+}
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..e49ea5e8d
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java
@@ -0,0 +1,27 @@
+package mate.controller.manufacturer;
+
+import java.io.IOException;
+import java.util.List;
+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 mate.lib.Injector;
+import mate.model.Manufacturer;
+import mate.service.ManufacturerService;
+
+@WebServlet(urlPatterns = "/manufacturers/all")
+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 manufacturersAll = manufacturerService.getAll();
+ req.setAttribute("manufacturers", manufacturersAll);
+ req.getRequestDispatcher("/WEB-INF/views/manufacturers/all.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/model/Manufacturer.java b/src/main/java/mate/model/Manufacturer.java
index b3ff7b966..2089a72e0 100644
--- a/src/main/java/mate/model/Manufacturer.java
+++ b/src/main/java/mate/model/Manufacturer.java
@@ -49,4 +49,11 @@ public boolean equals(Object o) {
public int hashCode() {
return Objects.hash(id, name, country);
}
+
+ @Override
+ public String toString() {
+ return "id=" + id
+ + ", name='" + name + '\''
+ + ", country='" + country;
+ }
}
diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java
index a9249b004..de8de3468 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?serverTimezone=Europe/Kiev";
+ private static final String USERNAME = "root";
+ private static final String PASSWORD = "1984";
+ private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static {
try {
diff --git a/src/main/webapp/WEB-INF/views/cars/add.jsp b/src/main/webapp/WEB-INF/views/cars/add.jsp
new file mode 100644
index 000000000..1a7b75bb0
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/add.jsp
@@ -0,0 +1,21 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Creating a car
+
+
+Please the form below
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/cars/all.jsp b/src/main/webapp/WEB-INF/views/cars/all.jsp
new file mode 100644
index 000000000..d065d71af
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/all.jsp
@@ -0,0 +1,28 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Get all cars
+
+
+List of cars
+
+
+ | ID |
+ MODEL |
+ MANUFACTURER |
+ DRIVERS |
+ DELETE |
+
+
+
+ |
+ |
+ |
+ |
+ delete this car |
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/cars/driver/add.jsp b/src/main/webapp/WEB-INF/views/cars/driver/add.jsp
new file mode 100644
index 000000000..0c492cec8
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/driver/add.jsp
@@ -0,0 +1,25 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Add driver to car
+
+
+Please the form below
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/drivers/add.jsp b/src/main/webapp/WEB-INF/views/drivers/add.jsp
new file mode 100644
index 000000000..1251738f8
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/drivers/add.jsp
@@ -0,0 +1,16 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Creating a driver
+
+
+Please the form below
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/drivers/all.jsp b/src/main/webapp/WEB-INF/views/drivers/all.jsp
new file mode 100644
index 000000000..7ee5da45c
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/drivers/all.jsp
@@ -0,0 +1,27 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Get all drivers
+
+
+List of drivers
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/manufacturers/add.jsp b/src/main/webapp/WEB-INF/views/manufacturers/add.jsp
new file mode 100644
index 000000000..744085920
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/manufacturers/add.jsp
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Creating a manufacturer
+
+
+Please the form below
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/manufacturers/all.jsp b/src/main/webapp/WEB-INF/views/manufacturers/all.jsp
new file mode 100644
index 000000000..4ce6e22a9
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/manufacturers/all.jsp
@@ -0,0 +1,27 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Get all manufacturers
+
+
+List of manufacturers
+
+
+
diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml
index 00afaeb93..ebea4fa0a 100644
--- a/src/main/webapp/web.xml
+++ b/src/main/webapp/web.xml
@@ -6,9 +6,29 @@
index
mate.controller.IndexController
+
index
/index
+
+
+ getAllDriversController
+ mate.controller.driver.GetAllDriversController
+
+
+ getAllDriversController
+ /drivers/all
+
+
+
+ addCarController
+ mate.controller.car.AddCarController
+
+
+ addCarController
+ /cars/add
+
+