diff --git a/pom.xml b/pom.xml
index 8f7cf6b7d..0164778b9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,13 +23,18 @@
mysql
mysql-connector-java
- 8.0.22
+ 8.0.28
javax.servlet
javax.servlet-api
4.0.1
- provided
+ compile
+
+
+ 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/car/AddDriverToCarController.java b/src/main/java/mate/controller/car/AddDriverToCarController.java
new file mode 100644
index 000000000..57c57d323
--- /dev/null
+++ b/src/main/java/mate/controller/car/AddDriverToCarController.java
@@ -0,0 +1,38 @@
+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.model.Car;
+import mate.model.Driver;
+import mate.service.CarService;
+import mate.service.DriverService;
+
+@WebServlet(urlPatterns = "/cars/drivers/add")
+public class AddDriverToCarController extends HttpServlet {
+ private static final Injector INJECTOR = Injector.getInstance("mate");
+ private static final String ADD_Driver_TO_CAR_JSP = "/WEB-INF/views/car/addDriverToCar.jsp";
+ 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 {
+ req.getRequestDispatcher(ADD_Driver_TO_CAR_JSP).forward(req, resp);
+ }
+
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Long carID = Long.valueOf(req.getParameter("car_id"));
+ Long driverID = Long.valueOf(req.getParameter("driver_id"));
+ Car car = carService.get(carID);
+ Driver driver = driverService.get(driverID);
+ carService.addDriverToCar(driver, car);
+ resp.sendRedirect(req.getContextPath() + "/cars");
+ }
+}
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..23acd135f
--- /dev/null
+++ b/src/main/java/mate/controller/car/DeleteCarController.java
@@ -0,0 +1,24 @@
+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 final CarService carService = (CarService) INJECTOR.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Long carID = Long.valueOf(req.getParameter("id"));
+ carService.delete(carID);
+ resp.sendRedirect(req.getContextPath() + "/cars");
+ }
+}
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..5ac39d801
--- /dev/null
+++ b/src/main/java/mate/controller/car/GetAllCarsController.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")
+public class GetAllCarsController extends HttpServlet {
+ private static final Injector INJECTOR = Injector.getInstance("mate");
+ private static final String ALL_CARS_JSP = "/WEB-INF/views/car/allCars.jsp";
+ private final CarService carService = (CarService) INJECTOR.getInstance(CarService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List allCars = carService.getAll();
+ req.setAttribute("cars", allCars);
+ req.getRequestDispatcher(ALL_CARS_JSP).forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/car/RegistrationCarController.java b/src/main/java/mate/controller/car/RegistrationCarController.java
new file mode 100644
index 000000000..f2a029ae2
--- /dev/null
+++ b/src/main/java/mate/controller/car/RegistrationCarController.java
@@ -0,0 +1,42 @@
+package mate.controller.car;
+
+import java.io.IOException;
+import java.util.Collections;
+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.Manufacturer;
+import mate.service.CarService;
+import mate.service.ManufacturerService;
+
+@WebServlet(urlPatterns = "/cars/add")
+public class RegistrationCarController extends HttpServlet {
+ private static final Injector INJECTOR = Injector.getInstance("mate");
+ private static final String ADD_CAR_JSP = "/WEB-INF/views/car/addCar.jsp";
+ 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 {
+ req.getRequestDispatcher(ADD_CAR_JSP).forward(req, resp);
+ }
+
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String model = req.getParameter("model");
+ String manufacturerID = req.getParameter("manufacturer_id");
+ Manufacturer manufacturer = manufacturerService.get(Long.valueOf(manufacturerID));
+ Car car = new Car();
+ car.setModel(model);
+ car.setManufacturer(manufacturer);
+ car.setDrivers(Collections.emptyList());
+ carService.create(car);
+ resp.sendRedirect(req.getContextPath() + "/cars");
+ }
+}
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..76a306f89
--- /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 driverID = Long.valueOf(req.getParameter("id"));
+ driverService.delete(driverID);
+ resp.sendRedirect(req.getContextPath() + "/drivers");
+ }
+}
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..d802adbce
--- /dev/null
+++ b/src/main/java/mate/controller/driver/GetAllDriversController.java
@@ -0,0 +1,28 @@
+package mate.controller.driver;
+
+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.Driver;
+import mate.service.DriverService;
+
+@WebServlet(urlPatterns = "/drivers")
+public class GetAllDriversController extends HttpServlet {
+ private static final Injector INJECTOR = Injector.getInstance("mate");
+ private static final String ALL_DRIVERS_JSP = "/WEB-INF/views/driver/allDrivers.jsp";
+ private final DriverService driverService =
+ (DriverService) INJECTOR.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List allDrivers = driverService.getAll();
+ req.setAttribute("drivers", allDrivers);
+ req.getRequestDispatcher(ALL_DRIVERS_JSP).forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/driver/RegistrationDriverController.java b/src/main/java/mate/controller/driver/RegistrationDriverController.java
new file mode 100644
index 000000000..ea0e328d8
--- /dev/null
+++ b/src/main/java/mate/controller/driver/RegistrationDriverController.java
@@ -0,0 +1,37 @@
+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 RegistrationDriverController extends HttpServlet {
+ private static final Injector INJECTOR = Injector.getInstance("mate");
+ private static final String ADD_DRIVER_JSP = "/WEB-INF/views/driver/addDriver.jsp";
+ private final DriverService driverService =
+ (DriverService) INJECTOR.getInstance(DriverService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher(ADD_DRIVER_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() + "/drivers");
+ }
+}
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..bb0ec93cd
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.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 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 manufacturerID = Long.valueOf(req.getParameter("id"));
+ manufacturerService.delete(manufacturerID);
+ resp.sendRedirect(req.getContextPath() + "/manufacturers");
+ }
+}
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..39f8ad27c
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/GetAllManufacturersController.java
@@ -0,0 +1,29 @@
+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")
+public class GetAllManufacturersController extends HttpServlet {
+ private static final Injector INJECTOR = Injector.getInstance("mate");
+ private static final String ALL_MANUFACTURERS_JSP =
+ "/WEB-INF/views/manufacturer/allManufacturers.jsp";
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ List allManufacturers = manufacturerService.getAll();
+ req.setAttribute("manufacturers", allManufacturers);
+ req.getRequestDispatcher(ALL_MANUFACTURERS_JSP).forward(req, resp);
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/RegistrationManufacturerController.java b/src/main/java/mate/controller/manufacturer/RegistrationManufacturerController.java
new file mode 100644
index 000000000..897723f21
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/RegistrationManufacturerController.java
@@ -0,0 +1,38 @@
+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 RegistrationManufacturerController extends HttpServlet {
+ private static final Injector INJECTOR = Injector.getInstance("mate");
+ private static final String ADD_MANUFACTURER_JSP =
+ "/WEB-INF/views/manufacturer/addManufacturer.jsp";
+ private final ManufacturerService manufacturerService =
+ (ManufacturerService) INJECTOR.getInstance(ManufacturerService.class);
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ req.getRequestDispatcher(ADD_MANUFACTURER_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");
+ }
+}
diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java
index a9249b004..98e7286b7 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";
+ private static final String USERNAME = "root";
+ private static final String PASSWORD = "00000";
+ private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static {
try {
diff --git a/src/main/webapp/WEB-INF/views/car/addCar.jsp b/src/main/webapp/WEB-INF/views/car/addCar.jsp
new file mode 100644
index 000000000..1d3a23b52
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/car/addCar.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Car registration
+
+
+ Please, fill the form with car's data
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/car/addDriverToCar.jsp b/src/main/webapp/WEB-INF/views/car/addDriverToCar.jsp
new file mode 100644
index 000000000..d111dc946
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/car/addDriverToCar.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Adding Driver to Car
+
+
+Please, fill the form for adding driver
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/car/allCars.jsp b/src/main/webapp/WEB-INF/views/car/allCars.jsp
new file mode 100644
index 000000000..ab012b351
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/car/allCars.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 cars
+
+
+List of Cars:
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/driver/addDriver.jsp b/src/main/webapp/WEB-INF/views/driver/addDriver.jsp
new file mode 100644
index 000000000..0651858f5
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/driver/addDriver.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Driver registration
+
+
+ Please, fill the form with drivers' data
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/driver/allDrivers.jsp b/src/main/webapp/WEB-INF/views/driver/allDrivers.jsp
new file mode 100644
index 000000000..3bfb278ce
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/driver/allDrivers.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:
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/manufacturer/addManufacturer.jsp b/src/main/webapp/WEB-INF/views/manufacturer/addManufacturer.jsp
new file mode 100644
index 000000000..caa4c98f9
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/manufacturer/addManufacturer.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Manufacturer registration
+
+
+Please, fill the form with manufacturer's data
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/manufacturer/allManufacturers.jsp b/src/main/webapp/WEB-INF/views/manufacturer/allManufacturers.jsp
new file mode 100644
index 000000000..a36a6ce42
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/manufacturer/allManufacturers.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
index 00afaeb93..f69dec813 100644
--- a/src/main/webapp/web.xml
+++ b/src/main/webapp/web.xml
@@ -3,12 +3,5 @@
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
-
- index
- mate.controller.IndexController
-
-
- index
- /index
-
+