diff --git a/pom.xml b/pom.xml
index 8f7cf6b7d..382fc8f7e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
mysql
mysql-connector-java
- 8.0.22
+ 8.0.33
javax.servlet
@@ -31,6 +31,11 @@
4.0.1
provided
+
+ jstl
+ jstl
+ 1.2
+
diff --git a/src/main/java/mate/controller/IndexController.java b/src/main/java/mate/controller/IndexController.java
index 27bcd4faa..02d542e0b 100644
--- a/src/main/java/mate/controller/IndexController.java
+++ b/src/main/java/mate/controller/IndexController.java
@@ -2,10 +2,12 @@
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;
+@WebServlet(urlPatterns = "/index")
public class IndexController extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
diff --git a/src/main/java/mate/controller/cars/AddDriverController.java b/src/main/java/mate/controller/cars/AddDriverController.java
new file mode 100644
index 000000000..3f59382ae
--- /dev/null
+++ b/src/main/java/mate/controller/cars/AddDriverController.java
@@ -0,0 +1,40 @@
+package mate.controller.cars;
+
+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.Car;
+import mate.model.Driver;
+import mate.service.CarService;
+import mate.service.DriverService;
+
+@WebServlet(urlPatterns = "/cars/add")
+public class AddDriverController extends HttpServlet {
+ private static final Injector INJECTOR =
+ Injector.getInstance("mate");
+ private final DriverService driverService =
+ (DriverService) INJECTOR.getInstance(DriverService.class);
+
+ private final CarService carService =
+ (CarService) INJECTOR.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/cars/addDriverToCar.jsp")
+ .forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+ Driver driver = driverService.get(Long.valueOf(req.getParameter("driver_id")));
+ Car car = carService.get(Long.valueOf(req.getParameter("car_id")));
+ carService.addDriverToCar(driver, car);
+ resp.sendRedirect(req.getContextPath() + "/cars/get");
+ }
+}
diff --git a/src/main/java/mate/controller/cars/CreateCarController.java b/src/main/java/mate/controller/cars/CreateCarController.java
new file mode 100644
index 000000000..23b6a20da
--- /dev/null
+++ b/src/main/java/mate/controller/cars/CreateCarController.java
@@ -0,0 +1,42 @@
+package mate.controller.cars;
+
+import java.io.IOException;
+import java.util.ArrayList;
+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;
+import mate.service.ManufacturerService;
+
+@WebServlet(urlPatterns = "/cars/create")
+public class CreateCarController extends HttpServlet {
+ private static final Injector INJECTOR =
+ Injector.getInstance("mate");
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);
+ private final CarService carService = (CarService)
+ INJECTOR.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/WEB-INF/views/cars/createCar.jsp")
+ .forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+ Car car = new Car();
+ car.setModel(req.getParameter("model"));
+ car.setManufacturer(manufacturerService
+ .get(Long.valueOf(req.getParameter("id"))));
+ car.setDrivers(new ArrayList<>());
+ carService.create(car);
+ resp.sendRedirect(req.getContextPath() + "/cars/get");
+ }
+}
diff --git a/src/main/java/mate/controller/cars/DeleteCarController.java b/src/main/java/mate/controller/cars/DeleteCarController.java
new file mode 100644
index 000000000..627819d43
--- /dev/null
+++ b/src/main/java/mate/controller/cars/DeleteCarController.java
@@ -0,0 +1,25 @@
+package mate.controller.cars;
+
+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 final CarService carService =
+ (CarService) INJECTOR.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ carService.delete(Long.valueOf(req.getParameter("id")));
+ resp.sendRedirect(req.getContextPath() + "/cars/get");
+ }
+}
diff --git a/src/main/java/mate/controller/cars/GetAllCarsController.java b/src/main/java/mate/controller/cars/GetAllCarsController.java
new file mode 100644
index 000000000..2ca5fc88a
--- /dev/null
+++ b/src/main/java/mate/controller/cars/GetAllCarsController.java
@@ -0,0 +1,26 @@
+package mate.controller.cars;
+
+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("/cars/get")
+public class GetAllCarsController extends HttpServlet {
+ private static final Injector INJECTOR =
+ Injector.getInstance("mate");
+ private final CarService carService =
+ (CarService) INJECTOR.getInstance(CarService.class);
+
+ @Override
+ public void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.setAttribute("cars", carService.getAll());
+ req.getRequestDispatcher("/WEB-INF/views/cars/getAllCars.jsp")
+ .forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/drivers/CreateDriverController.java b/src/main/java/mate/controller/drivers/CreateDriverController.java
new file mode 100644
index 000000000..09c18b455
--- /dev/null
+++ b/src/main/java/mate/controller/drivers/CreateDriverController.java
@@ -0,0 +1,36 @@
+package mate.controller.drivers;
+
+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/create")
+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/createDriver.jsp")
+ .forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+ Driver driver = new Driver();
+ driver.setName(req.getParameter("name"));
+ driver.setLicenseNumber(req.getParameter("licenseNumber"));
+ driverService.create(driver);
+ resp.sendRedirect(req.getContextPath() + "/drivers/get");
+ }
+}
diff --git a/src/main/java/mate/controller/drivers/DeleteDriverController.java b/src/main/java/mate/controller/drivers/DeleteDriverController.java
new file mode 100644
index 000000000..1c18705d4
--- /dev/null
+++ b/src/main/java/mate/controller/drivers/DeleteDriverController.java
@@ -0,0 +1,24 @@
+package mate.controller.drivers;
+
+import java.io.IOException;
+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 IOException {
+ driverService.delete(Long.valueOf(req.getParameter("id")));
+ resp.sendRedirect(req.getContextPath() + "/drivers/get");
+ }
+}
diff --git a/src/main/java/mate/controller/drivers/GetAllDriversController.java b/src/main/java/mate/controller/drivers/GetAllDriversController.java
new file mode 100644
index 000000000..c6aa03197
--- /dev/null
+++ b/src/main/java/mate/controller/drivers/GetAllDriversController.java
@@ -0,0 +1,26 @@
+package mate.controller.drivers;
+
+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/get")
+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 {
+ req.setAttribute("drivers", driverService.getAll());
+ req.getRequestDispatcher("/WEB-INF/views/drivers/getAllDrivers.jsp")
+ .forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturers/CreateManufacturerController.java b/src/main/java/mate/controller/manufacturers/CreateManufacturerController.java
new file mode 100644
index 000000000..1ccf9c5dd
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturers/CreateManufacturerController.java
@@ -0,0 +1,36 @@
+package mate.controller.manufacturers;
+
+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/create")
+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/createManufacturer.jsp")
+ .forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws IOException {
+ Manufacturer manufacturer = new Manufacturer();
+ manufacturer.setName(req.getParameter("name"));
+ manufacturer.setCountry(req.getParameter("country"));
+ manufacturerService.create(manufacturer);
+ resp.sendRedirect(req.getContextPath() + "/manufacturers/get");
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturers/DeleteManufacturerController.java b/src/main/java/mate/controller/manufacturers/DeleteManufacturerController.java
new file mode 100644
index 000000000..a99418451
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturers/DeleteManufacturerController.java
@@ -0,0 +1,24 @@
+package mate.controller.manufacturers;
+
+import java.io.IOException;
+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 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 IOException {
+ manufacturerService.delete(Long.valueOf(req.getParameter("id")));
+ resp.sendRedirect(req.getContextPath() + "/manufacturers/get");
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturers/GetAllManufacturersController.java b/src/main/java/mate/controller/manufacturers/GetAllManufacturersController.java
new file mode 100644
index 000000000..6d9a248ef
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturers/GetAllManufacturersController.java
@@ -0,0 +1,26 @@
+package mate.controller.manufacturers;
+
+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/get")
+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 {
+ req.setAttribute("manufacturers", manufacturerService.getAll());
+ req.getRequestDispatcher("/WEB-INF/views/manufacturers/getAllManufacturers.jsp")
+ .forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java
index a9249b004..e758b4ba3 100644
--- a/src/main/java/mate/util/ConnectionUtil.java
+++ b/src/main/java/mate/util/ConnectionUtil.java
@@ -6,10 +6,12 @@
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"
+ + "?useUnicode=true&serverTimezone=UTC"
+ + "&useSSL=true&verifyServerCertificate=false";
+ private static final String USERNAME = "root";
+ private static final String PASSWORD = "12345678";
+ private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static {
try {
diff --git a/src/main/webapp/WEB-INF/views/cars/addDriverToCar.jsp b/src/main/webapp/WEB-INF/views/cars/addDriverToCar.jsp
new file mode 100644
index 000000000..ca41292aa
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/addDriverToCar.jsp
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add Driver
+
+
+Please fill out the form below
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/cars/createCar.jsp b/src/main/webapp/WEB-INF/views/cars/createCar.jsp
new file mode 100644
index 000000000..d01bdcbfc
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/createCar.jsp
@@ -0,0 +1,16 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Create car
+
+
+Please fill out the form below
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/cars/getAllCars.jsp b/src/main/webapp/WEB-INF/views/cars/getAllCars.jsp
new file mode 100644
index 000000000..e90e2fcc0
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cars/getAllCars.jsp
@@ -0,0 +1,32 @@
+<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Cars
+
+
+List of cars:
+
+
+ | ID |
+ CAR MODEL |
+ MANUFACTURER |
+ LIST_OF_DRIVERS |
+ DELETE_CAR |
+
+
+
+ |
+ |
+ |
+
+
+
+
+ |
+ Delete car |
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/drivers/createDriver.jsp b/src/main/webapp/WEB-INF/views/drivers/createDriver.jsp
new file mode 100644
index 000000000..c0f8b705a
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/drivers/createDriver.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Create driver
+
+
+Please fill out the form below
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/drivers/getAllDrivers.jsp b/src/main/webapp/WEB-INF/views/drivers/getAllDrivers.jsp
new file mode 100644
index 000000000..b61571630
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/drivers/getAllDrivers.jsp
@@ -0,0 +1,26 @@
+<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Drivers
+
+
+List of drivers:
+
+
+ | ID |
+ NAME |
+ LICENSE_NUMBER |
+ DELETE |
+
+
+
+ |
+ |
+ |
+ Delete driver |
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp
index 0fbc5292a..cf96784d5 100644
--- a/src/main/webapp/WEB-INF/views/index.jsp
+++ b/src/main/webapp/WEB-INF/views/index.jsp
@@ -4,6 +4,13 @@
My team
-Hello, mates!
+Hello, mates! Let`s test.
+Car create
+Cars list
+Add driver
+Driver create
+Drivers list
+Manufacturer create
+Manufacturers list