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/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/CreateCarController.java b/src/main/java/mate/controller/car/CreateCarController.java
new file mode 100644
index 000000000..542142f2d
--- /dev/null
+++ b/src/main/java/mate/controller/car/CreateCarController.java
@@ -0,0 +1,47 @@
+package mate.controller.car;
+
+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.model.Manufacturer;
+import mate.service.CarService;
+import mate.service.ManufacturerService;
+
+@WebServlet(urlPatterns = "/cars/add")
+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 {
+ req.getRequestDispatcher("/WEB-INF/views/car/addCar.jsp")
+ .forward(req,resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String model = req.getParameter("car_model");
+ Long manufacturerId =
+ Long.valueOf(req.getParameter("manufacturer_id"));
+ Car car = new Car();
+ Manufacturer manufacturer = manufacturerService.get(manufacturerId);
+
+ car.setModel(model);
+ car.setManufacturer(manufacturer);
+ car.setDrivers(new ArrayList<>());
+ carService.create(car);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
diff --git a/src/main/java/mate/controller/cardriver/AddDriverToCarController.java b/src/main/java/mate/controller/cardriver/AddDriverToCarController.java
new file mode 100644
index 000000000..753122866
--- /dev/null
+++ b/src/main/java/mate/controller/cardriver/AddDriverToCarController.java
@@ -0,0 +1,40 @@
+package mate.controller.cardriver;
+
+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 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("/WEB-INF/views/car_driver/addDriverToCar.jsp")
+ .forward(req,resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Long driverId = Long.valueOf(req.getParameter("driver_id"));
+ Long carId = Long.valueOf(req.getParameter("car_id"));
+ Car car = carService.get(carId);
+ Driver driver = driverService.get(driverId);
+ carService.addDriverToCar(driver,car);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
diff --git a/src/main/java/mate/controller/cardriver/DeleteDriverFromCarController.java b/src/main/java/mate/controller/cardriver/DeleteDriverFromCarController.java
new file mode 100644
index 000000000..627f39c0c
--- /dev/null
+++ b/src/main/java/mate/controller/cardriver/DeleteDriverFromCarController.java
@@ -0,0 +1,41 @@
+package mate.controller.cardriver;
+
+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/delete")
+public class DeleteDriverFromCarController 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 {
+ req.getRequestDispatcher("/WEB-INF/views/car_driver/deleteDriverFromCar.jsp")
+ .forward(req,resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ Long driverId = Long.valueOf(req.getParameter("driver_id"));
+ Long carId = Long.valueOf(req.getParameter("car_id"));
+ Car car = carService.get(carId);
+ Driver driver = driverService.get(driverId);
+ carService.removeDriverFromCar(driver,car);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
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..c5f44b601
--- /dev/null
+++ b/src/main/java/mate/controller/driver/CreateDriverController.java
@@ -0,0 +1,38 @@
+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 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/driver/addDriver.jsp")
+ .forward(req,resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String driverName = req.getParameter("driver_name");
+ String licenseNumber = req.getParameter("license_number");
+ Driver driver = new Driver();
+ driver.setName(driverName);
+ driver.setLicenseNumber(licenseNumber);
+ driverService.create(driver);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
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..c028266e6
--- /dev/null
+++ b/src/main/java/mate/controller/driver/DeleteDriverController.java
@@ -0,0 +1,24 @@
+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 {
+ driverService.delete(Long.valueOf(req.getParameter("id")));
+ }
+}
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..84a7ac0e9
--- /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 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("/WEB-INF/views/driver/allDrivers.jsp").forward(req,resp);
+ }
+}
diff --git a/src/main/java/mate/controller/driver/UpdateDriverController.java b/src/main/java/mate/controller/driver/UpdateDriverController.java
new file mode 100644
index 000000000..338e73366
--- /dev/null
+++ b/src/main/java/mate/controller/driver/UpdateDriverController.java
@@ -0,0 +1,40 @@
+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/update")
+public class UpdateDriverController 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/driver/updateDriver.jsp")
+ .forward(req,resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String driverId = req.getParameter("driver_id");
+ String driverName = req.getParameter("driver_name");
+ String licenseNumber = req.getParameter("license_number");
+ Driver driver = new Driver();
+ driver.setId(Long.valueOf(driverId));
+ driver.setName(driverName);
+ driver.setLicenseNumber(licenseNumber);
+ driverService.update(driver);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
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..3298152c3
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/CreateManufacturerController.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 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/manufacturer/addManufacturer.jsp")
+ .forward(req,resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String manufacturerName = req.getParameter("manufacturer_name");
+ String manufacturerCountry = req.getParameter("manufacturer_country");
+ Manufacturer manufacturer = new Manufacturer();
+ manufacturer.setName(manufacturerName);
+ manufacturer.setCountry(manufacturerCountry);
+ manufacturerService.create(manufacturer);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
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..c613d1a5e
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/DeleteManufacturerController.java
@@ -0,0 +1,24 @@
+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 {
+ manufacturerService.delete(Long.valueOf(req.getParameter("id")));
+ }
+}
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..679492c1e
--- /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 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("/WEB-INF/views/manufacturer/allManufacturers.jsp")
+ .forward(req,resp);
+ }
+}
diff --git a/src/main/java/mate/controller/manufacturer/UpdateManufacturerController.java b/src/main/java/mate/controller/manufacturer/UpdateManufacturerController.java
new file mode 100644
index 000000000..14dd7d3c5
--- /dev/null
+++ b/src/main/java/mate/controller/manufacturer/UpdateManufacturerController.java
@@ -0,0 +1,40 @@
+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/update")
+public class UpdateManufacturerController 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/manufacturer/updateManufacturer.jsp")
+ .forward(req,resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String manufacturerId = req.getParameter("manufacturer_id");
+ String manufacturerName = req.getParameter("manufacturer_name");
+ String manufacturerCountry = req.getParameter("manufacturer_country");
+ Manufacturer manufacturer = new Manufacturer();
+ manufacturer.setId(Long.valueOf(manufacturerId));
+ manufacturer.setName(manufacturerName);
+ manufacturer.setCountry(manufacturerCountry);
+ manufacturerService.update(manufacturer);
+ resp.sendRedirect(req.getContextPath() + "/index");
+ }
+}
diff --git a/src/main/java/mate/util/ConnectionUtil.java b/src/main/java/mate/util/ConnectionUtil.java
index a9249b004..4a1f89865 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 = "124533";
+ 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..936bb25ed
--- /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" %>
+
+
+ Create car
+
+
+Create a car:
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/cardriver/addDriverToCar.jsp b/src/main/webapp/WEB-INF/views/cardriver/addDriverToCar.jsp
new file mode 100644
index 000000000..42a5a778b
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cardriver/addDriverToCar.jsp
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Add driver to car
+
+
+Add driver to car:
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/cardriver/deleteDriverFromCar.jsp b/src/main/webapp/WEB-INF/views/cardriver/deleteDriverFromCar.jsp
new file mode 100644
index 000000000..68737854f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/cardriver/deleteDriverFromCar.jsp
@@ -0,0 +1,14 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Delete driver from car
+
+
+Delete driver from car:
+
+
+
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..87355cddb
--- /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" %>
+
+
+ Create driver
+
+
+Create a driver:
+
+
+
+
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..5f39a3b5f
--- /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/driver/updateDriver.jsp b/src/main/webapp/WEB-INF/views/driver/updateDriver.jsp
new file mode 100644
index 000000000..559246a22
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/driver/updateDriver.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Update driver
+
+
+Update driver:
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp
index 0fbc5292a..362ef9229 100644
--- a/src/main/webapp/WEB-INF/views/index.jsp
+++ b/src/main/webapp/WEB-INF/views/index.jsp
@@ -4,6 +4,31 @@
My team
-Hello, mates!
+