diff --git a/pom.xml b/pom.xml
index 8f7cf6b7d..e51d7f0f2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,11 @@
4.0.1
provided
+
+ jstl
+ jstl
+ 1.2
+
@@ -40,7 +45,7 @@
maven-war-plugin
3.3.2
- src/main/webapp/web.xml
+ src/main/webapp/WEB-INF/web.xml
diff --git a/src/main/java/mate/controller/AddCarController.java b/src/main/java/mate/controller/AddCarController.java
new file mode 100644
index 000000000..d0b27e1f5
--- /dev/null
+++ b/src/main/java/mate/controller/AddCarController.java
@@ -0,0 +1,43 @@
+package mate.controller;
+
+import java.io.IOException;
+import java.util.ArrayList;
+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;
+import mate.service.ManufacturerService;
+
+public class AddCarController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private CarService carService;
+ private ManufacturerService manufacturerService;
+
+ public AddCarController() {
+ carService = (CarService) injector.getInstance(CarService.class);
+ manufacturerService = (ManufacturerService) injector
+ .getInstance(ManufacturerService.class);
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/car/add.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String model = req.getParameter("model");
+ Long manufacturerId = Long.valueOf(req.getParameter("manufacturer_id"));
+ Car car = new Car();
+ car.setModel(model);
+ car.setManufacturer(manufacturerService.get(manufacturerId));
+ car.setDrivers(new ArrayList<>());
+ carService.create(car);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
diff --git a/src/main/java/mate/controller/AddDriverController.java b/src/main/java/mate/controller/AddDriverController.java
new file mode 100644
index 000000000..5dea2cc7c
--- /dev/null
+++ b/src/main/java/mate/controller/AddDriverController.java
@@ -0,0 +1,37 @@
+package mate.controller;
+
+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 AddDriverController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private DriverService driverService;
+
+ public AddDriverController() {
+ driverService = (DriverService) injector.getInstance(DriverService.class);
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/driver/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("license_number");
+ Driver driver = new Driver();
+ driver.setName(name);
+ driver.setLicenseNumber(licenseNumber);
+ driverService.create(driver);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
diff --git a/src/main/java/mate/controller/AddDriverToCarController.java b/src/main/java/mate/controller/AddDriverToCarController.java
new file mode 100644
index 000000000..aa8d5aa9f
--- /dev/null
+++ b/src/main/java/mate/controller/AddDriverToCarController.java
@@ -0,0 +1,40 @@
+package mate.controller;
+
+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.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 CarService carService;
+ private DriverService driverService;
+
+ public AddDriverToCarController() {
+ carService = (CarService) injector.getInstance(CarService.class);
+ driverService = (DriverService) injector.getInstance(DriverService.class);
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/car.driver/addDriverToCar.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ Long driverId = Long.valueOf(request.getParameter("driver_id"));
+ Long carId = Long.valueOf(request.getParameter("car_id"));
+ Car car = carService.get(carId);
+ Driver driver = driverService.get(driverId);
+ carService.addDriverToCar(driver, car);
+ response.sendRedirect(request.getContextPath() + "/index");
+ }
+}
diff --git a/src/main/java/mate/controller/AddManufacturerController.java b/src/main/java/mate/controller/AddManufacturerController.java
new file mode 100644
index 000000000..4fb6fa3fe
--- /dev/null
+++ b/src/main/java/mate/controller/AddManufacturerController.java
@@ -0,0 +1,38 @@
+package mate.controller;
+
+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 AddManufacturerController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private ManufacturerService manufacturerService;
+
+ public AddManufacturerController() {
+ manufacturerService = (ManufacturerService) injector
+ .getInstance(ManufacturerService.class);
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher("/manufacturer/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() + "/index");
+ }
+}
diff --git a/src/main/java/mate/controller/DeleteDriverController.java b/src/main/java/mate/controller/DeleteDriverController.java
new file mode 100644
index 000000000..7f9083c7a
--- /dev/null
+++ b/src/main/java/mate/controller/DeleteDriverController.java
@@ -0,0 +1,25 @@
+package mate.controller;
+
+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.service.DriverService;
+
+public class DeleteDriverController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private DriverService driverService;
+
+ public DeleteDriverController() {
+ 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);
+ }
+}
diff --git a/src/main/java/mate/controller/DeleteManufacturerController.java b/src/main/java/mate/controller/DeleteManufacturerController.java
new file mode 100644
index 000000000..cc5b9dfeb
--- /dev/null
+++ b/src/main/java/mate/controller/DeleteManufacturerController.java
@@ -0,0 +1,26 @@
+package mate.controller;
+
+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.service.ManufacturerService;
+
+public class DeleteManufacturerController extends HttpServlet {
+ private static final Injector injector = Injector.getInstance("mate");
+ private ManufacturerService manufacturerService;
+
+ public DeleteManufacturerController() {
+ 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);
+ }
+}
diff --git a/src/main/java/mate/controller/GetAllDriversController.java b/src/main/java/mate/controller/GetAllDriversController.java
new file mode 100644
index 000000000..482912661
--- /dev/null
+++ b/src/main/java/mate/controller/GetAllDriversController.java
@@ -0,0 +1,28 @@
+package mate.controller;
+
+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 DriverService driverService;
+
+ public GetAllDriversController() {
+ 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("/driver/all.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/GetAllManufacturersController.java b/src/main/java/mate/controller/GetAllManufacturersController.java
new file mode 100644
index 000000000..bba779426
--- /dev/null
+++ b/src/main/java/mate/controller/GetAllManufacturersController.java
@@ -0,0 +1,29 @@
+package mate.controller;
+
+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 ManufacturerService manufacturerService;
+
+ public GetAllManufacturersController() {
+ 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("/manufacturer/all.jsp").forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/IndexController.java b/src/main/java/mate/controller/IndexController.java
index 27bcd4faa..c05a9b4cc 100644
--- a/src/main/java/mate/controller/IndexController.java
+++ b/src/main/java/mate/controller/IndexController.java
@@ -10,6 +10,6 @@ public class IndexController extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
- req.getRequestDispatcher("/WEB-INF/views/index.jsp").forward(req, resp);
+ req.getRequestDispatcher("/index.jsp").forward(req, resp);
}
}
diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java
index a9249b004..44c209d5f 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=UTC";
+ private static final String USERNAME = "root";
+ private static final String PASSWORD = "240653";
+ private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static {
try {
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 000000000..f854846fb
--- /dev/null
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,88 @@
+
+
+
+ index
+ mate.controller.IndexController
+
+
+ index
+ /index
+
+
+
+ getAllDriversController
+ mate.controller.GetAllDriversController
+
+
+ getAllDriversController
+ /drivers
+
+
+
+ getAllManufacturersController
+ mate.controller.GetAllManufacturersController
+
+
+ getAllManufacturersController
+ /manufacturers
+
+
+
+ deleteDriverController
+ mate.controller.DeleteDriverController
+
+
+ deleteDriverController
+ /drivers/delete
+
+
+
+ deleteManufacturerController
+ mate.controller.DeleteManufacturerController
+
+
+ deleteManufacturerController
+ /manufacturers/delete
+
+
+
+ addDriverController
+ mate.controller.AddDriverController
+
+
+ addDriverController
+ /drivers/add
+
+
+
+ addManufacturerController
+ mate.controller.AddManufacturerController
+
+
+ addManufacturerController
+ /manufacturers/add
+
+
+
+ addCarController
+ mate.controller.AddCarController
+
+
+ addCarController
+ /cars/add
+
+
+
+ addDriverToCarController
+ mate.controller.AddDriverToCarController
+
+
+ addDriverToCarController
+ /cars/drivers/add
+
+
+
diff --git a/src/main/webapp/car.driver/addDriverToCar.jsp b/src/main/webapp/car.driver/addDriverToCar.jsp
new file mode 100644
index 000000000..c1465a2f6
--- /dev/null
+++ b/src/main/webapp/car.driver/addDriverToCar.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add driver to car
+
+
+Please the form below
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/car/add.jsp b/src/main/webapp/car/add.jsp
new file mode 100644
index 000000000..af58bebc9
--- /dev/null
+++ b/src/main/webapp/car/add.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add car
+
+
+Please the form below
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/driver/add.jsp b/src/main/webapp/driver/add.jsp
new file mode 100644
index 000000000..6471ea22a
--- /dev/null
+++ b/src/main/webapp/driver/add.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add driver
+
+
+Please the form below
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/driver/all.jsp b/src/main/webapp/driver/all.jsp
new file mode 100644
index 000000000..49ced2433
--- /dev/null
+++ b/src/main/webapp/driver/all.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" %>
+
+
+ Get all drivers
+
+
+List of drivers:
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/index.jsp
similarity index 100%
rename from src/main/webapp/WEB-INF/views/index.jsp
rename to src/main/webapp/index.jsp
diff --git a/src/main/webapp/manufacturer/add.jsp b/src/main/webapp/manufacturer/add.jsp
new file mode 100644
index 000000000..88fd35cdf
--- /dev/null
+++ b/src/main/webapp/manufacturer/add.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add manufacturer
+
+
+Please the form below
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/manufacturer/all.jsp b/src/main/webapp/manufacturer/all.jsp
new file mode 100644
index 000000000..fffe0f0e3
--- /dev/null
+++ b/src/main/webapp/manufacturer/all.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" %>
+
+
+ Get all manufacturers
+
+
+List of manufacturers:
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml
deleted file mode 100644
index 00afaeb93..000000000
--- a/src/main/webapp/web.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- index
- mate.controller.IndexController
-
-
- index
- /index
-
-